How to fix missing x frame options on Shopify

Add the X-Frame-Options HTTP response header set to DENY or SAMEORIGIN to prevent your store's pages from being embedded in iframes on other sites.

Steps for Shopify

  1. Shopify's core storefront automatically sends X-Frame-Options: DENY on all theme pages — if the scanner flagged this on a standard Shopify storefront, it may relate to a custom app proxy, external landing page, or headless front end, not the Shopify-hosted store itself.
  2. For custom Shopify apps or app proxies: in your app's server code (Node/Ruby/PHP), add the header in your HTTP response middleware. Example for Express.js: app.use((req, res, next) => { res.setHeader('X-Frame-Options', 'SAMEORIGIN'); next(); });
  3. If you use a Shopify Hydrogen (headless) storefront, add the header in your Remix/Next.js server config or via your hosting provider (Vercel, Oxygen) — see the Headless / Custom entry below.
  4. For pages hosted outside Shopify (e.g., a custom checkout page), apply the header at the web server or CDN level as described in the Headless / Custom steps.
Official Shopify documentation ↗

What is missing x frame options?

The X-Frame-Options header is a security instruction your web server sends to browsers telling them whether your pages are allowed to be loaded inside an iframe (an invisible "frame" embedded in another website). When this header is missing, any website in the world can silently embed your store inside their page. The two safe values are DENY (no framing at all) and SAMEORIGIN (only your own domain can frame your pages). Most stores should use SAMEORIGIN unless you have no legitimate need to embed your own pages in iframes, in which case DENY is even stronger.

Without X-Frame-Options, attackers can use a technique called "clickjacking" — they overlay your store's checkout or login page inside an invisible iframe on a malicious site, tricking shoppers into clicking buttons they can't see. This can lead to unauthorized purchases, stolen account credentials, or fraudulent transactions, directly costing you revenue and eroding customer trust. Search engines and security scanners flag this missing header as a vulnerability under OWASP A05:2021 (Security Misconfiguration), which can affect your site's security rating and enterprise buyer trust. Many payment card industry (PCI DSS) compliance checklists also require it, so missing it can jeopardize your ability to process card payments.

See the complete Missing x frame options guide for every platform and the full background.

Not sure if your Shopify store has this?

Run a free SEOLZ scan — we’ll find missing x frame options and every other issue across your whole site.

Scan my site free

Fix missing x frame options on another platform