[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fWgyAV9jmXN5L967Tf_d_oZ2hRkDzEL2_adtgcuGhoxQ":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":23,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28,"vulnerabilities":29,"developer":30,"crawl_stats":27,"alternatives":37,"analysis":124,"fingerprints":229},"optimization-detective","Optimization Detective","1.0.0-beta5","WordPress Performance Team","https:\u002F\u002Fprofiles.wordpress.org\u002Fperformanceteam\u002F","\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.",70000,374606,86,3,"2026-02-27T20:19:00.000Z","7.0","6.6","7.2",[20,21,22],"optimization","performance","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",100,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":25,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"performanceteam",10,700000,336,79,"2026-04-04T09:04:11.843Z",[38,62,82,98,111],{"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":17,"requires_php":52,"tags":53,"homepage":57,"download_link":58,"security_score":59,"vuln_count":60,"unpatched_count":26,"last_vuln_date":61,"fetched_at":28},"image-optimization","Image Optimizer – Optimize Images and Convert to WebP or AVIF","1.7.3","Elementor","https:\u002F\u002Fprofiles.wordpress.org\u002Felemntor\u002F","\u003Cp>\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\u002FFco5omeF50w?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>\u003C\u002Fp>\n\u003Cp>Image Optimizer is an easy-to-use WordPress plugin that reduces image size through various compression and resizing techniques – all of which preserve the highest possible image quality. Image Optimizer supports many popular formats, including  JPEG, PNG, WebP, AVIF, and GIF.\u003C\u002Fp>\n\u003Ch4>REDUCED FILE SIZES FOR BOOSTED PERFORMANCE\u003C\u002Fh4>\n\u003Cp>Image Optimizer ensures faster loading times, enhanced user experience, and overall boosted website performance by reducing the size of your website’s images, resulting in improved Core Web Vitals and search engine rankings. With the Image Optimizer’s exceptional capabilities and unique algorithms, you can fine tune images and reduce their file sizes while retaining quality with lossless or lossy compression.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>FEATURES\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Image formats supported\u003C\u002Fstrong> include JPEG, PNG, WebP, AVIF and GIF.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Works in the background\u003C\u002Fstrong>: The only plugin in the category that optimizes your images in the background, without you having to stay on the page during optimization.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Resize large images\u003C\u002Fstrong>: The user can set a maximum pixel width, after which images will automatically be resized. (default value set to 1920px)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>2 compression levels\u003C\u002Fstrong>:  Lossless – highest quality with minimal compression; Lossy – maximum compression with somewhat reduced quality.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Optimize on upload\u003C\u002Fstrong>: Automatically optimizes images when you upload them.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Bulk or individual optimization\u003C\u002Fstrong>: Flexible image optimization options, whether it’s on-demand scaling and compression, or bulk optimization for your entire image library.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>EXIF Metadata\u003C\u002Fstrong>: Select whether to clear image metadata to reduce size even further without impacting image quality.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Backup original images\u003C\u002Fstrong>: Ability to delete backups permanently to save space. (We recommend backing up your website beforehand.)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Restore original images\u003C\u002Fstrong> (all sizes) for selected media files if needed.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Convert to WebP and AVIF\u003C\u002Fstrong>: Get efficient and faster-loading formats with WebP  and AVIF for even better web performance.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Image thumbnails\u003C\u002Fstrong>: Resize all image sizes by default. Allow the user to choose specific image sizes based on WordPress-registered thumbnail sizes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>BULK OR SINGLE IMAGE OPTIMIZATION\u003C\u002Fh4>\n\u003Cp>Image Optimizer by Elementor lets you optimize all images in your library either one at a time, or in a batch according to your preferences and settings. Easily configure the plugin to scale or compress your images on-demand, or automatically have them triggered as they are being uploaded. Or, if you have a large number of images already uploaded, the bulk optimization feature allows you to resize and\u002For compress your entire library of existing images in just a few clicks.\u003C\u002Fp>\n\u003Ch4>2 COMPRESSION LEVELS\u003C\u002Fh4>\n\u003Cp>With Image Optimizer’s advanced algorithms, you can compress images and reduce their file size at the level that makes the most sense for you. We offer 2 types of compression where images will be processed, giving you the perfect balance of compression and quality.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Lossless Compression\u003C\u002Fstrong>: Lossless compression reduces image file sizes without sacrificing or diminishing the quality of your images. This type of compression reduces file sizes by removing unused or unnecessary data so that no image details are lost along the way.  Hence, you are able to reduce the file size and still maintain the quality of your image.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Lossy Compression\u003C\u002Fstrong>: Lossy compression performs maximum compression resulting in lightweight images and smaller file sizes. It reduces image size by removing image data that is generally invisible to the human eye and minimizes any compromise in image quality.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Convert to WebP and AVIF\u003C\u002Fstrong>: Convert images to the slimmer WebP or AVIF formats for even better optimization with a 25-30% savings over JPEG and PNG. Most browsers support WebP, however if they don’t, you can have fallback versions of the image available in the same format as the original image.\u003C\u002Fp>\n\u003Cp>By tailoring compression to the level you need, your visitors will enjoy faster load times, improved responsiveness, and a seamless browsing experience. Our approach also enables your website to rank higher in search results. Since a search engine’s ranking is heavily influenced by speed, user experience, and Core Web Vitals, Image Optimizer by Elementor is an invaluable tool for any website, especially one that’s abundant with images.\u003C\u002Fp>\n\u003Ch4>Get Started Today\u003C\u002Fh4>\n\u003Cp>For more information about Image Optimizer, visit our \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-description-tab-io-product-page\u002F\" rel=\"nofollow ugc\">official website\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-description-tab-io-free-trial\u002F\" rel=\"nofollow ugc\">Try It Now\u003C\u002Fa>.\u003Cbr \u002F>\nIf you have any questions or need support, feel free to \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-description-tab-io-contact-us\u002F\" rel=\"nofollow ugc\">contact us\u003C\u002Fa> or visit our \u003Ca href=\"https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-description-tab-io-help-center\u002F\" rel=\"nofollow ugc\">help center\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin requires a connection to an active Elementor account in order to identify the user and provide the user with the purchased service. This connection is triggered manually by the user via the plugin’s settings panel.\u003Cbr \u002F>\nThis plugin uses a 3rd party service operated by Elementor, which accepts a standard image in JPG, PNG, GIF or WEBP format and returns a web optimized image based on the selected settings. This flow is triggered by the user or automatically (based on the selected plugin settings) on compatible image upload or by manually initiating optimize process.\u003C\u002Fp>\n\u003Ch3>Related Plugins\u003C\u002Fh3>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsite-mailer\u002F\" rel=\"ugc\">Site Mailer\u003C\u002Fa>: Effortlessly manage transactional emails with Site Mailer. High deliverability, logs and statistics, and no SMTP plugins needed.\u003C\u002Fp>\n","Automatically resize, optimize, and convert images to WebP and AVIF. Compress images in bulk or on upload to boost your WordPress site performance.",1000000,13094645,32,72,"2026-02-17T13:59:00.000Z","6.9.4","7.4",[54,55,56,39,21],"convert-avif","convert-webp","image-compression","https:\u002F\u002Fgo.elementor.com\u002Fwp-repo-description-tab-io-product-page\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fimage-optimization.1.7.3.zip",99,1,"2026-02-20 00:00:00",{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":72,"num_ratings":73,"last_updated":74,"tested_up_to":75,"requires_at_least":76,"requires_php":52,"tags":77,"homepage":80,"download_link":81,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"amp","AMP","2.5.5","Weston Ruter","https:\u002F\u002Fprofiles.wordpress.org\u002Fwestonruter\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fguides\u002Fpage-experience\" rel=\"nofollow ugc\">Page Experience\u003C\u002Fa> (PX) is a set of ranking signals—including \u003Ca href=\"https:\u002F\u002Fweb.dev\u002Fvitals\u002F#core-web-vitals\" rel=\"nofollow ugc\">Core Web Vitals\u003C\u002Fa> (CWV)—measuring the user experience of interacting with a web page. AMP is a powerful tool which applies many optimizations and best practices automatically on your site, making it easier for you to achieve good page experience for your visitors. The official AMP Plugin, supported by the AMP team, makes it easy to bring the power of AMP to your WordPress site, seamlessly integrating with the normal publishing flow and allowing the use of existing themes and plugins.\u003C\u002Fp>\n\u003Cp>\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\u002Fs52JNMT59s8?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent&listType=playlist&list=PLXTOW_XMsIDRGRr5QDffrvND8Qh1RndFb\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>For more videos like this, check out the ongoing \u003Ca href=\"https:\u002F\u002Fwww.youtube.com\u002Fplaylist?list=PLXTOW_XMsIDRGRr5QDffrvND8Qh1RndFb\" rel=\"nofollow ugc\">AMP for WordPress video series\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>The plugin’s key features include:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Automate the process of generating AMP-valid markup as much as possible\u003C\u002Fstrong>, letting users follow the standard workflows they are used to in WordPress.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Provide effective validation tools\u003C\u002Fstrong> to help users deal with AMP incompatibilities when they happen, including mechanisms for \u003Cstrong>identifying\u003C\u002Fstrong>, \u003Cstrong>contextualizing\u003C\u002Fstrong>, and \u003Cstrong>resolving issues caused by validation errors\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Provide development support\u003C\u002Fstrong> to make it easier for WordPress developers to build AMP-compatible ecosystem components and build websites and solutions with AMP-compatibility built-in.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Support the serving of AMP pages\u003C\u002Fstrong> to make it easier for site owners to take advantage of mobile redirection, AMP-to-AMP linking, and generation of optimized AMP by default (via PHP port of AMP Optimizer).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Provide a turnkey solution\u003C\u002Fstrong> for segments of WordPress creators to be able to go from zero to publishing AMP pages in no time, regardless of technical expertise or availability of resources.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>The official AMP plugin for WordPress is a powerful tool that helps you build user-first WordPress sites, that is, sites that are fast, beautiful, secure, engaging, and accessible. A user-first site will deliver experiences that delight your users and therefore will increase user engagement and the success of your site. And, contrary to the popular belief of being only for mobile sites (it doesn’t stand for Accelerated \u003Cem>Mobile\u003C\u002Fem> Pages anymore!), AMP is a fully responsive web component framework, which means that you can provide AMP experiences for your users on both mobile and desktop devices.\u003C\u002Fp>\n\u003Ch4>AMP Plugin Audience: Everyone\u003C\u002Fh4>\n\u003Cp>This plugin can be used by both developers and non-developer users:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>If you are a developer or tech savvy user, you can take advantage of advanced developer tools provided by the AMP plugin to fix validation issues your site may have and reach full AMP compatibility.\u003C\u002Fli>\n\u003Cli>If you are not a developer or tech savvy user, or you just simply don’t want to deal with validation issues and tackling development tasks, the AMP plugin allows you to assemble fully AMP-compatible sites with different configurations taking advantage of AMP-compatible components. The plugin helps you to deal with validation issues by removing invalid AMP markup in cases where it is possible, or altogether suppressing AMP-incompatible plugins on AMP pages.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The bottom line is that regardless of your technical expertise, the AMP plugin can be useful to you.\u003C\u002Fp>\n\u003Ch4>Template Modes\u003C\u002Fh4>\n\u003Cp>The official AMP plugin enables site owners to serve AMP to their users in different ways, which are referred to as template modes: Standard, Transitional, and Reader. The differences between them are in terms of the number of themes used (one or two), and the number of versions of the site (non-AMP, AMP). Each template mode brings its own value proposition and serves the needs of different scenarios in the large and diverse WordPress ecosystem. And in all cases, the AMP plugin provides as much support as possible in terms of automating the generation of AMP pages, as well as keeping the option chosen AMP valid. In a nutshell, the available template modes are the following:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Standard Mode\u003C\u002Fstrong>: This template mode is the ideal, as there is only one theme for serving requests and a single version of your site: the AMP version. Besides enabling all of your site to be AMP-first, this has the added benefit of reducing development and maintenance costs. This mode is the best choice for sites where the theme and plugins used in the site are fully AMP-compatible. It's also a good option if some components are not AMP-compatible but the site owner has the resources or the know-how to fix them. See our \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002Fshowcases\u002F?template_mode=standard\" rel=\"nofollow ugc\">showcase\u003C\u002Fa> of sites using Standard mode.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Transitional Mode\u003C\u002Fstrong>: In this mode there is also a single theme used, but there can be two versions of each page: AMP and non-AMP. The active theme is used for serving the AMP and non-AMP versions of a given URL. This mode is a good choice if the site uses a theme that is not fully AMP compatible, but the functional differences between the AMP and non-AMP pages are acceptable (due to graceful degradation). In this case, users accessing the site from mobile devices can get the AMP version and get an optimized experience which also retains the look and feel of the non-AMP version. Check out our \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002Fshowcases\u002F?template_mode=transitional\" rel=\"nofollow ugc\">showcase\u003C\u002Fa> of sites using Transitional mode.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Reader Mode\u003C\u002Fstrong>: In this mode there are two different themes, one for AMP pages and another for non-AMP pages, and therefore there are also two versions of the site. This mode may be selected when the site is using an AMP-incompatible theme, but the level of incompatibilities is significant without graceful degradation. It’s also a good choice if you are not technically savvy (or simply do not want to deal with the incompatibilities) and therefore want simplified and robust workflows that allow you to take advantage of AMP with minimal effort.\u003C\u002Fp>\n\u003Cp>Different modes would be recommended in different scenarios, depending on the specifics of your site and your role. As you configure the plugin, it will suggest the mode that might be best for you based on its assessment of the theme and plugins used on your site. And, independently of the mode used, you have the option of serving all or only a portion of your site as AMP. This gives you all the flexibility you need to get started enabling AMP on your site progressively.\u003C\u002Fp>\n\u003Ch4>AMP Ecosystem\u003C\u002Fh4>\n\u003Cp>It is possible today to assemble great looking user-first sites powered by the AMP plugin by picking and choosing themes and plugins from a growing AMP-compatible ecosystem. In this context, the AMP plugin acts as an orchestrator of the overall AMP content creation and publishing process; it serves as a validator and enforcer making it easier to not only get to AMP experiences, but to maintain them with confidence.\u003C\u002Fp>\n\u003Cp>Many popular theme and plugin developers have taken efforts to support the official AMP plugin. If you are using a theme like Astra or Newspack, or if you are using plugins like Yoast or WP Forms — they will work out of the box! You can see the \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002Fecosystem\u002F\" rel=\"nofollow ugc\">growing list\u003C\u002Fa> of tested themes and plugins.\u003C\u002Fp>\n\u003Ch4>AMP Development\u003C\u002Fh4>\n\u003Cp>Although there is a growing ecosystem of AMP-compatible WordPress components, there is still a ways to go before majority AMP compatibility in the ecosystem. If you are a developer, or you have the resources to pursue development projects, you may want in some cases to develop custom plugin or theme to serve your specific needs. The official AMP plugin can be of great help to you by providing powerful and effective developer tools that shed light into the AMP development process as it is done in WordPress. This includes mechanisms for detailing the root causes of validation issues, the contextual space to understand them properly, and methods to deal with them during the process of achieving full AMP compatibility. Read more about \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002Fdocumentation\u002Fgetting-started\u002Fdeveloper-tools\u002F\" rel=\"nofollow ugc\">Developer Tools\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Getting Started\u003C\u002Fh4>\n\u003Cp>To learn more about the plugin and start leveraging its capabilities to power your AMP publishing workflow, check \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002F\" rel=\"nofollow ugc\">the official AMP plugin product site\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>If you are a developer, we encourage you to \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fampproject\u002Famp-wp\" rel=\"nofollow ugc\">follow along\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fampproject\u002Famp-wp\u002Fwiki\u002FContributing\" rel=\"nofollow ugc\">contribute\u003C\u002Fa> to the development of this plugin on GitHub.\u003C\u002Fp>\n\u003Cp>We have put up a comprehensive \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002Fdocumentation\u002Ffrequently-asked-questions\u002F\" rel=\"nofollow ugc\">FAQ page\u003C\u002Fa> and extensive documentation to help you start as smoothly as possible.\u003C\u002Fp>\n\u003Cp>But if you need some help, we are right here to support you in the plugin’s \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Famp\u002F\" rel=\"ugc\">support forum\u003C\u002Fa>, as well as through \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fampproject\u002Famp-wp\u002Fissues\" rel=\"nofollow ugc\">GitHub issues\u003C\u002Fa> (for technical bugs and feature requests). And our thriving \u003Ca href=\"https:\u002F\u002Famp-wp.org\u002Fecosystem\u002Famp-experts\u002F\" rel=\"nofollow ugc\">AMP Expert ecosystem\u003C\u002Fa> has indie freelancers to enterprise grade agencies in case you need commercial support!\u003C\u002Fp>\n","An easier path to great Page Experience for everyone. Powered by AMP.",400000,16312061,76,367,"2025-04-10T16:53:00.000Z","6.8.5","6.5",[63,78,20,79,21],"mobile","page-experience","https:\u002F\u002Famp-wp.org","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Famp.2.5.5.zip",{"slug":83,"name":84,"version":85,"author":7,"author_profile":8,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":13,"num_ratings":90,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":91,"homepage":95,"download_link":96,"security_score":25,"vuln_count":60,"unpatched_count":26,"last_vuln_date":97,"fetched_at":28},"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,3452248,50,[92,93,20,21,94],"diagnostics","measurement","site-health","https:\u002F\u002Fgithub.com\u002FWordPress\u002Fperformance","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fperformance-lab.4.1.0.zip","2023-05-18 00:00:00",{"slug":99,"name":100,"version":6,"author":7,"author_profile":8,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":105,"num_ratings":106,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":107,"homepage":109,"download_link":110,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"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.",60000,349166,60,2,[108,4,21],"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":112,"name":113,"version":114,"author":7,"author_profile":8,"description":115,"short_description":116,"active_installs":117,"downloaded":118,"rating":25,"num_ratings":60,"last_updated":119,"tested_up_to":51,"requires_at_least":17,"requires_php":18,"tags":120,"homepage":122,"download_link":123,"security_score":25,"vuln_count":26,"unpatched_count":26,"last_vuln_date":27,"fetched_at":28},"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.",50000,275800,"2026-01-09T00:12:00.000Z",[121,20,4,21],"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",{"attackSurface":125,"codeSignals":212,"taintFlows":221,"riskAssessment":222,"analyzedAt":228},{"hooks":126,"ajaxHandlers":205,"restRoutes":206,"shortcodes":207,"cronEvents":208,"entryPointCount":26,"unprotectedCount":26},[127,133,138,142,146,150,154,159,162,166,170,173,177,182,187,190,194,199,203],{"type":128,"name":129,"callback":130,"file":131,"line":132},"action","init","od_initialize_extensions","hooks.php",18,{"type":134,"name":135,"callback":136,"file":131,"line":137},"filter","template_include","od_buffer_output",19,{"type":128,"name":139,"callback":140,"file":131,"line":141},"wp","od_maybe_add_template_output_buffer_filter",22,{"type":128,"name":143,"callback":144,"file":131,"line":145},"wp_head","od_render_generator_meta_tag",23,{"type":134,"name":147,"callback":148,"file":131,"line":149},"site_status_tests","od_add_rest_api_availability_test",24,{"type":128,"name":151,"callback":152,"file":131,"line":153},"admin_init","od_maybe_run_rest_api_health_check",25,{"type":128,"name":155,"callback":156,"priority":157,"file":131,"line":158},"after_plugin_row_meta","od_render_rest_api_health_check_admin_notice_in_plugin_row",30,26,{"type":128,"name":155,"callback":160,"priority":157,"file":131,"line":161},"od_render_installed_extensions_admin_notice_in_plugin_row",27,{"type":134,"name":163,"callback":164,"priority":32,"file":131,"line":165},"plugin_row_meta","od_render_extensions_meta_link",28,{"type":128,"name":167,"callback":168,"file":131,"line":169},"rest_api_init","od_register_rest_url_metric_store_endpoint",29,{"type":134,"name":171,"callback":172,"priority":32,"file":131,"line":157},"rest_pre_dispatch","od_decompress_rest_request_body",{"type":128,"name":174,"callback":175,"file":131,"line":176},"od_trigger_page_cache_invalidation","od_trigger_post_update_actions",31,{"type":128,"name":129,"callback":178,"priority":179,"file":180,"line":181},"anonymous",9,"load.php",54,{"type":128,"name":183,"callback":184,"file":185,"line":186},"wp_print_footer_scripts","closure","optimization.php",87,{"type":134,"name":188,"callback":178,"file":185,"line":189},"od_template_output_buffer",107,{"type":128,"name":191,"callback":184,"file":192,"line":193},"admin_notices","site-health.php",313,{"type":134,"name":195,"callback":196,"file":197,"line":198},"user_has_cap","filter_user_has_cap","storage\\class-od-storage-lock.php",37,{"type":128,"name":129,"callback":200,"file":201,"line":202},"register_post_type","storage\\class-od-url-metrics-post-type.php",53,{"type":128,"name":151,"callback":204,"file":201,"line":181},"schedule_garbage_collection",[],[],[],[209],{"hook":174,"callback":174,"file":210,"line":211},"storage\\class-od-rest-url-metrics-store-endpoint.php",279,{"dangerousFunctions":213,"sqlUsage":214,"outputEscaping":216,"fileOperations":60,"externalRequests":60,"nonceChecks":26,"capabilityChecks":219,"bundledLibraries":220},[],{"prepared":106,"raw":26,"locations":215},[],{"escaped":217,"rawEcho":26,"locations":218},55,[],6,[],[],{"summary":223,"deductions":224},"The optimization-detective plugin, in its beta 5 release, exhibits a generally strong security posture based on the provided static analysis.  The absence of any known vulnerabilities in its history, combined with the implementation of prepared statements for all SQL queries and proper output escaping, are significant strengths. Furthermore, the plugin demonstrates good practice by incorporating capability checks for its operations.  However, a key concern arises from the complete lack of nonce checks. This could present a significant risk if any of the entry points, particularly the cron event, were to be exploited by an attacker to trigger actions without proper user authorization.",[225],{"reason":226,"points":227},"No nonce checks found",15,"2026-03-16T17:14:23.194Z",{"wat":230,"direct":261},{"assetPaths":231,"generatorPatterns":257,"scriptPaths":258,"versionParams":259},[232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255,256],"\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fbuild\u002Fweb-vitals.asset.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-data-validation-exception.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-element.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-html-tag-processor.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-link-collection.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-optimization-context.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-strict-url-metric.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-tag-visitor-context.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-tag-visitor-registry.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-template-optimization-context.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-url-metric.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-url-metric-group.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-url-metric-group-collection.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-url-metric-store-request-context.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-visited-tag-state.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-rest-url-metrics-store-endpoint.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-storage-lock.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fclass-od-url-metrics-post-type.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fdata.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fdeprecated.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fdetection.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fhelper.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fhooks.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Foptimization.php","\u002Fwp-content\u002Fplugins\u002Foptimization-detective\u002Fsite-health.php",[],[],[260],"optimization-detective-version=1.0.0-beta5",{"cssClasses":262,"htmlComments":263,"htmlAttributes":265,"restEndpoints":266,"jsGlobals":268,"shortcodeOutput":270},[],[264],"\u003C!-- Optimization Detective -->",[],[267],"\u002Fwp-json\u002Foptimization-detective\u002Fv1\u002Furl-metrics",[269],"optimization_detective_pending_plugin",[]]