Performance Lab


The Performance Lab plugin is a collection of modules focused on enhancing performance of your site, most of which should eventually be merged into WordPress core. The plugin allows to individually enable and test the modules to get their benefits before they become available in WordPress core, and to provide feedback to further improve the solutions.

Currently the plugin includes the following performance modules:

  • Dominant Color Images: Adds support to store the dominant color of newly uploaded images and create a placeholder background of that color.
  • Fetchpriority: Adds a fetchpriority hint for the primary content image on the page to load faster.
  • WebP Support Health Check: Adds a WebP support check in Site Health status.
  • WebP Uploads: Creates WebP versions for new JPEG image uploads if supported by the server.
  • Enqueued Assets Health Check: Adds a CSS and JS resource check in Site Health status.
  • Autoloaded Options Health Check: Adds a check for autoloaded options in Site Health status.
  • SQLite Integration: Use an SQLite database instead of MySQL.


Installation from within WordPress

  1. Visit Plugins > Add New.
  2. Search for Performance Lab.
  3. Install and activate the Performance Lab plugin.

Manual installation

  1. Upload the entire performance-lab folder to the /wp-content/plugins/ directory.
  2. Visit Plugins.
  3. Activate the Performance Lab plugin.

After activation

  1. Visit the new Settings > Performance menu.
  2. Enable the individual modules you would like to use.

Najczęściej zadawane pytania

What is the purpose of this plugin?

The primary purpose of the Performance Lab plugin is to allow testing of various performance modules for which the goal is to eventually land in WordPress core. It is essentially a collection of „feature plugins”, which makes it different from other performance plugins that offer performance features which are not targeted at WordPress core and potentially rely on functionality that would not be feasible to use in WordPress core. The list of available modules will regularly change: Existing modules may be removed after they have been released in WordPress core, while new modules may be added in any release.

Can I use this plugin on my production site?

Per the primary purpose of the plugin (see above), it can mostly be considered a beta testing plugin for the various performance modules it includes. However, unless a module is explicitly marked as „experimental”, it has been tested and established to a degree where it should be okay to use in production. Still, as with every plugin, you are doing so at your own risk.

Where can I submit my plugin feedback?

Feedback is encouraged and much appreciated, especially since this plugin is a collection of future WordPress core features. If you have suggestions or requests for new features, you can submit them as an issue in the Performance Lab GitHub repository. If you need help with troubleshooting or have a question about the plugin, please create a new topic on our support forum.

Where can I report security bugs?

The Performance team and WordPress community take security bugs seriously. We appreciate your efforts to responsibly disclose your findings, and will make every effort to acknowledge your contributions.

To report a security issue, please visit the WordPress HackerOne program.

How can I contribute to the plugin?

Contributions are always welcome! Learn more about how to get involved in the Core Performance Team Handbook.

I’ve activated the WebP Uploads module, but WebP images are not always generated when I upload a JPEG image. Why?

There are two primary reasons that a WebP image may not be generated:

  1. Performance Lab has identified that the WebP version of the uploaded JPEG image would have a larger file size than the original JPEG image, so it does not generate the WebP version.
  2. The JPEG image was not uploaded to the Media Library. At this time, WebP versions are only generated for images to the Media Library. WebP versions are not generated for JPEG images that are added to your site in other ways, such as in a template file or the Customizer.

With the WebP Uploads module activated, will the plugin generate JPEG and WebP versions of every image that I upload?

By default, the WebP Uploads module will only generate WebP versions of the images that you upload. If you wish to have both WebP and JPEG versions generated, you can navigate to Settings > Media and enable the Generate JPEG files in addition to WebP option.


