[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f4OmEZNauakLYNwhf8EjLcT9FK6qKRLIr_1PPZrvxRD0":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":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":39,"analysis":134,"fingerprints":278},"better-resource-hints","Better Resource Hints","1.1.3","Alex MacArthur","https:\u002F\u002Fprofiles.wordpress.org\u002Falexmacarthur\u002F","\u003Cp>Better Resource Hints will make your WordPress site or application faster and generally more performant by intelligently leveraging resource hints like prefetch, preload, preconnect, and server push.\u003C\u002Fp>\n\u003Cp>As it stands, WordPress isn’t that bad about providing a base level of these hints. In fact, a basic, dedicated API has been \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2016\u002F07\u002F06\u002Fresource-hints-in-4-6\u002F\" rel=\"nofollow ugc\">shipped since version 4.6.\u003C\u002Fa>. However, this functionality only scratches the service, providing only \u003Ccode>dns-prefetch\u003C\u002Fcode> tags out of the box, and there’s growing opportunity to take advantage of different hints as they are introduced and gain more browser support. Specifically, this plugin focuses on the following types of hints for your styles and JavaScript assets:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Preconnecting\u003C\u002Fstrong> – This hint is similar to “dns-prefetch,” but a beefier version. Instead of just resolving the DNS, the preconnect hint handles TLS negotiations and TCP handshakes, resulting in reduced page latency.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Preloading\u003C\u002Fstrong> – Preloading occurs when the browser is told it can start downloading an asset in the background early during page load, instead of waiting until the asset is explicitly called to start the process. This hint is most beneficial for assets loaded later on in the page, but are nonetheless essential to the page’s functionality. More often than not, this is a JavaScript file. Enabling this results in an overall faster load time, and quicker time to interactive.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Prefetching\u003C\u002Fstrong> – Prefetching assets is similar to preloading, but the assets are downloaded in low priority for the purpose of caching them for later use. For example, if a user hits your home page and is likely to go to a page that uses a heavy JavaScript file, it’s wise to prefetch that asset on the home page, so it’s cached and ready to go on the next. Again, the result is a quicker subsequent page load, quicker time to interactive, and an improved overall user experience. This is different from DNS prefetching, which will only resolve the DNS of a resource’s host, and not actually download the resource itself.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Server Push\u003C\u002Fstrong> – If enabled, server push will tell your server to start delivering an asset before the browser even asks for it. This results in a much faster delivery of key assets, and be toggled on for both preloaded, prefetched, and preconnected assets. \u003Cstrong>Note: This feature requires a server that supports server push, and is the most experimental strategy this plugin provides.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>As with any sort of performance-enhancing technique, just be aware that they should be used judiciously, and that the results you see will depend on the size the of resources your site loads, as well as how your server is configured. For additional reading, see some of the resources below:\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fmedium.com\u002Freloading\u002Fpreload-prefetch-and-priorities-in-chrome-776165961bbf\" rel=\"nofollow ugc\">Preload, Prefetch, & Priorities in Chrome\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ftools\u002Flighthouse\u002Faudits\u002Fpreload\" rel=\"nofollow ugc\">Preloading Key Requests\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.smashingmagazine.com\u002F2016\u002F02\u002Fpreload-what-is-it-good-for\u002F\" rel=\"nofollow ugc\">Preload: What’s It Good For?\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwww.keycdn.com\u002Fblog\u002Fresource-hints\u002F\" rel=\"nofollow ugc\">Resource Hints – What is Preload, Prefetch, and Preconnect?\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>What Makes This Plugin Stand Apart?\u003C\u002Fh4>\n\u003Cp>There’s no shortage of plugins out there that aim to leverage resource hints for boosting performance. However, I’ve seen that several of them make the following mistakes:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Inflexible Hint Management\u003C\u002Fstrong> Many similar plugins only provide very limited flexibility in their options, and only allow setting hints globally for every page, regardless of whether the resources are actually needed on the page. This can often result in unecessarily bloaging your bandwidth, since hints on several pages are effectively useless. In some cases, this could actually lead to a less performant site. This plugin attempts to provide options to manage hints more flexibily and intelligently, meaning you won’t be unecessarily preloading assets in the background when they’re not even needed on the page.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Misunderstanding What Different Hints Do\u003C\u002Fstrong> I’ve come across some plugins that fail to understand and leverage different hints like they were designed. For example, promising that assets are being preloaded, when they’re actually being prefetched. These and other hints have very different purposes, and should not be interchangably used if you want them to impact your site in the most effective way. This plugin attempts to leverage these hints in way to maximize their effectiveness. For example, BHR won’t prefetch any assets that are enqueued on the page, because that’s just not how the prefetch hint is designed to be used.\u003C\u002Fp>\n\u003Cp>Is Better Resource Hints perfect? Absolutely not. That’s why I encourage any constructive feedback or bug reports to be sent my way immediately, so that I can’t improve this plugin as quickly as possible.\u003C\u002Fp>\n\u003Ch4>A Note About Preloading CSS\u003C\u002Fh4>\n\u003Cp>Because of their high placement on a page, if the option is enabled, your CSS files will be asyncronously preloaded, and \u003Cem>then\u003C\u002Fem> turned into a stylesheet once they’ve completely loaded. The advantage to doing this is that while the files are downloading, they won’t block the rest of the page from rendering, resulting an overall faster page load.\u003C\u002Fp>\n\u003Cp>However, this also means that there may be a flash of unstyled content on the page for a brief moment as the files download. To prevent this, it’s recommended to only preload CSS files that are not critical to the initial view of the page. This will allow you to gain some performance points without sacrificing use experience as the page loads.\u003C\u002Fp>\n\u003Ch3>Filters\u003C\u002Fh3>\n\u003Cp>The following filters are exposed for your use.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u002F**\n* Modify the HTML link generated for preconnecting hosts.\n*\n* @param string $link (HTML tag)\n* @param string $url (URL of the host)\n* @return string\n*\u002F\nadd_filter('better_resource_hints_preconnect_tag', function ($link, $url) {\n    return $url;\n}, 10, 2);\n\n\n\n\u002F**\n* Modify the HTML link generated for prefetching hosts.\n*\n* @param string $link (HTML tag)\n* @param string $handle (WP handle of the resource\n* @param string $type (script or style)\n* @return string\n*\u002F\nadd_filter('better_resource_hints_prefetch_tag', function ($link, $handle, $type) {\n    return $url;\n}, 10, 3);\n\n\n\n\u002F**\n* Modify the HTML link generated for preloading hosts.\n*\n* @param string $link (HTML tag)\n* @param string $handle (WP handle of the resource\n* @param string $type (script or style)\n* @return string\n*\u002F\nadd_filter('better_resource_hints_preload_tag', function ($link, $handle, $type) {\n    return $url;\n}, 10, 3);\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>What Happens Out of the Box?\u003C\u002Fh3>\n\u003Cp>Upon activation, Better Resource Hints will optimize your resource hints in a conservative, low-risk way by only doing two things out of the box:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Preloading JavaScript assets enqueued in the footer.\u003C\u002Fli>\n\u003Cli>Setting preconnect hints for all third party hosts that already have dns-preconnect hints.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Using the Plugin\u003C\u002Fh3>\n\u003Cp>After activation, you are able to adjust settings to tweak optimization as seen fit. As a means of testing your optimizations, use a tool like \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fweb\u002Ftools\u002Flighthouse\u002F\" rel=\"nofollow ugc\">Google Lighthouse\u003C\u002Fa> to measure the impact of these changes on your site’s performance.\u003C\u002Fp>\n\u003Cp>As mentioned, the techniques used here are largely supported by modern browsers, but your results may vary depending on the amount of assets being loaded on your site, as well as your server configuration.\u003C\u002Fp>\n\u003Ch3>Feedback\u003C\u002Fh3>\n\u003Cp>You like it? \u003Ca href=\"mailto:alex@macarthur.me\" rel=\"nofollow ugc\">Email\u003C\u002Fa> or \u003Ca href=\"http:\u002F\u002Fwww.twitter.com\u002Famacarthur\" rel=\"nofollow ugc\">tweet\u003C\u002Fa> me. You hate it? \u003Ca href=\"mailto:alex@macarthur.me\" rel=\"nofollow ugc\">Email\u003C\u002Fa> or \u003Ca href=\"http:\u002F\u002Fwww.twitter.com\u002Famacarthur\" rel=\"nofollow ugc\">tweet\u003C\u002Fa> me.\u003C\u002Fp>\n\u003Cp>Regardless of how you feel, your review would be greatly appreciated!\u003C\u002Fp>\n","Better Resource Hints will make your WordPress site or application faster and generally more performant by intelligently leveraging resource hints lik &hellip;",200,10965,100,3,"2019-02-12T03:24:00.000Z","5.0.25","4.0","5.6",[20,21,22,23,24],"performance","prefetch","preload","resource-hints","server-push","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbetter-resource-hints.1.1.3.zip",85,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"alexmacarthur",2,300,30,84,"2026-04-03T23:30:52.836Z",[40,56,76,94,113],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":28,"num_ratings":28,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":25,"tags":53,"homepage":25,"download_link":55,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"lh-http2-server-push","LH HTTP\u002F2 Server Push","1.02","shawfactor","https:\u002F\u002Fprofiles.wordpress.org\u002Fshawfactor\u002F","\u003Cp>Server Push provides significant performance gains if used judiciously. However other WordPress plugins that handle server push can actually slow your site as they push files indiscrimentally.\u003C\u002Fp>\n\u003Cp>Most push all files enqueued by wordpress to the broswer and use output buffering to achieve this.\u003C\u002Fp>\n\u003Cp>However this plugin does it properly by only pushing the the assets that the browser requires for the initial user interaction. Namely the scripts and css in the head of the document.\u003C\u002Fp>\n\u003Cp>Note : It requires a web server that supports HTTP\u002F2.\u003C\u002Fp>\n","Does HTTP\u002F2 Server Push for JavaScript and CSS resources properly.",10,2083,"2017-05-25T04:17:00.000Z","4.7.32","3.0",[54,20,21,22,24],"http2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flh-http2-server-push.zip",{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":66,"num_ratings":14,"last_updated":67,"tested_up_to":68,"requires_at_least":69,"requires_php":70,"tags":71,"homepage":74,"download_link":75,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"image-preloading","Image Preloading","2.0.0","tiptinker","https:\u002F\u002Fprofiles.wordpress.org\u002Fsnowbedding\u002F","\u003Cp>Image Preloading is a powerful WordPress plugin that helps improve your website’s performance by preloading images in the background. This results in faster page loading experiences, especially beneficial for photo galleries, image-heavy sites, and e-commerce stores.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Cstrong>Multiple Preloading Methods\u003C\u002Fstrong>: Choose between JavaScript preloading, modern Link preload headers, or both\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Unlimited Image URLs\u003C\u002Fstrong>: Add as many images as you need\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Modern JavaScript\u003C\u002Fstrong>: Uses Promise-based loading with proper error handling\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Performance Optimized\u003C\u002Fstrong>: Only loads when needed and uses browser idle time when available\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Security Focused\u003C\u002Fstrong>: Proper input sanitization and validation\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin Interface\u003C\u002Fstrong>: Clean, modern settings page integrated with WordPress admin\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Localization Ready\u003C\u002Fstrong>: Translation-ready with proper text domains\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Preloading Methods\u003C\u002Fh3>\n\u003Col>\n\u003Cli>\u003Cstrong>JavaScript Method\u003C\u002Fstrong>: Uses modern JavaScript with Promise-based image loading. Compatible with all browsers.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Link Preload\u003C\u002Fstrong>: Uses HTML \u003Ccode>\u003Clink rel=\"preload\">\u003C\u002Fcode> tags for modern browsers with native preloading support.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Both Methods\u003C\u002Fstrong>: Combines both approaches for maximum compatibility and performance.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Use Cases\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Photo galleries and portfolios\u003C\u002Fli>\n\u003Cli>E-commerce product images\u003C\u002Fli>\n\u003Cli>Hero banners and sliders\u003C\u002Fli>\n\u003Cli>Background images\u003C\u002Fli>\n\u003Cli>Any image-heavy content\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>For support, bug reports, or feature requests, please visit: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftiptinker\u002Fimage-preloading\" rel=\"nofollow ugc\">Github\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Contributing\u003C\u002Fh3>\n\u003Cp>Contributions are welcome! Please feel free to submit pull requests or open issues on GitHub.\u003C\u002Fp>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPLv2 or later.\u003Cbr \u002F>\nLicense URI: https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\u003C\u002Fp>\n","Modern image preloading\u002Fprefetching plugin for WordPress to improve page loading performance.",50,3010,74,"2026-02-12T03:39:00.000Z","6.9.4","5.0","7.2",[72,20,21,22,73],"image","speed","https:\u002F\u002Fgithub.com\u002Fsnowbedding\u002Fimage-preloading","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimage-preloading.2.0.0.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":13,"num_ratings":86,"last_updated":87,"tested_up_to":68,"requires_at_least":88,"requires_php":70,"tags":89,"homepage":92,"download_link":93,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"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,18,"2025-12-02T22:34:00.000Z","6.6",[90,20,21,91,77],"javascript","prerender","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fspeculation-rules","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fspeculation-rules.1.6.0.zip",{"slug":95,"name":96,"version":97,"author":98,"author_profile":99,"description":100,"short_description":101,"active_installs":102,"downloaded":103,"rating":104,"num_ratings":105,"last_updated":106,"tested_up_to":68,"requires_at_least":107,"requires_php":18,"tags":108,"homepage":111,"download_link":112,"security_score":13,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"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,79,"2025-12-02T13:23:00.000Z","4.5",[109,110,20,21,73],"fast","optimization","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fflying-pages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fflying-pages.2.4.7.zip",{"slug":114,"name":115,"version":116,"author":117,"author_profile":118,"description":119,"short_description":120,"active_installs":121,"downloaded":122,"rating":123,"num_ratings":124,"last_updated":125,"tested_up_to":68,"requires_at_least":126,"requires_php":18,"tags":127,"homepage":130,"download_link":131,"security_score":13,"vuln_count":132,"unpatched_count":28,"last_vuln_date":133,"fetched_at":30},"wp-performance-score-booster","WP Performance Score Booster – Optimize Speed, Enable Cache & Page Preload","2.2.3","Dipak C. Gajjar","https:\u002F\u002Fprofiles.wordpress.org\u002Fdipakcg\u002F","\u003Cp>\u003Cstrong>WP Performance Score Booster makes website faster, speeds up page load time, and instantly improves website performance scores in tools like Google PageSpeed Insights, GTmetrix, Pingdom, and more.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>This plugin will…\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Remove any query strings from static resources like CSS & JS files\u003C\u002Fli>\n\u003Cli>Enable GZIP compression (compress text, html, javascript, css, xml and so on)\u003C\u002Fli>\n\u003Cli>Leverage browser caching (expires headers) for better cache control\u003C\u002Fli>\n\u003Cli>Preload a page (on mouse hover) right before a user click on a link\u003C\u002Fli>\n\u003Cli>Disable ETag and set Cache-Control headers\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FnEFZLFyZNcE?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Cp>\u003Cstrong>Like this plugin? You’ll love my other plugin: \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-super-minify\u002F\" rel=\"ugc\">WP Super Minify\u003C\u002Fa>\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Development & Support\u003C\u002Fh4>\n\u003Cp>Follow the development of this plugin on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fdipakcg\u002Fwp-performance-score-booster\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>P.S. It is always the best policy to open a \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fwp-performance-score-booster#new-topic-0\" rel=\"ugc\">support thread\u003C\u002Fa> first before posting any negative review.\u003C\u002Fp>\n","Make website faster, speed up page load time and improve performance scores in tools like Google PageSpeed Insights, GTmetrix, Pingdom, and more.",10000,735375,92,339,"2026-02-10T11:59:00.000Z","3.5",[128,20,22,129,73],"optimize","query-string","https:\u002F\u002Fgithub.com\u002Fdipakcg\u002Fwp-performance-score-booster","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-performance-score-booster.2.2.3.zip",1,"2021-10-18 00:00:00",{"attackSurface":135,"codeSignals":199,"taintFlows":271,"riskAssessment":272,"analyzedAt":277},{"hooks":136,"ajaxHandlers":195,"restRoutes":196,"shortcodes":197,"cronEvents":198,"entryPointCount":28,"unprotectedCount":28},[137,143,149,152,157,161,163,167,169,171,175,179,184,187,191],{"type":138,"name":139,"callback":140,"file":141,"line":142},"action","admin_enqueue_scripts","enqueue_styles_and_scripts","better-resource-hints.php",62,{"type":144,"name":145,"callback":146,"priority":48,"file":147,"line":148},"filter","style_loader_tag","add_id_to_style_tags","src\\Filters.php",9,{"type":144,"name":150,"callback":151,"priority":48,"file":147,"line":48},"script_loader_tag","add_id_to_script_tags",{"type":144,"name":153,"callback":154,"priority":155,"file":156,"line":155},"wp_resource_hints","preconnect_hosts",11,"src\\Preconnector.php",{"type":138,"name":158,"callback":159,"priority":132,"file":160,"line":148},"wp_head","prefetch_javascript","src\\Prefetcher.php",{"type":138,"name":158,"callback":162,"priority":132,"file":160,"line":48},"prefetch_styles",{"type":138,"name":164,"callback":165,"file":166,"line":148},"wp_enqueue_scripts","enqueue_load_css_js","src\\Preloader.php",{"type":138,"name":158,"callback":168,"priority":132,"file":166,"line":48},"preload_javascript",{"type":138,"name":158,"callback":170,"priority":132,"file":166,"line":155},"preload_css",{"type":144,"name":172,"callback":173,"priority":48,"file":166,"line":174},"better_resource_hints_preload_tag","change_rel_type",12,{"type":144,"name":176,"callback":177,"priority":48,"file":166,"line":178},"better_resource_hints_should_preload","default_script_preloading",13,{"type":138,"name":180,"callback":181,"file":182,"line":183},"admin_init","register_main_setting","src\\Settings.php",22,{"type":138,"name":180,"callback":185,"file":182,"line":186},"register_settings",23,{"type":138,"name":188,"callback":189,"file":182,"line":190},"admin_menu","better_resource_hints_settings_page",24,{"type":138,"name":192,"callback":193,"file":182,"line":194},"wp_logout","reset_active_tab",25,[],[],[],[],{"dangerousFunctions":200,"sqlUsage":201,"outputEscaping":203,"fileOperations":269,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":270},[],{"prepared":28,"raw":28,"locations":202},[],{"escaped":132,"rawEcho":204,"locations":205},34,[206,210,212,215,217,219,221,222,224,226,227,228,229,231,232,234,236,238,239,241,243,244,246,248,249,252,254,256,257,259,261,263,265,267],{"file":207,"line":208,"context":209},"src\\inc\\preconnect-assets.php",17,"raw output",{"file":207,"line":211,"context":209},32,{"file":213,"line":214,"context":209},"src\\inc\\preconnect-server-push.php",16,{"file":216,"line":86,"context":209},"src\\inc\\prefetched-scripts.php",{"file":216,"line":218,"context":209},33,{"file":216,"line":220,"context":209},44,{"file":216,"line":220,"context":209},{"file":223,"line":214,"context":209},"src\\inc\\prefetched-server-push.php",{"file":225,"line":86,"context":209},"src\\inc\\prefetched-styles.php",{"file":225,"line":218,"context":209},{"file":225,"line":220,"context":209},{"file":225,"line":220,"context":209},{"file":230,"line":86,"context":209},"src\\inc\\preloaded-scripts.php",{"file":230,"line":211,"context":209},{"file":230,"line":233,"context":209},46,{"file":230,"line":235,"context":209},61,{"file":230,"line":237,"context":209},72,{"file":230,"line":237,"context":209},{"file":240,"line":214,"context":209},"src\\inc\\preloaded-server-push.php",{"file":242,"line":86,"context":209},"src\\inc\\preloaded-styles.php",{"file":242,"line":211,"context":209},{"file":242,"line":245,"context":209},47,{"file":242,"line":247,"context":209},58,{"file":242,"line":247,"context":209},{"file":250,"line":251,"context":209},"src\\inc\\promo.php",15,{"file":250,"line":253,"context":209},21,{"file":250,"line":255,"context":209},27,{"file":250,"line":218,"context":209},{"file":156,"line":258,"context":209},43,{"file":160,"line":260,"context":209},69,{"file":166,"line":262,"context":209},127,{"file":182,"line":264,"context":209},110,{"file":182,"line":266,"context":209},122,{"file":182,"line":268,"context":209},134,4,[],[],{"summary":273,"deductions":274},"The \"better-resource-hints\" plugin v1.1.3 exhibits a generally strong security posture based on the provided static analysis. The absence of any identified AJAX handlers, REST API routes, shortcodes, or cron events significantly limits the potential attack surface. Furthermore, the analysis indicates no dangerous functions, all SQL queries are properly prepared, and there are no recorded vulnerabilities or CVEs. This suggests a well-developed and conscientiously secured plugin.\n\nHowever, a significant concern arises from the output escaping analysis, where only 3% of the 35 outputs are properly escaped. This indicates a substantial risk of Cross-Site Scripting (XSS) vulnerabilities, as unsanitized output can lead to malicious code injection. While taint analysis shows no issues, the lack of proper output escaping is a critical weakness that could be exploited if any user-supplied data or dynamic content is rendered without adequate sanitization. The absence of nonce and capability checks across the board, while not directly identified as exploitable due to the limited attack surface, represents a missed opportunity for robust security practices.\n\nIn conclusion, the plugin's minimal attack surface and clean vulnerability history are positive indicators. Nevertheless, the severe deficiency in output escaping presents a clear and present danger that overshadows these strengths. Addressing the output escaping issue should be the top priority to mitigate the risk of XSS attacks and improve the overall security of the plugin.",[275],{"reason":276,"points":251},"Low percentage of properly escaped output","2026-03-16T20:22:02.207Z",{"wat":279,"direct":289},{"assetPaths":280,"generatorPatterns":284,"scriptPaths":285,"versionParams":286},[281,282,283],"\u002Fwp-content\u002Fplugins\u002Fbetter-resource-hints\u002Fsrc\u002Fassets\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fbetter-resource-hints\u002Fsrc\u002Fassets\u002Fjs\u002Fscripts.min.js","\u002Fwp-content\u002Fplugins\u002Fbetter-resource-hints\u002Fsrc\u002Fassets\u002Fjs\u002Fpreload.min.js",[],[282,283],[287,288],"better-resource-hints\u002Fstyle.css?ver=","scripts.min.js?ver=",{"cssClasses":290,"htmlComments":291,"htmlAttributes":297,"restEndpoints":299,"jsGlobals":300,"shortcodeOutput":301},[],[292,292,293,294,295,296],"In the future, check if user would like to preload $specificHandlesToPreload's dependencies as well.","Only footer scripts!","All scripts!","Only scripts specified!","Allow this to be manually enabled.",[298],"onload=\"this.onload=null;this.rel='stylesheet'\"",[],[],[]]