What the check looks at
D1 reads the HTML of your home page as an anonymous visitor gets it and looks for the Rocket Loader script: a script tag whose src contains both /cdn-cgi/scripts/ and rocket-loader.min.js. The file name alone is not enough, so a page that only writes about Rocket Loader is not a finding.
Like every request Edge Doctor sends, these go only to the hosts of your Site Address and WordPress Address (home_url() and site_url()). An address WordPress gives on another host, such as a single sign on page, is never requested.
Results and what they mean
| Result | What it means |
|---|---|
| PassedConfidence: High | Rocket Loader is off Your pages load their scripts in the order they are written. |
| WarningConfidence: High | Rocket Loader is changing how your scripts run Rocket Loader rewrites the scripts on your pages. The result adds a note for an active payment plugin, page builder, or plugin that already delays scripts. |
| Could not checkConfidence: Medium | This check could not be completed The home page is the WooCommerce Coming soon page ( maintenance). |
| Could not checkConfidence: Low | This check could not be completed The home page could not be read. |
| Not applicable | Cloudflare is not in front of this site Check A1 did not detect Cloudflare, so this check sent no request. Reason not_behind_cloudflare. |
When the result names a reason
maintenance: The site is in maintenance mode or behind a coming soon page, so the pages read were not the real ones. A Rocket Loader script found on that page is still reported.loopback_failed: Your server could not reach its own site, so this check had nothing to read. The plugin links this result to its own guide: Your server could not reach its own site.blocked_by_config: WordPress itself refused the requests from your site to itself, so none was sent. WP_HTTP_BLOCK_EXTERNAL is on, and your own address is not let through. The plugin links this result to its own guide: WordPress blocks requests to your own site.not_behind_cloudflare: This site is not behind Cloudflare.
Symptoms you may notice
- Payment forms that do not load or do not submit; the result says to test a real payment before leaving Rocket Loader on.
- Sliders, tabs, pop ups or page builder widgets that stop working or appear late.
- Errors in the browser console about a function or jQuery not being defined.
Why it happens
Rocket Loader defers the loading of all your JavaScript until after rendering, while keeping the order of execution (Cloudflare: Rocket Loader). Code that expects a script to have run by a certain point, or a plugin that already delays or combines scripts, can then break. Cloudflare’s own advice for JavaScript or jQuery issues is to disable Rocket Loader and retest.
Confirm it by hand
curl -s "https://example.com/" | grep -o "cdn-cgi/scripts/[^\"]*rocket-loader.min.js"A match means Rocket Loader is on for that page. In DevTools, Network, filter by rocket to see it load.
How to fix it
In Cloudflare: turn Rocket Loader off, or limit it to some hostnames with a Configuration Rule.
Or keep it and exclude scripts. Add data-cfasync="false" to the script tag, before the src attribute; scripts it depends on need the attribute too:
<script data-cfasync="false" src="/js/payment.js"></script>In WordPress: do not delay or combine scripts in two places at once. If a performance plugin already delays JavaScript, leave Rocket Loader off.
Limitations
Only the home page is read. Rocket Loader can be limited to some hostnames, so other parts of the site may differ.
The plugin reports that Rocket Loader is on, not whether anything is broken. Test the pages that matter, especially checkout.
Related checks
- D2 Email Obfuscation: the other Cloudflare feature that rewrites your HTML.
- C6 Cached pages older than their nonces: forms that fail on cached pages.
Sources
Run this check on your own site with Edge Doctor for Cloudflare®, free on WordPress.org.
Edge Doctor for Cloudflare® is not affiliated with or endorsed by Cloudflare, Inc. Cloudflare is a registered trademark of Cloudflare, Inc.