{
  "format": "powered-cache-compatibility-rules",
  "format_version": "1.0",
  "rules": {
    "defer_exclusions": [],
    "delay_exclusions": [
      "wp-includes/js/dist/interactivity.min.js",
      "wp-includes/blocks/image/view.min.js",
      "www.google.com/recaptcha",
      "www.gstatic.com/recaptcha",
      "grecaptcha",
      "challenges.cloudflare.com/turnstile",
      "cf-turnstile",
      "hcaptcha.com/1/api.js",
      "hcaptcha",
      "js.stripe.com",
      "paypal.com/sdk/js",
      "pay.google.com/gp/p/js/pay",
      "x.klarnacdn.net/kp/lib",
      "static-eu.payments-amazon.com/checkout",
      "accounts.google.com/gsi/client",
      "appleid.cdn-apple.com",
      "maps.googleapis.com/maps/api/js",
      "maps.google.com/maps-api-v3"
    ],
    "file_optimizer_css_exclusions": [],
    "file_optimizer_js_exclusions": [],
    "lazy_load_exclusions": [
      "selectors.core.image.lightboxObjectFit",
      "data-no-lazy",
      "skip-lazy",
      "no-lazy",
      "woocommerce-product-gallery__image"
    ]
  },
  "settings_issues": [
    {
      "key": "js_delay",
      "severity": "info",
      "code": "compatibility_rule_applied",
      "message": "Powered Cache automatically keeps WordPress core interactivity scripts out of delayed JavaScript execution.",
      "when": {
        "setting": "js_delay",
        "value": true
      }
    }
  ],
  "conditional_rules": {
    "environments": {
      "cdn:cloudflare": {
        "delay_exclusions": [
          "cdn-cgi/challenge-platform",
          "/cdn-cgi/challenge-platform/",
          "cf-chl-widget"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "cloudflare_challenge_delay_guard",
            "message": "Cloudflare challenge scripts are protected from delayed JavaScript when Cloudflare is detected.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "server:nginx": {
        "settings_issues": [
          {
            "key": "auto_configure_htaccess",
            "severity": "warning",
            "code": "nginx_htaccess_noop",
            "message": "Nginx does not read .htaccess files. Keep this off unless Apache-compatible rewrite handling is also available.",
            "when": {
              "setting": "auto_configure_htaccess",
              "value": true
            }
          }
        ]
      },
      "host:kinsta": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "info",
            "code": "kinsta_cache_detected",
            "message": "Kinsta hosting cache is detected. Keep the host cache purge flow in mind when testing page cache changes.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "host:wp-engine": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "info",
            "code": "wp_engine_cache_detected",
            "message": "WP Engine page cache is detected. Purge the host cache when testing Powered Cache page cache behavior.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "host:pantheon": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "info",
            "code": "pantheon_cache_detected",
            "message": "Pantheon edge cache is detected. Purge the platform cache when testing Powered Cache page cache behavior.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      }
    },
    "plugins": {
      "woocommerce/woocommerce.php": {
        "delay_exclusions": [
          "woocommerce/assets/js/frontend/cart-fragments",
          "woocommerce/assets/js/frontend/checkout",
          "woocommerce/assets/js/frontend/add-to-cart",
          "woocommerce/assets/js/frontend/add-to-cart-variation",
          "woocommerce/assets/js/frontend/cart",
          "woocommerce/assets/js/frontend/country-select",
          "woocommerce/assets/js/frontend/address-i18n",
          "woocommerce/assets/js/frontend/password-strength-meter",
          "woocommerce/assets/js/frontend/single-product",
          "wc-cart-fragments",
          "wc-checkout",
          "wc-add-to-cart",
          "wc-cart",
          "wc-country-select",
          "wc-address-i18n",
          "wc-password-strength-meter",
          "wc-single-product"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "woocommerce_delay_guard",
            "message": "WooCommerce cart, checkout, and add-to-cart scripts are protected from delayed JavaScript when WooCommerce is active.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "garanti-payment-gateway-for-woocommerce/garantibbva.php": {
        "delay_exclusions": [
          "garantibbva",
          "garanti-payment",
          "payment_method_garantibbva"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "payment_delay_guard",
            "message": "Payment gateway scripts are protected from delayed JavaScript so checkout remains responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "shopinext-for-woocommerce/shopinext-payment.php": {
        "delay_exclusions": [
          "shopinext",
          "payment_method_shopinext"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "payment_delay_guard",
            "message": "Payment gateway scripts are protected from delayed JavaScript so checkout remains responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "woocommerce-eu-vat-compliance-premium/eu-vat-compliance-premium.php": {
        "delay_exclusions": [
          "woocommerce-eu-vat",
          "woocommerce_eu_vat",
          "vat-number"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "woocommerce_vat_delay_guard",
            "message": "WooCommerce VAT validation scripts are protected from delayed JavaScript so checkout fields remain accurate.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "elementor/elementor.php": {
        "delay_exclusions": [
          "elementor/assets/js/frontend",
          "elementorFrontend"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "elementor_delay_guard",
            "message": "Elementor frontend scripts are protected from delayed JavaScript to keep widgets responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "elementor-pro/elementor-pro.php": {
        "delay_exclusions": [
          "elementor-pro/assets/js/frontend"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "elementor_pro_delay_guard",
            "message": "Elementor Pro frontend scripts are protected from delayed JavaScript when Elementor Pro is active.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "shortpixel-adaptive-images/short-pixel-ai.php": {
        "delay_exclusions": [
          "spai_js"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "shortpixel_ai_delay_guard",
            "message": "ShortPixel Adaptive Images is protected from delayed JavaScript when both optimizers are active.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "cloudflare/cloudflare.php": {
        "delay_exclusions": [
          "cdn-cgi/challenge-platform",
          "/cdn-cgi/challenge-platform/",
          "cf-chl-widget",
          "challenges.cloudflare.com/turnstile"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "cloudflare_challenge_delay_guard",
            "message": "Cloudflare challenge scripts are protected from delayed JavaScript when Cloudflare is active.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "contact-form-7/wp-contact-form-7.php": {
        "delay_exclusions": [
          "contact-form-7/includes/js",
          "wpcf7",
          "recaptcha"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "contact_form_delay_guard",
            "message": "Contact form scripts are protected from delayed JavaScript so validation and anti-spam checks stay responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "gravityforms/gravityforms.php": {
        "delay_exclusions": [
          "gravityforms/js",
          "gform",
          "gform_"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "gravity_forms_delay_guard",
            "message": "Gravity Forms scripts are protected from delayed JavaScript so forms remain interactive on first load.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "forminator/forminator.php": {
        "delay_exclusions": [
          "forminator/assets/js",
          "forminatorFront",
          "forminator"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "forminator_delay_guard",
            "message": "Forminator scripts are protected from delayed JavaScript so form validation remains responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "fluentform/fluentform.php": {
        "delay_exclusions": [
          "fluentform",
          "fluent-form",
          "ff-el"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "fluentform_delay_guard",
            "message": "Fluent Forms scripts are protected from delayed JavaScript so form validation remains responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "ninja-forms/ninja-forms.php": {
        "delay_exclusions": [
          "ninja-forms",
          "nf-front-end",
          "nfForm"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "ninja_forms_delay_guard",
            "message": "Ninja Forms scripts are protected from delayed JavaScript so form validation remains responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "jetformbuilder/jet-form-builder.php": {
        "delay_exclusions": [
          "jet-form-builder",
          "jetFormBuilder",
          "jfb-"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "jetformbuilder_delay_guard",
            "message": "JetFormBuilder scripts are protected from delayed JavaScript so form validation remains responsive.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "wpforms-lite/wpforms.php": {
        "delay_exclusions": [
          "wpforms/assets/js",
          "wpforms_settings",
          "wpforms"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "wpforms_delay_guard",
            "message": "WPForms scripts are protected from delayed JavaScript so forms remain interactive on first load.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "wpforms/wpforms.php": {
        "delay_exclusions": [
          "wpforms/assets/js",
          "wpforms_settings",
          "wpforms"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "wpforms_delay_guard",
            "message": "WPForms scripts are protected from delayed JavaScript so forms remain interactive on first load.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "complianz-gdpr/complianz-gdpr.php": {
        "delay_exclusions": [
          "complianz",
          "cmplz-",
          "cookieblocker"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "consent_delay_guard",
            "message": "Consent scripts are protected from delayed JavaScript so consent controls are available immediately.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "cookiebot/cookiebot.php": {
        "delay_exclusions": [
          "cookiebot",
          "uc.js",
          "Cookiebot"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "consent_delay_guard",
            "message": "Consent scripts are protected from delayed JavaScript so consent controls are available immediately.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "cookie-notice/cookie-notice.php": {
        "delay_exclusions": [
          "cookie-notice",
          "cn-",
          "cookieNotice"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "consent_delay_guard",
            "message": "Consent scripts are protected from delayed JavaScript so consent controls are available immediately.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "eu-cookie-law/eu-cookie-law.php": {
        "delay_exclusions": [
          "eu-cookie-law",
          "pea_cook_wrapper"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "consent_delay_guard",
            "message": "Consent scripts are protected from delayed JavaScript so consent controls are available immediately.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "gdpr/gdpr.php": {
        "delay_exclusions": [
          "gdpr",
          "gdpr-cookie"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "consent_delay_guard",
            "message": "Consent scripts are protected from delayed JavaScript so consent controls are available immediately.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "consent-magic-pro/consent-magic-pro.php": {
        "delay_exclusions": [
          "consent-magic",
          "cs_preview"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "consent_delay_guard",
            "message": "Consent scripts are protected from delayed JavaScript so consent controls are available immediately.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "revslider/revslider.php": {
        "delay_exclusions": [
          "revslider",
          "revapi",
          "rs6"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "slider_delay_guard",
            "message": "Slider scripts are protected from delayed JavaScript to keep hero sliders visible without extra interaction.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "smart-slider-3/smart-slider-3.php": {
        "delay_exclusions": [
          "smart-slider-3",
          "n2-ss-",
          "Nextend"
        ],
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "info",
            "code": "slider_delay_guard",
            "message": "Slider scripts are protected from delayed JavaScript to keep hero sliders visible without extra interaction.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          }
        ]
      },
      "autoptimize/autoptimize.php": {
        "settings_issues": [
          {
            "key": "minify_html",
            "severity": "warning",
            "code": "autoptimize_html_active",
            "message": "Autoptimize HTML optimization is active. Powered Cache HTML minification may be ignored until Autoptimize HTML optimization is disabled.",
            "when": {
              "setting": "minify_html",
              "value": true,
              "options": [
                {
                  "name": "autoptimize_html",
                  "value": "on"
                }
              ]
            }
          },
          {
            "key": "minify_css",
            "severity": "warning",
            "code": "autoptimize_css_active",
            "message": "Autoptimize CSS optimization is active. Powered Cache CSS minification may be ignored until Autoptimize CSS optimization is disabled.",
            "when": {
              "setting": "minify_css",
              "value": true,
              "options": [
                {
                  "name": "autoptimize_css",
                  "value": "on"
                }
              ]
            }
          },
          {
            "key": "combine_css",
            "severity": "warning",
            "code": "autoptimize_css_active",
            "message": "Autoptimize CSS optimization is active. Powered Cache CSS combining may be ignored until Autoptimize CSS optimization is disabled.",
            "when": {
              "setting": "combine_css",
              "value": true,
              "options": [
                {
                  "name": "autoptimize_css",
                  "value": "on"
                }
              ]
            }
          },
          {
            "key": "minify_js",
            "severity": "warning",
            "code": "autoptimize_js_active",
            "message": "Autoptimize JavaScript optimization is active. Powered Cache JavaScript minification may be ignored until Autoptimize JavaScript optimization is disabled.",
            "when": {
              "setting": "minify_js",
              "value": true,
              "options": [
                {
                  "name": "autoptimize_js",
                  "value": "on"
                }
              ]
            }
          },
          {
            "key": "combine_js",
            "severity": "warning",
            "code": "autoptimize_js_active",
            "message": "Autoptimize JavaScript optimization is active. Powered Cache JavaScript combining may be ignored until Autoptimize JavaScript optimization is disabled.",
            "when": {
              "setting": "combine_js",
              "value": true,
              "options": [
                {
                  "name": "autoptimize_js",
                  "value": "on"
                }
              ]
            }
          }
        ]
      },
      "perfmatters/perfmatters.php": {
        "settings_issues": [
          {
            "key": "js_delay",
            "severity": "warning",
            "code": "perfmatters_js_delay_overlap",
            "message": "Perfmatters is active. Keep JavaScript delay in one plugin unless the front end has been tested.",
            "when": {
              "setting": "js_delay",
              "value": true
            }
          },
          {
            "key": "enable_lazy_load",
            "severity": "warning",
            "code": "perfmatters_lazy_load_overlap",
            "message": "Perfmatters is active. Keep lazy loading in one plugin unless above-the-fold media has been tested.",
            "when": {
              "setting": "enable_lazy_load",
              "value": true
            }
          },
          {
            "key": "remove_unused_css",
            "severity": "warning",
            "code": "perfmatters_unused_css_overlap",
            "message": "Perfmatters is active. Keep unused CSS generation in one plugin so safelists and cache files stay predictable.",
            "when": {
              "setting": "remove_unused_css",
              "value": true
            }
          }
        ]
      },
      "a3-lazy-load/a3-lazy-load.php": {
        "settings_issues": [
          {
            "key": "enable_lazy_load",
            "severity": "warning",
            "code": "external_lazy_load_plugin_active",
            "message": "A3 Lazy Load is active. Avoid running two lazy-load layers unless you have tested the front end.",
            "when": {
              "setting": "enable_lazy_load",
              "value": true
            }
          }
        ]
      },
      "jetpack-boost/jetpack-boost.php": {
        "settings_issues": [
          {
            "key": "enable_lazy_load",
            "severity": "warning",
            "code": "external_lazy_load_plugin_active",
            "message": "Jetpack Boost is active. Avoid running two lazy-load layers unless you have tested the front end.",
            "when": {
              "setting": "enable_lazy_load",
              "value": true
            }
          }
        ]
      },
      "lazy-load/lazy-load.php": {
        "settings_issues": [
          {
            "key": "enable_lazy_load",
            "severity": "warning",
            "code": "external_lazy_load_plugin_active",
            "message": "Another lazy-load plugin is active. Avoid running two lazy-load layers unless you have tested the front end.",
            "when": {
              "setting": "enable_lazy_load",
              "value": true
            }
          }
        ]
      },
      "bj-lazy-load/bj-lazy-load.php": {
        "settings_issues": [
          {
            "key": "enable_lazy_load",
            "severity": "warning",
            "code": "external_lazy_load_plugin_active",
            "message": "BJ Lazy Load is active. Avoid running two lazy-load layers unless you have tested the front end.",
            "when": {
              "setting": "enable_lazy_load",
              "value": true
            }
          }
        ]
      },
      "litespeed-cache/litespeed-cache.php": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "warning",
            "code": "external_page_cache_plugin_active",
            "message": "LiteSpeed Cache is active. Avoid running two full-page cache layers unless one of them is intentionally disabled.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "w3-total-cache/w3-total-cache.php": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "warning",
            "code": "external_page_cache_plugin_active",
            "message": "W3 Total Cache is active. Avoid running two full-page cache layers unless one of them is intentionally disabled.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "wp-super-cache/wp-cache.php": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "warning",
            "code": "external_page_cache_plugin_active",
            "message": "WP Super Cache is active. Avoid running two full-page cache layers unless one of them is intentionally disabled.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "wp-fastest-cache/wpFastestCache.php": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "warning",
            "code": "external_page_cache_plugin_active",
            "message": "WP Fastest Cache is active. Avoid running two full-page cache layers unless one of them is intentionally disabled.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "sg-cachepress/sg-cachepress.php": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "warning",
            "code": "external_page_cache_plugin_active",
            "message": "SiteGround Optimizer cache is active. Avoid running two full-page cache layers unless one of them is intentionally disabled.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      },
      "breeze/breeze.php": {
        "settings_issues": [
          {
            "key": "enable_page_cache",
            "severity": "warning",
            "code": "external_page_cache_plugin_active",
            "message": "Breeze cache is active. Avoid running two full-page cache layers unless one of them is intentionally disabled.",
            "when": {
              "setting": "enable_page_cache",
              "value": true
            }
          }
        ]
      }
    }
  }
}
