Description
The Performance Lab plugin is a collection of features focused on enhancing the performance of your site, most of which should eventually be merged into WordPress core. The plugin facilitates the discovery and activation of the individual performance feature plugins which the performance team is developing. In this way you can test the features to get their benefits before they become available in WordPress core. You can also play an important role by providing feedback to further improve the solutions.
The feature plugins which are currently featured by this plugin are:
- Embed Optimizer
- Enhanced Responsive Images
- Image Placeholders
- Image Prioritizer
- Instant Back/Forward
- Modern Image Formats
- Optimization Detective (dependency for Embed Optimizer and Image Prioritizer)
- Performant Translations
- Speculative Loading
- View Transitions (experimental)
These plugins can also be installed separately from installing Performance Lab, but having the Performance Lab plugin also active will ensure you find out about new performance features as they are developed.
Installation
Installation from within WordPress
- Visit Plugins > Add New.
- Search for Performance Lab.
- Install and activate the Performance Lab plugin.
Manual installation
- Upload the entire
performance-labfolder to the/wp-content/plugins/directory. - Visit Plugins.
- Activate the Performance Lab plugin.
After activation
- Visit the new Settings > Performance menu.
- Enable the individual features you would like to use.
FAQ
-
What is the purpose of this plugin?
-
The primary purpose of the Performance Lab plugin is to allow testing of various performance features 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 features will regularly change: Existing features may be removed after they have been released in WordPress core, while new features 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 features it includes. However, it’s essential to understand that utilizing it comes with inherent risks. Users are encouraged to proceed with caution and understand that they are doing so at their 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.
Reviews
Contributors & Developers
“Performance Lab” is open source software. The following people have contributed to this plugin.
Contributors“Performance Lab” has been translated into 27 locales. Thank you to the translators for their contributions.
Translate “Performance Lab” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
4.2.0
Enhancements
- Add
declare( strict_types = 1 )to all PHP files. (2424) - Bump minimum PHP requirement from 7.2 to 7.4. (2469)
- Enqueued Assets audit: treat zero-size and no-store responses as errors. (2481)
- Server Timing – Allow description and make duration optional. (2379)
4.1.0
Bug Fixes
- Fix invalid Server-Timing logic for database query timing when
$wpdb->queriesisnulldue to no query having been done yet. (2346)
Documentation
- Remove Web Worker Offloading from being featured by Performance Lab. (2404)
4.0.1
Bug Fixes
- Add notices and improved type checking for
$wpdb->querieswhen attempting to compute server-timing for database queries. (2159) - Skip stylesheets with empty
hrefattributes in Site Health audit. (2281, 2328) - Use proper escape function. (2246)
4.0.0
Enhancements
- Add Instant Back/Forward to list of performance feature plugins. (2119)
- Add admin pointers to promote new Performance Lab features. (2122)
- Implement opt-in
PERFLAB_PLACE_OBJECT_CACHE_DROPINfor Server-Timingobject-cache.phpplacement. (1996) - Use
wp_is_rest_endpoint()to detect if we are handling a REST API request. (2094)
Bug Fixes
- Fix TypeError in
perflab_aao_query_autoloaded_options()by serializing non-scalar option values. (1934) - Omit admin pointer for new plugin if plugin is already active. (2143)
- Prevent effective asset cache headers audit from running on local/development environments. (2035)
- Use HTML Tag Processor to audit blocking scripts & styles in Site Health’s enqueued-assets test. (2059)
3.9.0
Enhancements
- Remove experimental flags from Embed Optimizer and Image Prioritizer. (1846)
3.8.0
Enhancements
- Add Site Health test for
Cache-Control: no-storepage response header which disables bfcache. (1807) - Add Site Health test to verify that static assets are served with far-future expires. (1727)
- Enqueue scripts using
plugins_url()instead ofplugin_dir_url(). (1761)
3.7.0
Enhancements
- Add guidance for managing Performance feature plugins. (1734)
- Automatically discover plugin dependencies when obtaining Performance feature plugins from WordPress.org. (1680)
- Disregard transient cache in
perflab_query_plugin_info()when a plugin is absent. (1694) - Minify script used for ajax activation of features; warn if absent and serve original file when SCRIPT_DEBUG is enabled. (1658)
Bug Fixes
- Fix latest plugin version not being downloaded consistently. (1693)
3.6.1
Bug Fixes
- Fix race condition bug where activating multiple features sequentially could fail to activate some features. (#1675)
3.6.0
Enhancements
- Use AJAX for activating features / plugins in Performance Lab. (1646)
- Introduce AVIF header health check. (1612)
- Install and activate Optimization Detective when the Embed Optimizer feature is activated from the Performance screen. (1644)
Bug Fixes
- Fix uses of ‘Plugin not found’ string. (1651)
3.5.1
Bug Fixes
- Account for plugin dependencies when storing relevant plugin info. (1613)
3.5.0
Enhancements
- Add Web Worker Offloading to list of Performance features. (1577)
- Only store info for relevant standalone plugins in the transient cache. (1573)
- Use a single WordPress.org API request to get information for all plugins. (1562)
3.4.1
Bug Fixes
- Fix Incorrect use of _n(). (1491)
3.4.0
Enhancements
- Remove Server-Timing metric for the autoloaded options query time. (1456)
Bug Fixes
- Avoid sending Server-Timing header when buffer is being cleaned. (1443)
- Fix disabled options from reappearing in Site Health after external update. (1374)
- Improve Performance screen when external requests to WordPress.org fail. (1474)
3.3.1
Enhancements
- Add PHPStan strict rules (except for empty.notAllowed). (1241)
Bug Fixes
- Allow null to be passed into perflab_admin_pointer(). (1393)
3.3.0
Enhancements
- Bump minimum WP versions and WP version tested up to. (1333)
- Improve message for WebP site health test. (1249)
- Remove ‘Requires at least’ and ‘Requires PHP’ from plugin readmes. (1334)
- Upgrade PHPStan to 1.11.6. (1325)
Bug Fixes
- Extend core’s Autoloaded Options Site Health test if present (in WP 6.6). (1298)
- Fix unit tests for multisite. (1327)
3.2.0
Enhancements
- Add install note after each PerfLab feature plugin in the plugin list table. (1265)
- Update plugins with new banners and icons. (1272)
Bug Fixes
- Fix Server-Timing compatibility with other plugins that do output buffering. (1260)
- Harden autoloaded-options site health test for incorrectly implemented external object cache plugins. (1238)
3.1.0
Enhancements