2023-05-26 1 odpowiedź
This plugin is such a great idea and much needed, but I'm thinking if another database like SQLite is being considered, why not consider something like Actian Zen, which has 100x the performance?
2023-05-26 1 odpowiedź
I have finished the Korean translation.I just want to say thank you for developing such a good plugin.And I hope it will be translated into more languages so that many WordPress users can use it conveniently. Performance Lab 한국어 번역을 모두 마쳤습니다.좋은 플러그인을 개발해 주어서 고맙다는 인사를 전하고 싶습니다.그리고 보다 많은 언어로 번역되어 많은 워드프레스 사용자들이 편리하게 사용할 수 있기를 바랍니다.
2023-03-31 1 odpowiedź
Google PageSpeed Insights recommended this plugin to improve my website's performance score. I was skeptical at first. After using it on my client sites with the Divi theme on different hosting providers like Bluehost and GoDaddy, I was shocked. It actually worked! Regarding the review below about an SQL database problem, I see an option and a warning about it in the plugin's settings in the WordPress dashboard. So, either they fixed it in an update or the user did something wrong.
2023-03-01 4 odpowiedzi
I setup Performance Lab on my new blog, with the Twenty Twenty Three theme. I checked all the boxes. What happens is it changed the database from SQL to SQLite. And because of this, the site content and design wasn't there anymore! I uninstalled the plugin from my cPanel, and the database was automatically changed back, and my site content was restored. Be wary of this plugin because you might lose your site content temporarily until it's uninstalled.
Przeczytaj 23 recenzje

Kontrybutorzy i deweloperzy

„Performance Lab” jest oprogramowaniem open source. Poniższe osoby miały wkład w rozwój wtyczki.


Wtyczka “Performance Lab” została przetłumaczona na 18 języków. Podziękuj tłumaczom za ich wkład.

Przetłumacz wtyczkę “Performance Lab” na swój język.

Interesuje cię rozwój wtyczki?

Przeglądaj kod, sprawdź repozytorium SVN lub czytaj dziennik rozwoju przez RSS.

Rejestr zmian



  • Images: Configure Dominant Color and Fetchpriority modules for their standalone plugins. (704)
  • Infrastructure: Temporarily remove Dominant Color Images from standalone plugins.json definition. (719)
  • Infrastructure: Use dynamic version from plugins.json for manual workflow. (710)

Bug Fixes

  • Images: Add dominant color styling before any existing inline style attributes. (716)
  • Infrastructure: Resolve low-severity security advisory GHSA-66qq-69rw-6×63.



  • Images: Remove „experimental” flag from Fetchpriority module. (702)
  • Infrastructure: Implement infrastructure for launching standalone plugins from modules, including WebP Uploads. (699)
  • Infrastructure: Include WordPress-Extra rules in PHPCS configuration and fix resulting problems. (695)

Bug Fixes

  • Images: Sanitize target param before using it. (690)


  • Images: Change module slug/directory from dominant-color to dominant-color-images. (708)
  • Images: Rename Dominant Color module to Dominant Color images. (705)



  • Infrastructure: Add wp-total metric to default Server-Timing metrics. (669)
  • Infrastructure: Ensure module load.php files really only load other code to prevent conflicts in standalone plugins. (674)

Bug Fixes

  • Infrastructure: Fix problems with placing object-cache.php drop-in. (672)



  • Object Cache: Update WordPress version to 6.1 and remove Cache modules. (641)
  • Measurement: Add perflab_disable_object_cache_dropin filter. (629)
  • Database: Add an indicator in the adminbar to show when using SQLite. (604)

Bug Fixes

  • Images: Check for existing $metadata['sizes'] to fix PHP warning. (648)
  • Images: Use correct number of arguments in filter callback. (634)
  • Database: Fix invalid docs and return types as highlighted by static analysis. (645)
  • Infrastructure: Fix incorrect usage of plugin_action_links_* filter. (647)


  • Infrastructure: Add file header to object-cache drop-in to clarify purpose. (649)



  • Database: Remove warning about multi-server environment from the SQLite module description. (619)

Bug Fixes

  • Infrastructure: Enhance object-cache.php drop-in interoperability with other plugins. (616)



  • Measurement: Implement Server-Timing API foundation as well as basic load time metrics. (553)
  • Database: Implement new experimental SQLite integration module. (547)
  • Images: Implement new experimental fetchpriority module. (528)

Bug Fixes

  • Database: Fix SQLite notices related to undefined properties. (600)
  • Database: Fix incorrect handling of admin_email and actual admin user’s email when original admin_email user was deleted. (603)
  • Database: Make WP filesystem setup more robust to prevent potential errors. (595)



  • Images: Change WP Image editor quality for mime types. (571)
  • Infrastructure: Introduce database focus area, rename JavaScript focus area to JS & CSS, and phase out Site Health focus area. (566)

