[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fQ1M1tr-_FPPjb7-YUtX55w52SQjKS4ds8ucOnSnpfsY":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"performanceteam","WordPress Performance Team","https:\u002F\u002Fprofiles.wordpress.org\u002Fperformanceteam\u002F",10,690000,100,336,79,"2026-05-20T05:03:00.880Z",[14,40,60,74,86,101,113,124,135,149],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":20,"downloaded":21,"rating":22,"num_ratings":23,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":28,"homepage":34,"download_link":35,"security_score":9,"vuln_count":36,"unpatched_count":37,"last_vuln_date":38,"fetched_at":39},"performance-lab","Performance Lab","4.1.0","\u003Cp>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.\u003C\u002Fp>\n\u003Cp>The feature plugins which are currently featured by this plugin are:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fembed-optimizer\u002F\" rel=\"ugc\">Embed Optimizer\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fauto-sizes\u002F\" rel=\"ugc\">Enhanced Responsive Images\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fdominant-color-images\u002F\" rel=\"ugc\">Image Placeholders\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimage-prioritizer\u002F\" rel=\"ugc\">Image Prioritizer\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fnocache-bfcache\u002F\" rel=\"ugc\">Instant Back\u002FForward\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwebp-uploads\u002F\" rel=\"ugc\">Modern Image Formats\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Foptimization-detective\u002F\" rel=\"ugc\">Optimization Detective\u003C\u002Fa> (dependency for Embed Optimizer and Image Prioritizer)\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fperformant-translations\u002F\" rel=\"ugc\">Performant Translations\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fspeculation-rules\u002F\" rel=\"ugc\">Speculative Loading\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fview-transitions\u002F\" rel=\"ugc\">View Transitions\u003C\u002Fa> \u003Cem>(experimental)\u003C\u002Fem>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>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.\u003C\u002Fp>\n","Performance plugin from the WordPress Performance Team, which is a collection of standalone performance features.",200000,3491178,86,50,"2026-02-27T20:19:00.000Z","7.0","6.6","7.2",[29,30,31,32,33],"diagnostics","measurement","optimization","performance","site-health","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fperformance-lab.4.1.0.zip",1,0,"2023-05-18 00:00:00","2026-04-16T10:56:18.058Z",{"slug":41,"name":42,"version":43,"author":5,"author_profile":6,"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":26,"requires_php":27,"tags":52,"homepage":57,"download_link":58,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"webp-uploads","Modern Image Formats","2.6.1","\u003Cp>This plugin adds WebP and AVIF support for media uploads within the WordPress application. By default, AVIF images will be generated if supported on the hosting server, otherwise WebP will be used as the output format. When both formats are available, the output format can be selected under \u003Ccode>Settings > Media\u003C\u002Fcode>. Modern images will be generated only for new uploads, pre-existing images will only converted to a modern format if images are regenerated. Images can be regenerated with a plugin like \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fregenerate-thumbnails\u002F\" rel=\"ugc\">Regenerate Thumbnails\u003C\u002Fa> or via WP-CLI with the \u003Ccode>wp media regenerate\u003C\u002Fcode> \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fcli\u002Fcommands\u002Fmedia\u002Fregenerate\u002F\" rel=\"nofollow ugc\">command\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>By default, only modern image format sub-sizes will be generated for JPEG or PNG uploads – only the original uploaded file will still exist as a JPEG\u002FPNG image, generated image sizes will be WebP or AVIF files. To change this behavior, there is a checkbox in \u003Ccode>Settings > Media\u003C\u002Fcode> “Output fallback images” that – when checked – will result in the plugin generating both the original format as well as WebP or AVIF images for every sub-size (noting again that this will only affect newly uploaded images, i.e. after making said change).\u003C\u002Fp>\n\u003Cp>\u003Cem>This plugin was formerly known as WebP Uploads.\u003C\u002Fem>\u003C\u002Fp>\n","Converts images to more modern formats such as WebP or AVIF during upload.",100000,985436,66,23,"2026-01-09T00:12:00.000Z","6.9.4",[53,54,55,32,56],"avif","images","modern-image-formats","webp","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fwebp-uploads","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwebp-uploads.2.6.1.zip",null,{"slug":61,"name":62,"version":63,"author":5,"author_profile":6,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":70,"homepage":72,"download_link":73,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"dominant-color-images","Image Placeholders","1.2.1","\u003Cp>This plugin determines and stores the dominant color for newly uploaded images in the media library within WordPress and then uses it to create a placeholder background of that color in the frontend, visible until the image is loaded.\u003C\u002Fp>\n\u003Cp>\u003Cem>This plugin was formerly known as Dominant Color Images.\u003C\u002Fem>\u003C\u002Fp>\n","Displays placeholders based on an image's dominant color while the image is loading.",70000,398651,70,2,[71,54,32],"dominant-color","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fdominant-color-images","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdominant-color-images.1.2.1.zip",{"slug":75,"name":76,"version":77,"author":5,"author_profile":6,"description":78,"short_description":79,"active_installs":66,"downloaded":80,"rating":22,"num_ratings":81,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":82,"homepage":84,"download_link":85,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"optimization-detective","Optimization Detective","1.0.0-beta5","\u003Cp>This plugin captures real user metrics about what elements are displayed on the page across a variety of device form factors (e.g. desktop, tablet, and phone) in order to apply loading optimizations which are not possible with WordPress’s current server-side heuristics.\u003C\u002Fp>\n\u003Cp>This plugin is a framework dependency which does not provide optimization functionality on its own. For that, please install the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimage-prioritizer\u002F\" rel=\"ugc\">Image Prioritizer\u003C\u002Fa> and \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fembed-optimizer\u002F\" rel=\"ugc\">Embed Optimizer\u003C\u002Fa> dependent plugins (among \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Flabels\u002F%5BPlugin%5D%20Optimization%20Detective\" rel=\"nofollow ugc\">others\u003C\u002Fa> to come from the WordPress Core Performance team). There are currently \u003Cstrong>no settings\u003C\u002Fstrong> and no user interface for this plugin since it is designed to work without any configuration.\u003C\u002Fp>\n\u003Cp>Your site must currently have the \u003Cstrong>REST API accessible\u003C\u002Fstrong> to unauthenticated frontend visitors since this is how real user metrics are collected about pages on your site; nevertheless, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fissues\u002F1311\" rel=\"nofollow ugc\">exploration\u003C\u002Fa> is underway for providing alternative mechanisms for collecting the metrics. Also, please note that no metrics are currently collected from Safari since it does not yet support the \u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002Fen-US\u002Fdocs\u002FWeb\u002FAPI\u002FLargestContentfulPaint\" rel=\"nofollow ugc\">Largest Contentful Paint\u003C\u002Fa> metric, but support for this \u003Ca href=\"https:\u002F\u002Fweb.dev\u002Fexplore\u002Flearn-core-web-vitals\" rel=\"nofollow ugc\">Core Web Vitals\u003C\u002Fa> metric is coming this year \u003Ca href=\"https:\u002F\u002Fwebkit.org\u002Fblog\u002F16458\u002Fannouncing-interop-2025\u002F#core-web-vitals\" rel=\"nofollow ugc\">via Interop 2025\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Please refer to the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fblob\u002Ftrunk\u002Fplugins\u002Foptimization-detective\u002Fdocs\u002FREADME.md\" rel=\"nofollow ugc\">full plugin documentation\u003C\u002Fa> for a \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fblob\u002Ftrunk\u002Fplugins\u002Foptimization-detective\u002Fdocs\u002Fintroduction.md\" rel=\"nofollow ugc\">technical introduction\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fblob\u002Ftrunk\u002Fplugins\u002Foptimization-detective\u002Fdocs\u002Fhooks.md\" rel=\"nofollow ugc\">filter\u002Faction hooks\u003C\u002Fa>, and \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fblob\u002Ftrunk\u002Fplugins\u002Foptimization-detective\u002Fdocs\u002Fextensions.md\" rel=\"nofollow ugc\">extensions\u003C\u002Fa> that show use cases and examples. You can also watch the talk from WordCamp Asia 2025: \u003Ca href=\"https:\u002F\u002Fweston.ruter.net\u002F2025\u002F02\u002F21\u002Fboosting-performance-with-optimization-detective\u002F\" rel=\"nofollow ugc\">Boosting Performance with Optimization Detective\u003C\u002Fa>.\u003C\u002Fp>\n","Provides a framework for leveraging real user metrics to detect optimizations for improving page performance.",388332,3,[31,32,83],"rum","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Foptimization-detective","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Foptimization-detective.1.0.0-beta5.zip",{"slug":87,"name":88,"version":89,"author":5,"author_profile":6,"description":90,"short_description":91,"active_installs":66,"downloaded":92,"rating":9,"num_ratings":93,"last_updated":94,"tested_up_to":51,"requires_at_least":26,"requires_php":27,"tags":95,"homepage":99,"download_link":100,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"speculation-rules","Speculative Loading","1.6.0","\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.",411087,18,"2025-12-02T22:34:00.000Z",[96,32,97,98,87],"javascript","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",{"slug":102,"name":103,"version":104,"author":5,"author_profile":6,"description":105,"short_description":106,"active_installs":107,"downloaded":108,"rating":37,"num_ratings":37,"last_updated":94,"tested_up_to":51,"requires_at_least":109,"requires_php":27,"tags":110,"homepage":111,"download_link":112,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"auto-sizes","Enhanced Responsive Images","1.7.0","\u003Cp>This plugin implements enhancements for the responsive images functionality in WordPress. Currently, this includes:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Improvements to the accuracy of the \u003Ccode>sizes\u003C\u002Fcode> attribute by using layout information available in \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fdocumentation\u002Farticle\u002Fblock-themes\u002F\" rel=\"ugc\">block themes\u003C\u002Fa>. This enhancement is not available to classic themes.\u003C\u002Fli>\n\u003Cli>Implementation of the new HTML spec for adding \u003Ccode>sizes=\"auto\"\u003C\u002Fcode> to lazy-loaded images. This enhancement was \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2024\u002F10\u002F18\u002Fauto-sizes-for-lazy-loaded-images-in-wordpress-6-7\u002F\" rel=\"nofollow ugc\">merged\u003C\u002Fa> into WordPress 6.7.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>See also the complimentary \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimage-prioritizer\u002F\" rel=\"ugc\">Image Prioritizer\u003C\u002Fa> plugin which detects which images are outside the viewport, and then adds \u003Ccode>loading=lazy\u003C\u002Fcode> and \u003Ccode>sizes=auto\u003C\u002Fcode> to them.\u003C\u002Fp>\n\u003Cp>There are currently \u003Cstrong>no settings\u003C\u002Fstrong> and no user interface for this plugin since it is designed to work without any configuration.\u003C\u002Fp>\n","Improvements for responsive images in WordPress.",50000,320933,"6.8",[102,54,32],"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fauto-sizes","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fauto-sizes.1.7.0.zip",{"slug":114,"name":115,"version":77,"author":5,"author_profile":6,"description":116,"short_description":117,"active_installs":107,"downloaded":118,"rating":119,"num_ratings":69,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":120,"homepage":122,"download_link":123,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"embed-optimizer","Embed Optimizer","\u003Cp>This plugin’s purpose is to optimize the performance of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fdocumentation\u002Farticle\u002Fembeds\u002F\" rel=\"ugc\">embeds in WordPress\u003C\u002Fa>, such as Tweets, YouTube videos, TikToks, and others.\u003C\u002Fp>\n\u003Cp>The current optimizations include:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Lazy loading embeds just before they come into view.\u003C\u002Fli>\n\u003Cli>Adding dns-prefetch links for embeds in the initial viewport.\u003C\u002Fli>\n\u003Cli>Reserving space for embeds that resize to reduce layout shifting.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>Lazy loading embeds\u003C\u002Fstrong> improves performance because embeds are generally very resource-intensive, so lazy loading them ensures that they don’t compete with resources when the page is loading. Lazy loading of \u003Ccode>IFRAME\u003C\u002Fcode>-based embeds is handled simply by adding the \u003Ccode>loading=lazy\u003C\u002Fcode> attribute. Lazy loading embeds that include \u003Ccode>SCRIPT\u003C\u002Fcode> tags is handled by using an Intersection Observer to watch for when the embed’s \u003Ccode>FIGURE\u003C\u002Fcode> container is going to enter the viewport, and then it dynamically inserts the \u003Ccode>SCRIPT\u003C\u002Fcode> tag.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>This plugin also recommends that you install and activate the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Foptimization-detective\u002F\" rel=\"ugc\">Optimization Detective\u003C\u002Fa> plugin\u003C\u002Fstrong>, which unlocks several optimizations beyond just lazy loading. Without Optimization Detective, lazy loading can actually degrade performance \u003Cem>when an embed is positioned in the initial viewport\u003C\u002Fem>. This is because lazy loading such viewport-initial elements can degrade LCP since rendering is delayed by the logic to determine whether the element is visible. This is why WordPress Core tries its best to \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2021\u002F07\u002F15\u002Frefining-wordpress-cores-lazy-loading-implementation\u002F\" rel=\"nofollow ugc\">avoid\u003C\u002Fa> \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2021\u002F07\u002F15\u002Frefining-wordpress-cores-lazy-loading-implementation\u002F\" rel=\"nofollow ugc\">lazy loading\u003C\u002Fa> \u003Ccode>IMG\u003C\u002Fcode> tags which appear in the initial viewport, although the server-side heuristics aren’t perfect. This is where Optimization Detective comes in since it detects whether an embed appears in any breakpoint-specific viewports, like mobile, tablet, and desktop. (See also the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fimage-prioritizer\u002F\" rel=\"ugc\">Image Prioritizer\u003C\u002Fa> plugin which extends Optimization Detective to ensure lazy loading is correctly applied based on whether an IMG is in the initial viewport.)\u003C\u002Fp>\n\u003Cp>When Optimization Detective is active, it will start keeping track of which embeds appear in the initial viewport based on actual visits to your site. With this information in hand, Embed Optimizer will then avoid lazy loading embeds which appear in the initial viewport. Furthermore, for such above-the-fold embeds Embed Optimizer will also \u003Cstrong>add dns-prefetch links\u003C\u002Fstrong> for resources known to be used by those embeds. For example, if a YouTube embed appears in the initial viewport, Embed Optimizer with Optimization Detective will omit \u003Ccode>loading=lazy\u003C\u002Fcode> while also adding a \u003Ccode>dns-prefetch\u003C\u002Fcode> link for \u003Ccode>https:\u002F\u002Fi.ytimg.com\u003C\u002Fcode> which is the domain from which YouTube video poster images are served. Such links cause the initial-viewport embeds to load even faster.\u003C\u002Fp>\n\u003Cp>The other major feature in Embed Optimizer enabled by Optimization Detective is the \u003Cstrong>reduction of layout shifts\u003C\u002Fstrong> caused by embeds that resize when they load. This is seen commonly in WordPress post embeds or Tweet embeds. Embed Optimizer keeps track of the resized heights of these embeds. With these resized heights stored, Embed Optimizer sets the appropriate height on the container FIGURE element as the viewport-specific \u003Ccode>min-height\u003C\u002Fcode> so that when the embed loads it does not cause a layout shift.\u003C\u002Fp>\n\u003Cp>Since Optimization Detective relies on page visits to learn how the page is laid out, you’ll need to wait until you have visits from a mobile and desktop device to start seeing optimizations applied. Also, note that Optimization Detective does not apply optimizations by default for logged-in admin users.\u003C\u002Fp>\n\u003Cp>Please note that the optimizations are intended to apply to Embed blocks. So if you do not see optimizations applied, make sure that your embeds are not inside a Classic Block.\u003C\u002Fp>\n\u003Cp>Your site must have the \u003Cstrong>REST API accessible\u003C\u002Fstrong> to unauthenticated frontend visitors since this is how metrics are collected about how a page should be optimized. There are currently \u003Cstrong>no settings\u003C\u002Fstrong> and no user interface for this plugin since it is designed to work without any configuration.\u003C\u002Fp>\n","Optimizes the performance of embeds through lazy-loading, adding dns-prefetch links, and reserving space to reduce layout shifts.",360718,60,[121,75,32],"embeds","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fembed-optimizer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fembed-optimizer.1.0.0-beta5.zip",{"slug":125,"name":126,"version":127,"author":5,"author_profile":6,"description":128,"short_description":129,"active_installs":107,"downloaded":130,"rating":9,"num_ratings":36,"last_updated":50,"tested_up_to":51,"requires_at_least":26,"requires_php":27,"tags":131,"homepage":133,"download_link":134,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"image-prioritizer","Image Prioritizer","1.0.0-beta3","\u003Cp>This plugin optimizes the loading of images (and videos) with prioritization to improve \u003Ca href=\"https:\u002F\u002Fweb.dev\u002Farticles\u002Flcp\" rel=\"nofollow ugc\">Largest Contentful Paint\u003C\u002Fa> (LCP), lazy loading, and more accurate image size selection.\u003C\u002Fp>\n\u003Cp>The current optimizations include:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Add breakpoint-specific \u003Ccode>fetchpriority=high\u003C\u002Fcode> preload links (both as \u003Ccode>LINK[rel=preload]\u003C\u002Fcode> elements and \u003Ccode>Link\u003C\u002Fcode> response headers) for image URLs of LCP elements:\n\u003Col>\n\u003Cli>An \u003Ccode>IMG\u003C\u002Fcode> element, including the \u003Ccode>srcset\u003C\u002Fcode>\u002F\u003Ccode>sizes\u003C\u002Fcode> attributes supplied as \u003Ccode>imagesrcset\u003C\u002Fcode>\u002F\u003Ccode>imagesizes\u003C\u002Fcode> on the \u003Ccode>LINK\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>The first \u003Ccode>SOURCE\u003C\u002Fcode> element with a \u003Ccode>type\u003C\u002Fcode> attribute in a \u003Ccode>PICTURE\u003C\u002Fcode> element. (Art-directed \u003Ccode>PICTURE\u003C\u002Fcode> elements using media queries are not supported.)\u003C\u002Fli>\n\u003Cli>An element with a CSS \u003Ccode>background-image\u003C\u002Fcode> inline \u003Ccode>style\u003C\u002Fcode> attribute.\u003C\u002Fli>\n\u003Cli>An element with a CSS \u003Ccode>background-image\u003C\u002Fcode> applied with a stylesheet (when the image is from an allowed origin).\u003C\u002Fli>\n\u003Cli>A \u003Ccode>VIDEO\u003C\u002Fcode> element’s \u003Ccode>poster\u003C\u002Fcode> image.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>Ensure \u003Ccode>fetchpriority=high\u003C\u002Fcode> is only added to an \u003Ccode>IMG\u003C\u002Fcode> when it is the LCP element across all responsive breakpoints.\u003C\u002Fli>\n\u003Cli>Add \u003Ccode>fetchpriority=low\u003C\u002Fcode> to \u003Ccode>IMG\u003C\u002Fcode> tags which appear in the initial viewport but are not visible, such as when they are subsequent carousel slides.\u003C\u002Fli>\n\u003Cli>Lazy loading:\n\u003Col>\n\u003Cli>Apply lazy loading to \u003Ccode>IMG\u003C\u002Fcode> tags based on whether they appear in any breakpoint’s initial viewport.\u003C\u002Fli>\n\u003Cli>Implement lazy loading of CSS background images added via inline \u003Ccode>style\u003C\u002Fcode> attributes.\u003C\u002Fli>\n\u003Cli>Lazy-load \u003Ccode>VIDEO\u003C\u002Fcode> tags by setting the appropriate attributes based on whether they appear in the initial viewport. If a \u003Ccode>VIDEO\u003C\u002Fcode> is the LCP element, it gets \u003Ccode>preload=auto\u003C\u002Fcode>; if it is in an initial viewport, the \u003Ccode>preload=metadata\u003C\u002Fcode> default is left; if it is not in an initial viewport, it gets \u003Ccode>preload=none\u003C\u002Fcode>. Lazy-loaded videos also get initial \u003Ccode>preload\u003C\u002Fcode>, \u003Ccode>autoplay\u003C\u002Fcode>, and \u003Ccode>poster\u003C\u002Fcode> attributes restored when the \u003Ccode>VIDEO\u003C\u002Fcode> is going to enter the viewport.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>Responsive image sizes:\n\u003Col>\n\u003Cli>Ensure \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fcore\u002F2024\u002F10\u002F18\u002Fauto-sizes-for-lazy-loaded-images-in-wordpress-6-7\u002F\" rel=\"nofollow ugc\">\u003Ccode>sizes=auto\u003C\u002Fcode>\u003C\u002Fa> is set on \u003Ccode>IMG\u003C\u002Fcode> tags after setting correct lazy-loading (above).\u003C\u002Fli>\n\u003Cli>~~Compute the \u003Ccode>sizes\u003C\u002Fcode> attribute using the widths of an image collected from URL Metrics for each breakpoint (when not lazy-loaded since then handled by \u003Ccode>sizes=auto\u003C\u002Fcode>).~~ (This has been removed due to an \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Fissues\u002F2098\" rel=\"nofollow ugc\">issue\u003C\u002Fa>; use \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fauto-sizes\u002F\" rel=\"ugc\">Enhanced Responsive Images instead\u003C\u002Fa>.)\u003C\u002Fli>\n\u003C\u002Fol>\n\u003C\u002Fli>\n\u003Cli>Reduce the size of the \u003Ccode>poster\u003C\u002Fcode> image of a \u003Ccode>VIDEO\u003C\u002Fcode> from full size to the size appropriate for the maximum width of the video (on desktop).\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>\u003Cstrong>This plugin requires the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Foptimization-detective\u002F\" rel=\"ugc\">Optimization Detective\u003C\u002Fa> plugin as a dependency.\u003C\u002Fstrong> Please refer to that plugin for additional background on how this plugin works as well as additional developer options.\u003C\u002Fp>\n\u003Cp>👉 \u003Cstrong>Note:\u003C\u002Fstrong> This plugin optimizes pages for actual visitors, and it depends on visitors to optimize pages. As such, you won’t see optimizations applied immediately after activating the plugin. Please wait for URL Metrics to be gathered for both mobile and desktop visits. And since administrator users are not normal visitors typically, optimizations are not applied for admins by default.\u003C\u002Fp>\n\u003Cp>Your site must have the \u003Cstrong>REST API accessible\u003C\u002Fstrong> to unauthenticated frontend visitors since this is how metrics are collected about how a page should be optimized. There are currently \u003Cstrong>no settings\u003C\u002Fstrong> and no user interface for this plugin since it is designed to work without any configuration.\u003C\u002Fp>\n","Prioritizes the loading of images and videos based on how they appear to actual visitors: adds fetchpriority, preloads, lazy-loads, and sets sizes.",282998,[132,31,75,32],"image","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fimage-prioritizer","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimage-prioritizer.1.0.0-beta3.zip",{"slug":136,"name":137,"version":138,"author":5,"author_profile":6,"description":139,"short_description":140,"active_installs":141,"downloaded":142,"rating":119,"num_ratings":81,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":143,"homepage":147,"download_link":148,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"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.",20000,79655,[144,96,145,32,146],"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":150,"name":151,"version":152,"author":5,"author_profile":6,"description":153,"short_description":154,"active_installs":155,"downloaded":156,"rating":9,"num_ratings":49,"last_updated":24,"tested_up_to":25,"requires_at_least":26,"requires_php":27,"tags":157,"homepage":160,"download_link":161,"security_score":9,"vuln_count":37,"unpatched_count":37,"last_vuln_date":59,"fetched_at":39},"view-transitions","View Transitions","1.2.0","\u003Cp>This plugin implements support for \u003Ca href=\"https:\u002F\u002Fdeveloper.chrome.com\u002Fdocs\u002Fweb-platform\u002Fview-transitions\u002Fcross-document\" rel=\"nofollow ugc\">cross-document view transitions\u003C\u002Fa> in WordPress. This effectively replaces the hard transitions when navigating from one URL to the other with a smooth animation, by default using a fade effect.\u003C\u002Fp>\n\u003Ch4>Browser support\u003C\u002Fh4>\n\u003Cp>Cross-document view transitions are supported in a variety of browsers, including Chrome, Edge, and Safari. Users with browsers that currently do not support it should not see any adverse effects when the plugin is active. They will simply not benefit from the feature and continue to experience the traditional hard transitions between URLs.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fcaniuse.com\u002Fmdn-css_at-rules_view-transition\" rel=\"nofollow ugc\">Please refer to “Can I use…” for a comprehensive overview of browser support for the feature.\u003C\u002Fa>\u003C\u002Fp>\n","Adds smooth transitions between navigations to your WordPress site.",10000,58080,[158,32,159,150],"animations","smooth-transitions","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance\u002Ftree\u002Ftrunk\u002Fplugins\u002Fview-transitions","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fview-transitions.1.2.0.zip"]