[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f9XMR-C_bSVDqEBQOxqMpp1QRpwp4AWYvDvwF_2VguCE":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":24,"download_link":25,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":142,"fingerprints":203},"speculation-rules","Speculative Loading","1.6.0","WordPress Performance Team","https:\u002F\u002Fprofiles.wordpress.org\u002Fperformanceteam\u002F","\u003Cp>This plugin adds support for the \u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FSpeculation_Rules_API\" rel=\"nofollow ugc\">Speculation Rules API\u003C\u002Fa>, which allows defining rules by which certain URLs are dynamically prefetched or prerendered. This core Speculative Loading functionality was \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2025\u002F03\u002F06\u002Fspeculative-loading-in-6-8\u002F\" rel=\"nofollow ugc\">merged into WordPress 6.8\u003C\u002Fa>, but it only prefetches with conservative eagerness by default. In contrast, this plugin defaults to prerendering with moderate eagerness (i.e. when interacting with a link), and it provides a user interface to customize the mode and eagerness via the “Speculative Loading” section on the \u003Cem>Settings > Reading\u003C\u002Fem> admin screen.\u003C\u002Fp>\n\u003Cp>By default, speculative loading is only enabled for logged-out users, since unauthenticated pages are typically only eligible for caching and so more efficient to prefetch\u002Fprerender. This means that sites with frequent logged-in users on the frontend—such as e-commerce, forums, or membership sites—will not benefit from the feature. If your server can handle the additional load (for example, with persistent object caching), you can opt in to enable speculative loading for all logged-in users or for administrators only. This setting exclusively affects frontend pages; admin screens are always excluded.\u003C\u002Fp>\n\u003Cp>A filter can be used to exclude certain URL paths from being eligible for prefetching and prerendering (see FAQ section). Alternatively, you can add the \u003Ccode>no-prerender\u003C\u002Fcode> CSS class to any link (\u003Ccode>\u003Ca>\u003C\u002Fcode> tag) that should not be prerendered. See FAQ for more information.\u003C\u002Fp>\n\u003Ch4>Browser support\u003C\u002Fh4>\n\u003Cp>The Speculation Rules API is a new web API, and the functionality used by the plugin is supported in Chromium-based browsers such as Chrome, Edge, or Opera using version 121 or above. Other browsers such as Safari and Firefox will ignore the functionality with no ill effects; they will simply not benefit from the speculative loading. Note that certain browser extensions may disable preloading by default.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fcaniuse.com\u002Fmdn-html_elements_script_type_speculationrules\" rel=\"nofollow ugc\">Browser support for the Speculation Rules API in general\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Fweb-platform\u002Fprerender-pages\" rel=\"nofollow ugc\">Information on document rules syntax support used by the plugin\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>This plugin was formerly known as Speculation Rules.\u003C\u002Fem>\u003C\u002Fp>\n","Enables browsers to speculatively prerender or prefetch pages to achieve near-instant loads based on user interaction.",70000,400885,100,18,"2025-12-02T22:34:00.000Z","6.9.4","6.6","7.2",[20,21,22,23,4],"javascript","performance","prefetch","prerender","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fspeculation-rules","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fspeculation-rules.1.6.0.zip",0,null,"2026-03-15T15:16:48.613Z",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":13,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"performanceteam",10,700000,336,79,"2026-04-04T00:34:40.654Z",[38,63,83,100,122],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":58,"download_link":59,"security_score":60,"vuln_count":61,"unpatched_count":26,"last_vuln_date":62,"fetched_at":28},"async-javascript","Async JavaScript","2.21.08.31","David Clough","https:\u002F\u002Fprofiles.wordpress.org\u002Fcloughit\u002F","\u003Cp>Eliminate Render-blocking Javascript in above-the-fold content with Async Javascript.\u003C\u002Fp>\n\u003Cp>Render-blocking Javascript prevents above-the-fold content on your page from being rendered until the javascript has finished loading. This can impact on your page speed and ultimately your ranking within search engines. It can also impact your user’s experience.\u003C\u002Fp>\n\u003Cp>Async JavaScript gives you full control of which scripts to add an ‘async’ or ‘defer’ attribute to or to exclude to help increase the performance of your WordPress website.\u003C\u002Fp>\n","Async Javascript lets you add 'async' or 'defer' attribute to scripts to exclude to help increase the performance of your WordPres &hellip;",80000,2047749,94,102,"2023-06-22T08:00:00.000Z","6.2.9","4.6","",[55,20,56,21,57],"async","pagespeed","render-blocking","https:\u002F\u002Fautoptimize.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fasync-javascript.2.21.08.31.zip",84,2,"2021-06-13 00:00:00",{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":71,"downloaded":72,"rating":73,"num_ratings":35,"last_updated":74,"tested_up_to":16,"requires_at_least":75,"requires_php":76,"tags":77,"homepage":81,"download_link":82,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"flying-pages","Flying Pages: Preload Pages for Faster Navigation & Improved User Experience","2.4.7","Gijo Varghese","https:\u002F\u002Fprofiles.wordpress.org\u002Fgijo\u002F","\u003Cp>Flying Pages preload pages before the user click on it, making them load instantly\u003C\u002Fp>\n\u003Ch3>How it Works?\u003C\u002Fh3>\n\u003Cp>Flying Pages injects a tiny JavaScript code (1KB gzipped), waits until the browser becomes idle. Then it detects pages in the viewport and on mouse hover and preloads them.\u003C\u002Fp>\n\u003Cp>Flying Pages is intelligent to make sure preloading doesn’t crash your server or make it slow.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Preload pages in the viewport\u003C\u002Fstrong> – Detect links within the viewport (current viewing area) using ‘Intersection Observer’ and tells the browser to preload them using ‘prefetch’, switch to xhr if not available (similar to \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FGoogleChromeLabs\u002Fquicklink\" rel=\"nofollow ugc\">Quicklink\u003C\u002Fa>).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Preload pages on mouse hover\u003C\u002Fstrong> – On hovering links, if it’s not preloaded yet using above ‘viewport’, then Flying Pages will prefetch them instantly (similar to \u003Ca href=\"https:\u002F\u002Finstant.page\u002F\" rel=\"nofollow ugc\">Instant.page\u003C\u002Fa>).\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Limits the number of preloads per second\u003C\u002Fstrong> – If your page has too many links, prefetching all at the same time will cause the server to crash or slow down the website to visitors. Flying Pages limits the number of preloads per second (3 req\u002Fsec by default) using an in-built queue. For example, if you’ve 10 links in the viewport, preloading all these are span into 4 seconds.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Stops preloading if the server is busy\u003C\u002Fstrong> – In case the server starts to respond slowly or return errors, preloading will be stopped to reduce the server load.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Understands user’s connection and preferences\u003C\u002Fstrong> – Checks if the user is on a slow connection like 2G or has enabled data-saver. Flying Pages won’t preload anything in this case.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fflying-pages\u002F\" rel=\"ugc\">Official Support Forum\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fgroups\u002Fwpspeedmatters\" rel=\"nofollow ugc\">Facebook Group\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Our premium products\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fflyingpress.com\" rel=\"nofollow ugc\">FlyingPress\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fflyingcdn.com\" rel=\"nofollow ugc\">FlyingCDN\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Our free plugins\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflying-pages\u002F\" rel=\"ugc\">Flying Pages\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fnazy-load\u002F\" rel=\"ugc\">Flying Images\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflying-scripts\u002F\" rel=\"ugc\">Flying Scripts\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflying-analytics\u002F\" rel=\"ugc\">Flying Analytics\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflying-fonts\u002F\" rel=\"ugc\">Flying Fonts\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Preload pages intelligently to boost site speed and enhance user experience by loading pages before users click, ensuring instant page transitions.",20000,241853,98,"2025-12-02T13:23:00.000Z","4.5","5.6",[78,79,21,22,80],"fast","optimization","speed","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflying-pages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fflying-pages.2.4.7.zip",{"slug":84,"name":85,"version":86,"author":7,"author_profile":8,"description":87,"short_description":88,"active_installs":71,"downloaded":89,"rating":90,"num_ratings":91,"last_updated":92,"tested_up_to":93,"requires_at_least":17,"requires_php":18,"tags":94,"homepage":98,"download_link":99,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"web-worker-offloading","Web Worker Offloading","0.2.1","\u003Cp>This plugin offloads JavaScript execution to a Web Worker, improving performance by freeing up the main thread. This should translate into improved \u003Ca href=\"https:\u002F\u002Fweb.dev\u002Farticles\u002Finp\" rel=\"nofollow ugc\">Interaction to Next Paint\u003C\u002Fa> (INP) scores.\u003C\u002Fp>\n\u003Cp>⚠ \u003Cem>This functionality is experimental, and \u003Cstrong>it is now \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fissues\u002F2284\" rel=\"nofollow ugc\">intended to be sunset\u003C\u002Fa>\u003C\u002Fstrong>.\u003C\u002Fem> ⚠\u003C\u002Fp>\n\u003Cp>In order to opt in a script to be loaded in a worker, simply add \u003Ccode>worker\u003C\u002Fcode> script data to a registered script. For example,\u003Cbr \u002F>\nif you have a script registered with the handle of \u003Ccode>foo\u003C\u002Fcode>, opt-in to offload it to a web worker by doing:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>wp_script_add_data( 'foo', 'worker', true );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Unlike with the script loading strategies (async\u002Fdefer), any inline before\u002Fafter scripts associated with the worker-offloaded registered script will also be offloaded to the worker, whereas with the script strategies an inline after script would block the script from being delayed.\u003C\u002Fp>\n\u003Cp>Otherwise, the plugin currently ships with built-in integrations to offload Google Analytics to a web worker for the following plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fseo-by-rank-math\u002F\" rel=\"ugc\">Rank Math SEO\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgoogle-site-kit\u002F\" rel=\"ugc\">Site Kit by Google\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce\u002F\" rel=\"ugc\">WooCommerce\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Please monitor your analytics once activating to ensure all the expected events are being logged. At the same time, monitor your INP scores to check for improvement.\u003C\u002Fp>\n\u003Cp>This plugin relies on the \u003Ca href=\"https:\u002F\u002Fpartytown.builder.io\u002F\" rel=\"nofollow ugc\">Partytown 🎉\u003C\u002Fa> library by Builder.io, released under the MIT license. This library is in beta and there are quite a few \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBuilderIO\u002Fpartytown\u002Fissues?q=is%3Aopen+is%3Aissue+label%3Abug\" rel=\"nofollow ugc\">open bugs\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The \u003Ca href=\"https:\u002F\u002Fpartytown.builder.io\u002Fconfiguration\" rel=\"nofollow ugc\">Partytown configuration\u003C\u002Fa> can be modified via the \u003Ccode>plwwo_configuration\u003C\u002Fcode> filter. For example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nadd_filter( 'plwwo_configuration', function ( $config ) {\n    $config['mainWindowAccessors'][] = 'wp'; \u002F\u002F Make the wp global available in the worker (e.g. wp.i18n and wp.hooks).\n    return $config;\n} );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>However, not all of the configuration options can be serialized to JSON in this way, for example the \u003Ccode>resolveUrl\u003C\u002Fcode> configuration is a function. To specify this, you can add an inline script as follows.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nadd_action(\n    'wp_enqueue_scripts',\n    function () {\n        wp_add_inline_script(\n            'web-worker-offloading',\n            \u003C\u003C\u003CJS\n            window.partytown = {\n                ...(window.partytown || {}),\n                resolveUrl: (url, location, type) => {\n                    if (type === 'script') {\n                        const proxyUrl = new URL('https:\u002F\u002Fmy-reverse-proxy.example.com\u002F');\n                        proxyUrl.searchParams.append('url', url.href);\n                        return proxyUrl;\n                    }\n                    return url;\n                },\n            };\n            JS,\n            'before'\n        );\n    }\n);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>There are also many configuration options which are not documented, so refer to the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBuilderIO\u002Fpartytown\u002Fblob\u002Fb292a14047a0c12ca05ba97df1833935d42fdb66\u002Fsrc\u002Flib\u002Ftypes.ts#L393-L548\" rel=\"nofollow ugc\">TypeScript definitions\u003C\u002Fa>.\u003C\u002Fp>\n","Offloads select JavaScript execution to a Web Worker to reduce work on the main thread and improve the Interaction to Next Paint (INP) metric.",75473,60,3,"2026-02-27T20:19:00.000Z","7.0",[95,20,96,21,97],"analytics","partytown","web-worker","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fissues\u002F176","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fweb-worker-offloading.0.2.1.zip",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":110,"num_ratings":111,"last_updated":112,"tested_up_to":113,"requires_at_least":114,"requires_php":53,"tags":115,"homepage":119,"download_link":120,"security_score":121,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"use-google-libraries","Use Google Libraries","1.6.2.3","Jason Penney","https:\u002F\u002Fprofiles.wordpress.org\u002Fjczorkmid\u002F","\u003Cp>A number of the javascript libraries distributed with WordPress are also\u003Cbr \u002F>\nhosted on Google’s \u003Ca href=\"http:\u002F\u002Fcode.google.com\u002Fapis\u002Fajaxlibs\u002F\" rel=\"nofollow ugc\">AJAX Libraries API\u003C\u002Fa>.\u003Cbr \u002F>\nThis plugin allows your WordPress site to use the content distribution\u003Cbr \u002F>\nnetwork side of Google’s AJAX Library API, rather than serving these files from your WordPress install directly.\u003C\u002Fp>\n\u003Cp>This provides numerous potential performance benefits:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>increases the chance that a user already has these files cached\u003C\u002Fli>\n\u003Cli>takes load off your server\u003C\u002Fli>\n\u003Cli>uses compressed versions of the libraries (where available)\u003C\u002Fli>\n\u003Cli>Google’s servers are set up to negotiate HTTP compression with the requesting browser\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For a more detailed look see Dave Ward’s \u003Ca href=\"https:\u002F\u002Fweb-beta.archive.org\u002Fweb\u002F20101216143500\u002Fencosia.com\u002F2008\u002F12\u002F10\u002F3-reasons-why-you-should-let-google-host-jquery-for-you\u002F\" rel=\"nofollow ugc\">3 reasons why you should let\u003Cbr \u002F>\nGoogle host jQuery for\u003Cbr \u002F>\nyou\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Supported Libraries and Components\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fdojotoolkit.org\u002F\" rel=\"nofollow ugc\">Dojo\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fjquery.com\u002F\" rel=\"nofollow ugc\">jQuery\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fui.jquery.com\u002F\" rel=\"nofollow ugc\">jQuery UI\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fmootools.net\u002F\" rel=\"nofollow ugc\">MooTools\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.prototypejs.org\u002F\" rel=\"nofollow ugc\">Prototype\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fscript.aculo.us\u002F\" rel=\"nofollow ugc\">script.aculo.us\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fcode.google.com\u002Fp\u002Fswfobject\u002F\" rel=\"nofollow ugc\">swfobject\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Links\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fjasonpenney.net\u002Fwordpress-plugins\u002Fuse-google-libraries\u002F\" rel=\"nofollow ugc\">Use Google Libraries Home\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fgithub.com\u002Fjpenney\u002Fuse-google-libraries\u002Fissues\" rel=\"nofollow ugc\">Issue Tracker\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fgithub.com\u002Fjpenney\u002Fuse-google-libraries\" rel=\"nofollow ugc\">GitHub Repository\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fuse-google-libraries\" rel=\"ugc\">Support Forum\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Incompatible Plugins\u003C\u002Fh3>\n\u003Ch4>Better WordPress Minify\u003C\u002Fh4>\n\u003Cp>Better WordPress Minify version 1.2.2 does not yet support\u003Cbr \u002F>\nprotocol-relative URLs, but \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Ftopic\u002Fconflict-with-use-google-libraries-152\" rel=\"ugc\">the next release is supposed to correct\u003Cbr \u002F>\nthis\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Gravity Forms\u003C\u002Fh4>\n\u003Cp>I’ve had reports of Gravity Forms breaking UGL, but I don’t have\u003Cbr \u002F>\naccess to Gravity Forms, so I’m not sure what’s going on.  If you need\u003Cbr \u002F>\nGravity Forms you might need to disable UGL, or it might be fine, I’m\u003Cbr \u002F>\nnot really sure.\u003C\u002Fp>\n\u003Ch4>WP-Minify\u003C\u002Fh4>\n\u003Cp>WP-Minify doesn’t yet support protocol-relative URLs.  Add\u003Cbr \u002F>\n‘\u002F\u002Fajax.googleapis.com\u002F’ as a JS and CSS exclusion.\u003C\u002Fp>\n\u003Ch3>Incompatible Themes\u003C\u002Fh3>\n\u003Ch4>K2\u003C\u002Fh4>\n\u003Cp>I’ve had scattered reports that UGL is stepping out of the way when\u003Cbr \u002F>\nusing K2.\u003C\u002Fp>\n\u003Ch3>A Request\u003C\u002Fh3>\n\u003Cp>If you’re going to flag the plugin as “broken” in the WordPress Plugin\u003Cbr \u002F>\nDirectory, please try and \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Ftags\u002Fuse-google-libraries?forum_id=10\" rel=\"ugc\">let me know \u003Cem>what\u003C\u002Fem> is\u003Cbr \u002F>\nbroken\u003C\u002Fa>.\u003Cbr \u002F>\nI’m not a mind reader.\u003C\u002Fp>\n\u003Ch3>Technical Details\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>Use Google Libraries\u003C\u002Fstrong> uses the following hooks (each with a priority of 1000).\u003C\u002Fp>\n\u003Ch4>wp_default_scripts\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Use Google Libraries\u003C\u002Fstrong> compares it’s list of supported scripts to those\u003Cbr \u002F>\nregistered, and replaces the standard registrations \u003Ccode>src\u003C\u002Fcode> with ones that\u003Cbr \u002F>\npoint to Google’s servers.  Other attributes (like dependencies) are left\u003Cbr \u002F>\nintact.\u003C\u002Fp>\n\u003Ch4>script_loader_src\u003C\u002Fh4>\n\u003Cp>\u003Cstrong>Use Google Libraries\u003C\u002Fstrong> removes the \u003Ccode>ver=x.y.z\u003C\u002Fcode> query string from the URL\u003Cbr \u002F>\nused to load the requested library \u003Cem>if\u003C\u002Fem> it is going to load the library from\u003Cbr \u002F>\n    ajax.googleapis.com.  Otherwise the URL is left unaltered.  This both\u003Cbr \u002F>\nimproves the chances of the given URL already being cached, and prevents\u003Cbr \u002F>\n\u003Cstrong>script.aculo.us\u003C\u002Fstrong> from including scripts multiple times.\u003C\u002Fp>\n\u003Cp>If jQuery is enqued \u003Cstrong>Use Google Libraries\u003C\u002Fstrong> will inject a bit of\u003Cbr \u002F>\njavascript before the next enqueued script enabling jQuery’s \u003Ca href=\"http:\u002F\u002Fdocs.jquery.com\u002FCore\u002FjQuery.noConflict\" rel=\"nofollow ugc\">noConflict mode\u003C\u002Fa> as it would\u003Cbr \u002F>\nwith the standard WordPress version.\u003C\u002Fp>\n\u003Ch3>References\u003C\u002Fh3>\n\u003Cp>Parts of this plugin (specificly, the dropping of the micro number,\u003Cbr \u002F>\nwhich has since been removed for better caching performance) were\u003Cbr \u002F>\ninspired by John Blackbourn’s\u003Cbr \u002F>\n\u003Cstrong>\u003Ca href=\"http:\u002F\u002Flud.icro.us\u002Fwordpress-plugin-google-ajax-libraries\u002F\" rel=\"nofollow ugc\">Google AJAX Libraries\u003C\u002Fa>\u003C\u002Fstrong>,\u003Cbr \u002F>\nwhich has very similar goals to this plugin.\u003C\u002Fp>\n\u003Ch3>Future Plans\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>add ability to disable protocol relative URLs\u003C\u002Fli>\n\u003Cli>add ability to disable on frontend and\u002For admin\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows your site to use common javascript libraries from Google's AJAX Libraries CDN, rather than from WordPress's own copies.",10000,747905,88,47,"2017-11-28T05:16:00.000Z","4.7.32","3.4",[116,117,20,118,21],"cdn","google","jquery","http:\u002F\u002Fjasonpenney.net\u002Fwordpress-plugins\u002Fuse-google-libraries\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fuse-google-libraries.zip",85,{"slug":123,"name":124,"version":125,"author":126,"author_profile":127,"description":128,"short_description":129,"active_installs":130,"downloaded":131,"rating":48,"num_ratings":132,"last_updated":133,"tested_up_to":134,"requires_at_least":135,"requires_php":136,"tags":137,"homepage":140,"download_link":141,"security_score":13,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"scripts-to-footerphp","Scripts To Footer","0.7.3","Joshua David Nelson","https:\u002F\u002Fprofiles.wordpress.org\u002Fjoshuadnelson\u002F","\u003Cp>This small plugin moves scripts to the footer. Note that this only works if you have plugins and a theme that utilizes \u003Ccode>wp_enqueue_scripts\u003C\u002Fcode> correctly.\u003C\u002Fp>\n\u003Cp>You can disable the plugin on specific pages and posts directly via the post\u002Fpage edit screen metabox.\u003C\u002Fp>\n\u003Cp>You can disable the plugin on specific archive pages (blog page, search page, post type and taxonomy archives) via the settings page.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Everything Broken?\u003C\u002Fstrong> Try placing jQuery back into the header via Settings > Scripts to Footer, “Keep jQuery in the Header” checkbox. If that doesn’t work, refer to the walkthrough below for using the \u003Ccode>stf_exclude_scripts\u003C\u002Fcode> filter for the script that is causing the issue.\u003C\u002Fp>\n\u003Cp>Check out the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoshuadavidnelson\u002Fscripts-to-footer\u002Fwiki\" rel=\"nofollow ugc\">documentation\u003C\u002Fa> on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoshuadavidnelson\u002Fscripts-to-footer\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa> or some quick walkthroughs below.\u003C\u002Fp>\n\u003Ch4>Keeping specific Scripts in the Header\u003C\u002Fh4>\n\u003Cp>As of version 0.6 you can now keep specific scripts in the header. Note: this will print any scripts they depend on as well (if you want to keep \u003Ccode>jquery-effects-core\u003C\u002Fcode> in the header, you’ll also get \u003Ccode>jQuery\u003C\u002Fcode> in the header, so no need to add both).\u003C\u002Fp>\n\u003Cp>Specifically for jQuery, see the settings page option, as it is a common request we’ve built it into the settings.\u003C\u002Fp>\n\u003Cp>For any other scripts, use this filter:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>add_filter( 'stf_exclude_scripts', 'jdn_header_scripts', 10, 1 );\nfunction jdn_header_scripts( $scripts ) {\n\n    $scripts[] = 'backbone'; \u002F\u002F Replace 'backbone' with the script slug\n\n    return $scripts;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You will need the correct script slug, which is used when the script is registered, and the script will only be printed into the header \u003Cem>if it’s enqueued\u003C\u002Fem>. Check out the scripts that come registered \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FFunction_Reference\u002Fwp_enqueue_script#Default_Scripts_Included_and_Registered_by_WordPress\" rel=\"nofollow ugc\">out-of-the-box with WordPress\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note:\u003C\u002Fstrong> As of version 0.6.3, \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FConditional_Tags\" rel=\"nofollow ugc\">conditional tags\u003C\u002Fa> will work with the \u003Ccode>stf_exclude_scripts\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Ch4>Custom Post Type Support\u003C\u002Fh4>\n\u003Cp>If you’re comfortable with code you can use the \u003Ccode>scripts_to_footer_post_types\u003C\u002Fcode> filter to change the post types this applies to (it only applies to pages and posts by default). For example, if you have a custom post type called “project” you could add support for this metabox via the post type filter like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function stf_add_cpt_support( $post_types ) {\n\n    $post_types[] = 'project';\n\n    return $post_types;\n}\nadd_filter( 'scripts_to_footer_post_types', 'stf_add_cpt_support' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Excluding Pages\u002FPosts\u002FTemplates Via Filter\u003C\u002Fh4>\n\u003Cp>You can either use the checkbox option to disable the plugin’s action on a specific page\u002Fpost, or you can utilize a filter. The filter also passes the post\u002Fpage id, if there is one (archive templates don’t have ids!).\u003C\u002Fp>\n\u003Cp>For example, for the “page” post type:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>function stf_exclude_my_page( $exclude_page, $post_id ) {\n\n    if ( is_front_page() ) {\n        $exclude_page = 'on'; \u002F\u002F this turns on the \"exclude\" option\n    }\n\n    return $exclude_page;\n}\nadd_filter( 'stf_page', 'stf_exclude_my_page' );\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Replace \u003Ccode>stf_page\u003C\u002Fcode> with \u003Ccode>stf_post\u003C\u002Fcode> for posts, or the slug of your custom post type. For instance, a post type called “project” can be filtered with \u003Ccode>stf_project\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4>More Documentation\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoshuadavidnelson\u002Fscripts-to-footer\u002Fwiki\" rel=\"nofollow ugc\">See the plugin’s wiki\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Development \u002F Contributing\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoshuadavidnelson\u002Fscripts-to-footer\" rel=\"nofollow ugc\">View this plugin on GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>Please feel free to open a \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjoshuadavidnelson\u002Fscripts-to-footer\u002Fissues\" rel=\"nofollow ugc\">Github Issue\u003C\u002Fa> to report conflicts or goto \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fscripts-to-footerphp\" rel=\"ugc\">the WP.org support forum\u003C\u002Fa>. If there is something wrong with Scripts-to-Footer, we’ll update it. However, if it’s a another plugin or theme we can only contact the developer with the issue to attempt to resolve it.\u003C\u002Fp>\n","Move your scripts to the footer to help speed up perceived page load times and improve user experience.",8000,253349,37,"2025-11-17T02:54:00.000Z","6.8.5","5.3","7.4",[138,139,20,21,80],"footer","head","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fscripts-to-footerphp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fscripts-to-footerphp.0.7.3.zip",{"attackSurface":143,"codeSignals":182,"taintFlows":191,"riskAssessment":192,"analyzedAt":202},{"hooks":144,"ajaxHandlers":178,"restRoutes":179,"shortcodes":180,"cronEvents":181,"entryPointCount":26,"unprotectedCount":26},[145,151,155,160,164,169,174],{"type":146,"name":147,"callback":148,"file":149,"line":150},"filter","wp_speculation_rules_configuration","plsr_filter_speculation_rules_configuration","hooks.php",66,{"type":146,"name":152,"callback":153,"priority":32,"file":149,"line":154},"wp_speculation_rules_href_exclude_paths","plsr_filter_speculation_rules_exclude_paths",67,{"type":156,"name":157,"callback":158,"file":149,"line":159},"action","wp_footer","plsr_print_speculation_rules",72,{"type":156,"name":161,"callback":162,"file":149,"line":163},"wp_head","plsr_render_generator_meta_tag",86,{"type":156,"name":165,"callback":166,"file":167,"line":168},"after_setup_theme","anonymous","load.php",48,{"type":156,"name":170,"callback":171,"file":172,"line":173},"init","plsr_register_setting","settings.php",199,{"type":156,"name":175,"callback":176,"file":172,"line":177},"load-options-reading.php","plsr_add_setting_ui",253,[],[],[],[],{"dangerousFunctions":183,"sqlUsage":184,"outputEscaping":186,"fileOperations":26,"externalRequests":26,"nonceChecks":26,"capabilityChecks":189,"bundledLibraries":190},[],{"prepared":26,"raw":26,"locations":185},[],{"escaped":187,"rawEcho":26,"locations":188},19,[],1,[],[],{"summary":193,"deductions":194},"The \"speculation-rules\" plugin v1.6.0 exhibits a strong security posture based on the provided static analysis.  The absence of any identified AJAX handlers, REST API routes, shortcodes, or cron events with unprotected entry points is a significant strength, indicating a minimal attack surface. The code also demonstrates good security practices, with no dangerous functions, all SQL queries using prepared statements, and 100% of output properly escaped. The lack of file operations and external HTTP requests further reduces potential vulnerabilities.  However, the complete absence of taint analysis flows and a capability check on only one function, coupled with zero nonce checks, suggests potential blind spots or areas where such checks might be relevant but were not detected. The plugin's clean vulnerability history with zero known CVEs is a positive indicator of its overall security development and maintenance. Overall, the plugin appears to be developed with security in mind, focusing on robust input sanitization and secure database interactions. The primary weakness lies in the limited scope of static analysis demonstrated by the zero taint flows and the minimal evident authorization checks, which, while not currently showing vulnerabilities, could hide potential issues if the plugin's functionality were to expand.",[195,198,200],{"reason":196,"points":197},"No taint analysis flows analyzed",5,{"reason":199,"points":91},"Only 1 capability check found",{"reason":201,"points":197},"No nonce checks implemented","2026-03-16T17:13:09.731Z",{"wat":204,"direct":220},{"assetPaths":205,"generatorPatterns":211,"scriptPaths":212,"versionParams":213},[206,207,208,209,210],"\u002Fwp-content\u002Fplugins\u002Fspeculation-rules\u002Fplugin-api.php","\u002Fwp-content\u002Fplugins\u002Fspeculation-rules\u002Fhooks.php","\u002Fwp-content\u002Fplugins\u002Fspeculation-rules\u002Fsettings.php","\u002Fwp-content\u002Fplugins\u002Fspeculation-rules\u002Fwp-core-api.php","\u002Fwp-content\u002Fplugins\u002Fspeculation-rules\u002Fclass-plsr-url-pattern-prefixer.php",[4],[],[214,215,216,217,218,219],"speculation-rules?ver=","speculation-rules\u002Fplugin-api.php?ver=","speculation-rules\u002Fhooks.php?ver=","speculation-rules\u002Fsettings.php?ver=","speculation-rules\u002Fwp-core-api.php?ver=","speculation-rules\u002Fclass-plsr-url-pattern-prefixer.php?ver=",{"cssClasses":221,"htmlComments":222,"htmlAttributes":223,"restEndpoints":224,"jsGlobals":225,"shortcodeOutput":227},[],[],[],[],[226],"plsr_pending_plugin_info",[]]