Bug Fixes

  • Images: Avoid potentially adding invalid attributes or duplicates for dominant color images. (578)
  • Images: Fix fatal error in REST API response when an image has no attachment metadata. (568)
  • Images: Fix image focal point bug when dominant color is enabled by not overriding style attribute. (582)
  • Images: Fix opt-in checkbox for generating WebP and JPEG to also show on Multisite. (565)



  • Site Health: Only load Site Health checks for persistent cache and full page cache when not available in core. (543)
  • Images: Add checkbox to Settings > Media to control whether to generate JPEG in addition to WebP. (537)
  • Images: Generate only WebP images by default for JPEG and WebP uploads. (527)
  • Infrastructure: Bump minimum WordPress requirement to 6.0. (549)



  • Site Health: Improve autoloaded options check by highlighting largest autoloaded options. (353)



  • Images: Enhance JS replacement mechanism for WebP to JPEG to more reliably replace full file name. (443)
  • Images: Introduce webp_uploads_get_content_image_mimes() to get content image MIME replacement rules. (420)
  • Infrastructure: Add PERFLAB_PLUGIN_DIR_PATH constant for plugin_dir_path(). (429)
  • Infrastructure: Rename Site Health check modules for language and consistency. (423)

Bug Fixes

  • Site Health: Fix incorrect usage of badge colors in all Site Health checks. (472)
  • Images: Add the original image’s extension to the WebP file name to ensure it is unique. (444)
  • Images: Fix REST API support for plain permalinks. (457)
  • Infrastructure: Remove plugin option network-wide for Multisite during uninstall. (458)



  • Images: Add replacing of images only in frontend context. (424)
  • Images: Allow control for which image sizes to generate additional MIME type versions. (415)
  • Images: Discard WebP image if it is larger than corresponding JPEG image. (418)
  • Images: Optimize computing dominant color and transparency for images by combining the two functions. (381)
  • Images: Provide fallback JPEG images in frontend when WebP is not supported by the browser. (360)
  • Images: Rely on wp_get_image_editor() methods argument to check whether it supports dominant color methods. (404)
  • Images: Remove experimental label from Dominant Color module and turn on by default for new installs. (425)
  • Site Health: Remove perflab_aea_get_resource_file_size() in favor of wp_filesize(). (380)
  • Site Health: Update documentation link for autoloaded options. (408)
  • Infrastructure: Implement mechanism to not load module if core version is available. (390)

Bug Fixes

  • Images: Ensure incorrect usage of webp_uploads_upload_image_mime_transforms filter is treated correctly. (393)
  • Images: Fix PHP notice and bug in logic for when webp_uploads_prefer_smaller_image_file filter is set to true. (397)
  • Images: Fix an infinite loop in the WebP fallback mechanism. (433)
  • Images: Fix dominant color upload process to not override potential third-party editors. (401)
  • Images: Remove additional image backup sources & sizes files when attachment deleted. (411)
  • Infrastructure: Avoid including .husky directory in plugin ZIP. (421)
  • Infrastructure: Do not show admin pointer in multisite Network Admin. (394)



  • Images: Add Dominant Color module to provide color background for loading images. (282)
  • Site Health: Add Site Health check for Full Page Cache usage. (263)


  • Images: Update webp_uploads_pre_generate_additional_image_source filter to allow returning file size. (334)
  • Infrastructure: Introduce plugin uninstaller routine. (345)
  • Infrastructure: Use wp_filesize instead of filesize if available. (376)

Bug Fixes

  • Images: Avoid overwriting existing WebP files when creating WebP images. (359)
  • Images: Back up edited full image sources when restoring the original image. (314)



  • Infrastructure: Add Performance Lab generator meta tag to wp_head output. (322)


  • Images: Introduce filter webp_uploads_pre_generate_additional_image_source to short-circuit generating additional image sources on upload. (318)
  • Images: Introduce filter webp_uploads_pre_replace_additional_image_source to short-circuit replacing additional image sources in frontend content. (319)
  • Images: Refine logic to select smaller image file in the frontend based on webp_uploads_prefer_smaller_image_file filter. (302)
  • Images: Replace the featured image with WebP version when available. (316)
  • Site Health: Update Site Health Autoloaded options documentation link. (313)
  • Infrastructure: Avoid unnecessarily early escape of Site Health check labels. (332)

