WP Meteor Page Speed Optimization Topping


WP Meteor is a completely new way of optimizing your page speed. It works even on top of your existing optimizations, including:

  • Autoptimize
  • WP Rocket
  • WP Total Cache
  • WP Super Cache
  • LiteSpeed Cache

WP Meteor is not compatible with:

  • Nitropack

WP Meteor is known to have delay issues with:

  • Elementor Offcanvas addon


The plugin might not work for someone, that’s expected – delaying scripts has its downsides. Also, the plugin logics is quite complicated, so bugs happen.

If your site is business-critical or e-commerce, please test carefully all your business-critical pages, forms and/or your checkout process. Feel free to create an Issue if something doesn’t work.

The plugin is made to leave no trace on the disk or in the database upon deactivation and removal, so don’t hesitate to install and test, may be your site suits well for that kind of optimization.

Don’t forget to test the site carefully after plugin installation. If you are not happy with the result – you can either uninstall the plugin, or create an Issue, I will either fix the problem, or list a compatibility issue here.


Infinite delay will delay your GA and GTM until user interaction. I would not recommed to use it, but it is still there because multiple users requested it. Use it with caution and at your own risk.


If user doesn’t start interacting with page immediately, WP Meteor postpones loading and firing scripts until after page gets rendered, giving you 2x-5x boost in your Pagespeed metric.

This postponement in script loading greatly improves perceived load times for your visitors. It also significantly improves the following important SEO metrics:

In May 2021, Google will incorporate multiple page speed metrics as a search signal in the ranking algorythm


  1. Upload the plugin files to the /wp-content/plugins/wp-meteor directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress
  3. Use the Settings -> WP Meteor screen to configure the plugin


Is it good for SEO?

Yes, because all that matters is visitor experience, and WP Meteor improves that experience with a lot faster load times

How can I easily compare speed with/without WP Meteor ?

Once WP Meteor is enabled, you can add ?wpmeteordisable query string parameter to a page URL in order to load the page without optimizations

How to exclude a page from optimization

Use wpmeteor_enabled filter and return false to completely disable WP Meteor, example:

