Back to Blog

Why Sniply Links Break on 35% of Websites (And How to Fix It)

Sites block iframes with X-Frame-Options and CSP headers. That's why your Sniply CTA disappears on many pages. Here's the technical explanation and a fix.

Why Sniply links break on websites that block iframes

The iframe problem

You share a link with Sniply, expecting your CTA to appear on top of the page. Instead, the visitor sees a blank page, an error message, or the content loads without your CTA. Sound familiar?

This happens because Sniply uses iframes to display the target website. An iframe is basically a "window into another website" embedded in a page. The problem? Many websites explicitly block this.

Why websites block iframes

Website owners block iframe embedding for security reasons — specifically to prevent "clickjacking" attacks where a malicious site overlays invisible elements on top of a legitimate page to trick users into clicking something they didn't intend to.

They do this with two HTTP headers:

  • X-Frame-Options — set to "DENY" or "SAMEORIGIN" to prevent any external site from embedding the page in an iframe
  • Content-Security-Policy (frame-ancestors) — a more modern version that lets site owners specify exactly which domains can embed their content

When a site sends either of these headers, the browser refuses to load the page inside an iframe. Sniply's CTA overlay disappears because the content it was supposed to appear on top of never loads.

How many sites are affected?

Roughly 35% of all websites block iframe embedding. For the top 1,000 most visited sites, that number jumps to 67%. Google, Facebook, Twitter, LinkedIn, Amazon, Medium — all block iframes.

The good news: most blogs, news articles, and niche content sites don't block iframes. These are the links marketers share most often. But when you hit a site that does block, your CTA is simply gone — and neither you nor your audience sees any error.

Can you detect which sites will break?

Yes. It takes about 5 lines of code to check if a site allows iframe embedding:

const res = await fetch(url, { method: 'HEAD' });
const xfo = (res.headers.get('x-frame-options') || '').toLowerCase();
const csp = (res.headers.get('content-security-policy') || '').toLowerCase();
const blocked = xfo === 'deny' || xfo === 'sameorigin'
  || csp.includes('frame-ancestors');

If blocked is true, the site won't load in an iframe. Sniply, Replug, and most CTA overlay tools have no fallback for this — the link simply fails.

The snapshot solution

Instead of loading the page inside an iframe, you can capture a pixel-perfect snapshot of the page and serve that instead. The snapshot is a static HTML file that looks identical to the original page — but since it's hosted on your own server, no iframe is needed.

This is the approach Visib uses. The Chrome Extension captures a complete snapshot of the page (all CSS, images, and fonts preserved in a single file), uploads it, and serves it with your CTA overlay on top.

The result: your CTA works on 100% of websites, including those that block iframes. And since most shared articles rarely change after publication, a snapshot is functionally identical to the live page.

What about Sniply?

As of early 2026, Sniply still relies exclusively on iframes. They don't offer a snapshot fallback. If the site blocks iframes, your Sniply link breaks. There's no workaround within the platform.

Some users have reported this issue in G2 reviews: "Some sites block the tool, links just don't work." Sniply's response has generally been that they can't control how third-party sites handle embedding.

Summary

  • Sniply uses iframes to display content with CTA overlays
  • 35% of websites block iframes with X-Frame-Options or CSP headers
  • When a site blocks iframes, your Sniply CTA disappears silently
  • The fix is to use page snapshots instead of iframes
  • Visib uses snapshots via a Chrome Extension, giving 100% site coverage
Why Sniply Links Break on 35% of Websites (And How to Fix It)