Bug Fixes

  • Object Cache: Correct label for persistent object cache Site Health check. (329)
  • Images: Only update the specified target images when an image is edited. (301)



  • Images: Generate secondary image MIME types when editing original image. (235)


  • Images: Introduce webp_uploads_prefer_smaller_image_file filter allowing to opt in to preferring the smaller image file. (287)
  • Images: Select MIME type to use in frontend content based on file size. (243)
  • Site Health: Update Site Health reports copy for more clarity and consistency. (272)


  • Infrastructure: Define the plugin’s version support and backward compatibility policy. (240)



  • Images: Change expected order of items in the webp_uploads_content_image_mimes filter. (250)
  • Images: Replace images in frontend content without using an additional regular expression. (262)
  • Images: Restore and backup image sizes alongside the sources properties. (242)

Bug Fixes

  • Images: Select image editor based on WebP support instead of always using the default one. (259)


Bug Fixes

  • Infrastructure: Ensure default modules are loaded regardless of setting registration. (248)



  • Images: Create additional MIME types for the full size image. (194)
  • Site Health: Add module to warn about excessive amount of autoloaded options. (124)


  • Images: Adds sources information to the attachment media details of the REST response. (224)
  • Images: Allow developers to select which image format to use for images in the content. (230)
  • Images: Allow developers to tweak which image formats to generate on upload. (227)
  • Images: Replace the full size image in the_content with additional MIME type if available. (195)
  • Object Cache: Include memcached extension in checks for object cache support. (206)
  • Infrastructure: Add plugin banner and icon assets. (231)
  • Infrastructure: Use .gitattributes instead of .distignore to better support ZIP creation. (223)

Bug Fixes

  • Images: Use original image to generate all additional image format sub-sizes. (207)
  • Infrastructure: Replace unreliable activation hook with default value for enabled modules. (222)


  • Infrastructure: Update release instructions to include proper branching strategy and protect release branches. (221)



  • Images: Add WebP for uploads module. (32)
  • Images: Support retry mechanism for generating sub-sizes in additional MIME types on constrained environments. (188)
  • Images: Update the_content with the appropiate image format. (152)
  • Site Health: Add WebP support in site health. (141)
  • Site Health: Add module to alert about excessive JS and CSS assets. (54)
  • Object Cache: Add Site Health check module for persistent object cache. (111)
  • Infrastructure: Add settings screen to toggle modules. (30)
  • Infrastructure: Added admin pointer. (199)


  • Object Cache: Always recommend object cache on multisite. (200)
  • Images: Create image sub-sizes in additional MIME types using sources for storage. (147)
  • Images: Update module directories to be within their focus directory. (58)
  • Site Health: Enhance detection of enqueued frontend assets. (136)
  • Infrastructure: Add link to Settings screen to the plugin’s entry in plugins list table. (197)
  • Infrastructure: Enable all non-experimental modules on plugin activation. (191)
  • Infrastructure: Include generated module-i18n.php file in repository. (196)
  • Infrastructure: Introduce perflab_active_modules filter to control which modules are active. (87)
  • Infrastructure: Remove unnecessary question marks from checkbox labels. (110)
  • Infrastructure: Rename object-caching to object-cache. (108)

Bug Fixes

  • Images: Ensure the -scaled image remains in the original uploaded format. (143)
  • Images: Fix typo to access to the correct image properties. (203)
  • Infrastructure: Ensure that module header fields can be translated. (60)


  • Site Health: Mark Site Health Audit Enqueued Assets module as experimental for now. (205)
  • Infrastructure: Add readme.txt and related update script. (72)
  • Infrastructure: Add changelog generator script. (51)
  • Infrastructure: Add contribution documentation. (47)
  • Infrastructure: Add release documentation. (138)
  • Infrastructure: Define module specification in documentation. (26)