add_filter('wpmeteor_enabled', function ($value) {
    global $post;
    if ($post && $post->ID == 1) {
        return false;
    return $value;

How to exclude a script from optimization

  1. Use ‘Exclude’ tab to exclude scripts by matching src or inline content using regexp
  2. Use wpmeteor_exclude filter, which accepts 2 arguments: $exclude and $content. $content variable contains either src attribute, or text content of the script tag. Return true if you want to exclude the script. Example:

    add_filter('wpmeteor_exclude', function ($exclude, $content) {
        if (preg_match('/yourscript\.js/', $content)) {
            return true;
        return $exclude;
    }, null, 2);

Alternatively, you can use data-wpmeteor-nooptimize=”true” script attribute to exclude it from optimization.

How to adjust delay outside of 1s, 2s and Infinity

Use wpmeteor-frontend-adjust-wpmeteor filter in the following way:

add_filter('wp-meteor-frontend-adjust-wpmeteor', function ($wpmeteor, $settings) {
    $wpmeteor['rdelay'] = 4000; // number of milliseconds to delay 
    return $wpmeteor;
}, 100, 2);


July 19, 2022
Hi, it would be a cool and awesome plugin if this didn't break my menu and animations. My hamburger menu, pops up when everything is loaded. I have been checking on the internet, videos, comments, reviews, but could not find a solution to solve my problem. Also, the exclusion is not working. I have been testing using php code and using the plugin interface, and nothing. I put the exact link, and the exclusion system does not exclude the javascript file. I want to exclude anything to do with Elementor. Thank you in advance! EDIT: I put 5 stars because the author contacted me and he is trying to solve my problem. Awesome free support.
October 27, 2021
Let me cut to the chase. WP Meteror is an awesome plugin that actually worked for me and rocketed my score up according to Google Page Speed metrics. Furthermore, It is fully compatible with Autoptimize and WP Super Cache, two great plugins which I persistently consider among “must-haves.” Being always frustrated with GPS scores, I was always looking for a way to minimize the damn “main thread work,” get rid of “render-blocking resources” and improve LCP, TTI and TBT (Ironically, Google still regards its own reCAPTCHA, Tag Manager, etc. as render-blocking or unused JavaScript!) The optimization of JS files and applying Defer attribute to scripts, among many others, just led to a slight improvement in my score, no way comparable with that of WP Meteor. Last but not least, using WP Meteor had some downsides on my website as Alex had clearly explained. But there is an inbuilt exclusion session which helped me exclude troublesome scripts easily. In a nutshell, this plugin kills it on Page Speed and deserves 10 out of 5 stars!
Read all 54 reviews

Contributors & Developers

“WP Meteor Page Speed Optimization Topping” is open source software. The following people have contributed to this plugin.


“WP Meteor Page Speed Optimization Topping” has been translated into 1 locale. Thank you to the translators for their contributions.

Translate “WP Meteor Page Speed Optimization Topping” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.


2.3.10 – WP Fastest Cache compatibility
2.3.9 – Regexp exlusions fixed
2.3.8 – event queue should not be processed if script loading is in progress Issue
2.3.7 – defer converted to data-defer for standards compliance
2.3.6 – Support for missing tag
2.3.5 – Better readyState management
2.3.4 – Lazy Images by Jetpack support added
2.3.3 – Compatibility with PhastPress if ‘Load scripts asynchronously’ is disabled
2.3.2 – Support for unquoted src and type script attributes
2.3.1 – Images lazyloading fixed for Swift Performance
2.3.0 – window messaging support added, multiple improvements into event handling
2.2.21 – Swift Performance support added
2.2.20 – Breeze support added
2.2.19 – jQueryMock returned, to fire jQuery.ready early
2.2.18 – minor fixes
2.2.17 – document.write now properly processes inserted scripts
2.2.16 – better AJAX calls detection
2.2.15 – better readyState tracking, getting rid of jQueryMock
2.2.14 – Support for onreadystatechange property of document
2.2.13 – Bugfix in event queue management introduced in 2.2.12
2.2.12 – Important bugfix in event queue management
2.2.11 – Meta Slider support and general compatibility improvements
2.2.10 – Bugfix
2.2.9 – Bugfix
2.2.8 – Memory usage optimization
2.2.7 – Elementor error fixed
2.2.6 – Newrelic forced exclusion
2.2.5 – Avada Theme compatibility
2.2.4 – Swift Performance compatibility
2.2.3 – Readme updated
2.2.2 – CloudFlare RocketLoader compatibility Issue fixed
2.2.1 – Issue fixed
2.2.0 – UI to exclude scripts
2.1.4 – Tracking for natively lazyloaded images improved
2.1.3 – Getting rid of built-in lazyload handling in favor of native one. Refactoring
2.1.2 – Cloudflare Rocket Loader compatibility fixes
2.1.1 – Backend support for wpmeteor_exclude filter, also fixes Fast Velocity css preload in a different way Issue
2.1.0 – Event redispatching improved, compatibility fixes, refactoring
2.0.5 – Better Fast Velocity Minify compatibility
2.0.4 – Minor CSS rewriting fix
2.0.3 – Support for onload properties of window, document and body Issue
2.0.2 – Support for onload events in Issue
2.0.1 – Rewrite inside script tags fixed Issue
2.0.0 – Major script loading logics update
1.5.7 – Missing files added
1.5.6 – Moving before code to conform to Web Vitals best practices Issue
1.5.5 – Skip rewrite of content, other than text/html
1.5.4 – Improved detection of CloudFlare, better/safer script rewrites, dropping support for rocket_buffer
1.5.3 – SEOPress sitemaps.xml fix Issue
1.5.2 – Prevent clicks during touchmove, RTL support added
1.5.1 – Emulate Elementor Powerpack Pro menu
1.5.0 – wpmeteor_enabled filter added, to allow to disable optimizations ocasionally
1.4.9 – document.write override allowed for those who know how to do it better (egDivi editor)
1.4.8 – Divi theme builder compatibility fixed
1.4.7 – SiteGround Optimizer + WP Rocket issue fixed
1.4.6 – Elementor Offcanvas double animation fix Issue
1.4.5 – Elementor Offcanvas animations suppressed Issue
1.4.4 – Elementor Entrance Animations issues fixed
1.4.3 – Elementor Entrance Animations support added
1.4.2 – Removed override for currentTarget for replayed events, fixes some navigation menus
1.4.1 – For WP Rocket compatibility, using rocket_buffer filter to inject javascript
1.4.0 – Getting rid of { passive: true } for replayed pointer events
1.3.9 – DOMContentLoaded propagation to window object, proper event handler bindings
1.3.8 – Better fronted detection to avoid rewriting AJAX and REST requests
1.3.7 – Proper contexts for domcontentloaded and window.onload event handlers
1.3.6 – Better jQuery.ready handling
1.3.5 – CookieBot compatibility Issue fixed
1.3.4 – Stopping click propagation when capturing events Issue
1.3.3 – Better script loading in Firefox, scripts with both src and inline loading fixed Issue
1.3.2 – Better delayed events for mobile Issue
1.3.1 – Click handling in mobile safari improved Issue
1.3.0 – Gutenberg save failure fixed
1.2.9 – jQuery mockup fixed to support window.load inside ready() function
1.2.8 – Bug breaking header tags fixed
1.2.7 – Phastpress compatibility dropped
1.2.6 – Minor improvement to fire domcontentloaded and window.onload for non-optimized scripts
1.2.5 – Support for Autoptimize native lazyload
1.2.4 – Delayed click/mouseover/mouseout events support added
1.2.3 – Native WP Rocket lazyload support
1.2.2 – Phastpress compatibility
1.2.1 – stripped lazysizes added in, with bgsizes plugin
1.2.0 – minor cleanup
1.1.9 – simple lazyload polyfill
1.1.8 – infinite delay added
1.1.7 – rewriting redone to support Google AMP and other plugins that initialize late
1.1.6 – working support Beaver Builder / Edit Mode
1.1.5 – working support Elementor / Edit Mode, Google AMP, AMP for WP
1.1.4 – support for Elementor / Edit Mode
1.1.3 – support for AMP for WP plugin added
1.1.2 – support for Google AMP plugin added
1.1.1 – readme.txt updated, warning added that it might not work for someone
1.1.0 – JetPack compatibility fixes
1.0.9 – ?wpmeteornopreload added to allow testing disabling preload
1.0.8 – data-cfasync=”false” added to optimized scripts if behind CloudFlare
1.0.7 – ?wpmeteorcfasync parameter added to test disabling CloudFlare optimizations
1.0.6 – another iteration on domcontentloaded and window.onload handlers, jQuery mock rewrite
1.0.5 – better handling for broken domcontentloaded and window.onload handlers, better jQuery mock
1.0.4 – better cleanup on plugin deactivation
1.0.3 – readme.txt updated
1.0.2 – readme.txt updated
1.0.1 – minor Settings panel improvements
1.0.0 – initial release