{"id":261042,"date":"2025-12-09T15:17:28","date_gmt":"2025-12-09T15:17:28","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/wpo-manager\/"},"modified":"2025-12-22T01:26:18","modified_gmt":"2025-12-22T01:26:18","slug":"mustang-wpo","status":"publish","type":"plugin","link":"https:\/\/lmo.wordpress.org\/plugins\/mustang-wpo\/","author":15029106,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"1.0.2","stable_tag":"1.0.2","tested":"6.9.4","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"Mustang WPO","header_author":"Mustang WPO","header_description":"View and optimize your site's Web Performance.","assets_banners_color":"10143d","last_updated":"2025-12-22 01:26:18","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/mustangwpo.com\/","header_plugin_uri":"https:\/\/mustangwpo.com\/","header_author_uri":"https:\/\/mustangwpo.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":205,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"tyronbache","date":"2025-12-09 15:23:51"},"1.0.1":{"tag":"1.0.1","author":"tyronbache","date":"2025-12-12 01:00:46"},"1.0.2":{"tag":"1.0.2","author":"tyronbache","date":"2025-12-22 01:26:18"}},"upgrade_notice":{"1.0.2":"<p>New Dashboard widget for at-a-glance performance overview. Updated terminology to use WordPress standard &quot;Post Types&quot;. <strong>Requires a valid Google PageSpeed Insights API key to function.<\/strong><\/p>","1.0.1":"<p>This update improves reliability for Cloudflare-protected sites and fixes timeout issues. The batch size has been reduced to 1 post per batch for better stability. <strong>Requires a valid Google PageSpeed Insights API key to function.<\/strong><\/p>","1.0.0":"<p>Initial release of Mustang WPO. <strong>Requires a valid Google PageSpeed Insights API key to function.<\/strong> Install to start managing your website performance.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3415554,"resolution":"128x128","location":"assets","locale":""},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3415554,"resolution":"256x256","location":"assets","locale":""},"icon.svg":{"filename":"icon.svg","revision":3415554,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3415554,"resolution":"1544x500","location":"assets","locale":""},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3415554,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.0.1","1.0.2"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3424984,"resolution":"1","location":"assets","locale":""},"screenshot-10.png":{"filename":"screenshot-10.png","revision":3424984,"resolution":"10","location":"assets","locale":""},"screenshot-11.png":{"filename":"screenshot-11.png","revision":3424984,"resolution":"11","location":"assets","locale":""},"screenshot-12.png":{"filename":"screenshot-12.png","revision":3424984,"resolution":"12","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3424984,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3424984,"resolution":"3","location":"assets","locale":""},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3424984,"resolution":"4","location":"assets","locale":""},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3424984,"resolution":"5","location":"assets","locale":""},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3424984,"resolution":"6","location":"assets","locale":""},"screenshot-7.png":{"filename":"screenshot-7.png","revision":3424984,"resolution":"7","location":"assets","locale":""},"screenshot-8.png":{"filename":"screenshot-8.png","revision":3424984,"resolution":"8","location":"assets","locale":""},"screenshot-9.png":{"filename":"screenshot-9.png","revision":3424984,"resolution":"9","location":"assets","locale":""}},"screenshots":{"1":"Dashboard widget showing performance overview across mobile and desktop devices.","2":"Settings page to define your audit post types.","3":"Integrations page to add your Google PageSpeed Insights API Key (A valid key is required).","4":"Budgets page to set your performance budgets for each post type.","5":"Audit page before running an audit.","6":"Audit page running a global audit.","7":"Audit page after running an audit.","8":"Performance column with scores and tooltip for Pages post type after running an audit.","9":"Performance column tooltip for Pages that are not published yet.","10":"Document settings for a draft page.","11":"Document settings during a single audit.","12":"Document settings after running a single audit."},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[187,1513,247,794,21091],"plugin_category":[52,54],"plugin_contributors":[251982],"plugin_business_model":[],"class_list":["post-261042","plugin","type-plugin","status-publish","hentry","plugin_tags-optimization","plugin_tags-pagespeed","plugin_tags-performance","plugin_tags-speed","plugin_tags-wpo","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_contributors-tyronbache","plugin_committers-tyronbache"],"banners":{"banner":"https:\/\/ps.w.org\/mustang-wpo\/assets\/banner-772x250.png?rev=3415554","banner_2x":"https:\/\/ps.w.org\/mustang-wpo\/assets\/banner-1544x500.png?rev=3415554","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/mustang-wpo\/assets\/icon.svg?rev=3415554","icon":"https:\/\/ps.w.org\/mustang-wpo\/assets\/icon.svg?rev=3415554","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-1.png?rev=3424984","caption":"Dashboard widget showing performance overview across mobile and desktop devices."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-2.png?rev=3424984","caption":"Settings page to define your audit post types."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-3.png?rev=3424984","caption":"Integrations page to add your Google PageSpeed Insights API Key (A valid key is required)."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-4.png?rev=3424984","caption":"Budgets page to set your performance budgets for each post type."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-5.png?rev=3424984","caption":"Audit page before running an audit."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-6.png?rev=3424984","caption":"Audit page running a global audit."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-7.png?rev=3424984","caption":"Audit page after running an audit."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-8.png?rev=3424984","caption":"Performance column with scores and tooltip for Pages post type after running an audit."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-9.png?rev=3424984","caption":"Performance column tooltip for Pages that are not published yet."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-10.png?rev=3424984","caption":"Document settings for a draft page."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-11.png?rev=3424984","caption":"Document settings during a single audit."},{"src":"https:\/\/ps.w.org\/mustang-wpo\/assets\/screenshot-12.png?rev=3424984","caption":"Document settings after running a single audit."}],"raw_content":"<!--section=description-->\n<p>Mustang WPO (Web Performance Optimization) helps you audit, view, and manage your site's performance without leaving WordPress.<\/p>\n\n<p><strong>IMPORTANT: This plugin requires a valid Google Cloud API Key with the PageSpeed Insights API enabled to function. The plugin will not work without this API key.<\/strong><\/p>\n\n<h4>Key Features<\/h4>\n\n<ul>\n<li><strong>Dashboard Widget<\/strong> - At-a-glance performance overview on your WordPress dashboard showing Mobile and Desktop scores<\/li>\n<li><strong>PageSpeed Performance Scores in List Tables<\/strong> - View mobile and desktop PageSpeed Performance scores directly in your post\/page list tables<\/li>\n<li><strong>Block Editor Integration<\/strong> - Run PageSpeed audits and view results in the Gutenberg editor sidebar<\/li>\n<li><strong>Performance Budgets<\/strong> - Set performance budgets per post type<\/li>\n<li><strong>Global Audit<\/strong> - Audit all your content at once with batched processing<\/li>\n<\/ul>\n\n<h4>How It Works<\/h4>\n\n<ol>\n<li><strong>Install and Activate<\/strong> - Install the plugin and activate it<\/li>\n<li><strong>Configure API Key<\/strong> - Add your valid Google Cloud API Key with the PageSpeed Insights API enabled in Mustang WPO &gt; Integrations<\/li>\n<li><strong>Set Budgets<\/strong> - Configure performance budgets for different content types<\/li>\n<li><strong>Run Audits<\/strong> - Use the editor sidebar or global audit to measure performance<\/li>\n<li><strong>Monitor Results<\/strong> - View scores in list tables<\/li>\n<\/ol>\n\n<h4>Performance Budgets<\/h4>\n\n<p>Set performance budgets for each content type:\n* <strong>Max Load Time (LCP)<\/strong> - Largest Contentful Paint in seconds\n* <strong>Max CLS<\/strong> - Cumulative Layout Shift (unitless)\n* <strong>Max INP<\/strong> - Interaction to Next Paint in milliseconds\n* <strong>Max Page Weight<\/strong> - Total page size in MB<\/p>\n\n<h4>API Integration<\/h4>\n\n<p>Mustang WPO integrates with Google PageSpeed Insights API v5:\n* <strong>Required API Key<\/strong> - A valid Google PageSpeed Insights API key is mandatory\n* Supports both mobile and desktop strategies\n* Handles API quotas and rate limiting (240 requests\/minute)\n* Graceful error handling for network issues\n* Secure API key storage with encryption<\/p>\n\n<h3>Support<\/h3>\n\n<p>For support, feature requests, or bug reports, please visit the <a href=\"https:\/\/wordpress.org\/support\/plugin\/mustang-wpo\/\">WordPress.org support forums<\/a>.<\/p>\n\n<h3>Privacy Policy<\/h3>\n\n<p><strong>Data Collection and Usage:<\/strong><\/p>\n\n<p>Mustang WPO requires a Google API key to function. Here's what data is collected and how it's used:<\/p>\n\n<p><strong>Data Sent to Google:<\/strong>\n* URLs of your website pages (for performance analysis)\n* No personal data, user information, or content is transmitted\n* API requests include your website URL and strategy (mobile\/desktop)<\/p>\n\n<p><strong>Data Stored Locally:<\/strong>\n* PageSpeed audit results are stored in your WordPress database\n* Your API key is encrypted and stored securely in your database\n* No data is sent to third parties other than Google PageSpeed Insights API<\/p>\n\n<p><strong>Google's Privacy Policy:<\/strong>\nThis plugin uses Google PageSpeed Insights API. Google's collection and use of information is governed by <a href=\"https:\/\/policies.google.com\/privacy\">Google's Privacy Policy<\/a>.<\/p>\n\n<p><strong>API Key Security:<\/strong>\n* Your API key is encrypted using WordPress security salts\n* The full API key is never displayed in plain text\n* API key is stored in your WordPress database, not transmitted to external servers<\/p>\n\n<p><strong>Rate Limiting:<\/strong>\nThe plugin enforces a rate limit of 240 requests per minute to prevent abuse and comply with Google's API terms.<\/p>\n\n<!--section=installation-->\n<h4>Installing the plugin<\/h4>\n\n<ol>\n<li>In your WordPress admin panel, go to <em>Plugins &gt; Add Plugin<\/em>, search for <strong>Mustang WPO<\/strong> and click \"<em>Install now<\/em>\"<\/li>\n<li>Alternatively, download the plugin and upload the contents of <code>mustang-wpo.zip<\/code> to your plugins directory, which usually is <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin<\/li>\n<li><strong>Get API Key<\/strong> - If you don't have an API key, visit <a href=\"https:\/\/console.cloud.google.com\/\">Google Cloud Console<\/a> to create one<\/li>\n<li><strong>Configure API Key<\/strong> - Navigate to Mustang WPO &gt; Integrations and add your Google PageSpeed Insights API key<\/li>\n<li>Start managing the performance of your site!<\/li>\n<\/ol>\n\n<h4>API Key Setup Instructions<\/h4>\n\n<p><strong>Step 1: Get Your API Key<\/strong>\n1. Visit <a href=\"https:\/\/console.cloud.google.com\/\">Google Cloud Console<\/a>\n2. Create a new project or select an existing one\n3. Enable the PageSpeed Insights API\n4. Create credentials (API key)\n5. Restrict the API key to your domain for security (Recommended)<\/p>\n\n<p><strong>Step 2: Configure in WordPress<\/strong>\n1. Go to Mustang WPO &gt; Integrations in your WordPress admin\n2. Paste your API key in the \"Google PageSpeed Insights API Key\" field\n3. Click \"Save Changes\"\n4. The plugin will validate your API key<\/p>\n\n<p><strong>Important Notes:<\/strong>\n* The API key is required for the plugin to function\n* Your API key is encrypted and stored securely\n* API requests are rate-limited to 240 requests per minute<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id='do%20i%20need%20a%20google%20pagespeed%20insights%20api%20key%3F'><h3>Do I need a Google PageSpeed Insights API key?<\/h3><\/dt>\n<dd><p><strong>Yes, a valid Google PageSpeed Insights API key is required for the plugin to function.<\/strong> The plugin will not work without this API key. You can get a free API key from Google Cloud Console.<\/p><\/dd>\n<dt id='how%20do%20i%20get%20a%20google%20pagespeed%20insights%20api%20key%3F'><h3>How do I get a Google PageSpeed Insights API key?<\/h3><\/dt>\n<dd><ol>\n<li>Visit <a href=\"https:\/\/console.cloud.google.com\/\">Google Cloud Console<\/a><\/li>\n<li>Create a new project or select an existing one<\/li>\n<li>Enable the PageSpeed Insights API<\/li>\n<li>Create credentials (API key)<\/li>\n<li>Restrict the API key to your domain for security (recommended)<\/li>\n<\/ol><\/dd>\n<dt id='is%20my%20api%20key%20secure%3F'><h3>Is my API key secure?<\/h3><\/dt>\n<dd><p>Yes, your API key is encrypted using WordPress security salts and stored securely in your database.<\/p><\/dd>\n<dt id='what%20happens%20if%20i%20don%27t%20have%20an%20api%20key%3F'><h3>What happens if I don't have an API key?<\/h3><\/dt>\n<dd><p>The plugin will not function without a valid API key. You'll see warning notices on all pages directing you to configure the API key in Mustang WPO &gt; Integrations.<\/p><\/dd>\n<dt id='how%20often%20should%20i%20run%20audits%3F'><h3>How often should I run audits?<\/h3><\/dt>\n<dd><p>For most sites, running audits weekly or after major content changes is sufficient. The plugin includes rate limiting to prevent overwhelming the API.<\/p><\/dd>\n<dt id='what%20if%20i%20hit%20api%20quotas%3F'><h3>What if I hit API quotas?<\/h3><\/dt>\n<dd><p>The plugin handles quota exceeded errors gracefully and will show clear messages. Consider adding an API key or reducing audit frequency.<\/p><\/dd>\n<dt id='can%20i%20audit%20custom%20content%20types%3F'><h3>Can I audit custom content types?<\/h3><\/dt>\n<dd><p>No, the free version of the plugin only supports Pages and Posts.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.2<\/h4>\n\n<p>Release date: 2025-12-22<\/p>\n\n<p><strong>Enhancements<\/strong>\n* NEW: Dashboard widget - \"Mustang WPO Overview\" provides at-a-glance performance scores on your WordPress dashboard\n* Dashboard widget shows separate Mobile and Desktop performance breakdowns\n* Intelligent verdict system with clear recommendations (e.g., \"Mobile performance is holding back overall site performance\")\n* Directional hints when one device needs attention\n* Tooltips on performance bars showing score ranges and counts\n* Empty state messages with helpful CTAs for fresh installs<\/p>\n\n<p><strong>Other<\/strong>\n* Updated terminology from \"Content Types\" to \"Post Types\" per WordPress standards\n* Added device status classification system (Strong\/Mixed\/Weak)\n* Improved overall verdict logic covering all Mobile vs Desktop combinations<\/p>\n\n<h4>1.0.1<\/h4>\n\n<p>Release date: 2025-12-12<\/p>\n\n<p><strong>Enhancements<\/strong>\n* Added WordPress admin notices after audit completion (success\/warning\/error)\n* Improved progress tracking accuracy during global audits\n* Enhanced error messages for timeout and Cloudflare errors\n* Better retry logic with exponential backoff for gateway errors\n* Added PHP execution time limit warning on audit page<\/p>\n\n<p><strong>Bugfixes<\/strong>\n* Fixed 504\/524 Cloudflare timeout errors by reducing batch size\n* Fixed progress indicators not updating during audit processing\n* Fixed incomplete batch processing when timeouts occurred\n* Fixed \"Non-JSON response\" errors when Cloudflare timeout pages were returned<\/p>\n\n<p><strong>Other<\/strong>\n* Reduced batch size from 10 to 1 post per batch for better reliability\n* Removed configurable batch size setting (now hardcoded to 1 post)\n* Removed \"Processing batch X of Y\" progress text from top of page<\/p>\n\n<h4>1.0.0<\/h4>\n\n<p>Release date: 2025-12-09<\/p>\n\n<p><strong>Features<\/strong>\n* Initial release\n* PageSpeed Performance scores in post\/page list tables\n* Block editor sidebar integration\n* Performance budgets per content type\n* Global audit functionality\n* Rate limiting and error handling\n* Secure API key encryption and storage<\/p>","raw_excerpt":"Mustang WPO (Web Performance Optimization) helps you audit, view, and manage your site&#039;s performance without leaving WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/261042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=261042"}],"author":[{"embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/tyronbache"}],"wp:attachment":[{"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=261042"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=261042"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=261042"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=261042"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=261042"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/lmo.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=261042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}