How to fix x frame options weak on WooCommerce
Replace the weak X-Frame-Options header value with DENY or SAMEORIGIN to prevent clickjacking attacks on your store.
Steps for WooCommerce
- Log in to your WordPress admin. Go to Plugins → Add New and search for 'Headers Security Advanced & HSTS WP' or 'HTTP Headers' (by BestWebSoft) — both allow setting custom HTTP headers without server access.
- Alternatively, if you have access to your web server config: for Apache, open your .htaccess file (in the WordPress root) and add: Header always set X-Frame-Options "DENY" and Header always set Content-Security-Policy "frame-ancestors 'none';"
- For Nginx servers, open your nginx.conf or the site's server block and add inside the server{} block: add_header X-Frame-Options "DENY" always; and add_header Content-Security-Policy "frame-ancestors 'none';" always;
- If using a managed WordPress host (WP Engine, Kinsta, SiteGround), check their dashboard for a 'Security Headers' or 'HTTP Headers' panel — most managed hosts provide a UI for this.
- Install a caching plugin like WP Rocket or W3 Total Cache only after setting headers to ensure cached responses also include the updated headers.
- Verify with DevTools → Network → Response Headers on your site's homepage and checkout page.
What is x frame options weak?
The `X-Frame-Options` HTTP response header tells browsers whether your website is allowed to be loaded inside an `<iframe>`, `<frame>`, or `<object>` on another site. There are two safe values: `DENY` (no framing allowed anywhere) and `SAMEORIGIN` (only your own site can frame your pages). A third value, `ALLOW-FROM`, was once supported to whitelist a specific external domain — but it is now obsolete, ignored by most modern browsers, and therefore provides no real protection. When this header is missing, set to an unsupported value like `ALLOW-FROM`, or combined with `SAMEORIGIN` in a way that browsers parse inconsistently, your pages are effectively unprotected against framing by attackers.
Without a properly enforced `X-Frame-Options` header, attackers can silently embed your store's checkout, login, or account pages inside invisible iframes on malicious websites — a technique called clickjacking. A shopper thinks they're clicking a button on the attacker's page, but they're actually clicking your hidden iframe: entering payment details, changing account settings, or completing unwanted purchases. This is a real theft and fraud vector that can lead to chargebacks, customer complaints, regulatory scrutiny under PCI-DSS, and loss of consumer trust. Search engines like Google also consider security posture signals when evaluating site quality; a site known to be compromised through clickjacking can suffer ranking and reputation damage. Fixing this header takes under 30 minutes and closes the vulnerability entirely for all modern browsers.
See the complete X frame options weak guide for every platform and the full background.
Not sure if your WooCommerce store has this?
Run a free SEOLZ scan — we’ll find x frame options weak and every other issue across your whole site.
Scan my site free