Skip to content
atlookup

Page Contains too many Iframes

Every <iframe> is effectively a separate page-load inside your page — a full fetch cycle, separate JS/CSS parse, and its own render tree.

notice Impact: medium PERF_IFRAME_HEAVY 2 min read Updated

Why it matters

Every <iframe> is effectively a separate page-load inside your page — a full fetch cycle, separate JS/CSS parse, and its own render tree. Multiple iframes multiply both network cost and main-thread busy time. They also commonly drag in heavy third-party widgets (maps, videos, social embeds) that ship 100 KB+ of JS each.

Address when convenient — notices usually mark a polish opportunity rather than a defect. Estimated SEO impact: medium — measurable effect on click-through or relevance.

How to fix

  • Lazy-load iframes with loading="lazy" so below-the-fold ones defer
  • Replace embeds with native HTML where possible (video, tweet cards)
  • Consolidate multiple widgets from the same vendor into one iframe

Common causes

If the rule is firing across many pages, the root cause is almost always one of these:

  • Render-blocking third-party scripts (analytics, chat, ads) loaded synchronously in <head>.
  • Hero images served at full original size with no responsive variants.
  • CSS bundle ships every component for every route instead of route-splitting.
  • A single uncached API call dominates time-to-interactive.

Anti-patterns to avoid

Even with the best intentions, these "fixes" make the issue worse — recognise them so you don't ship them:

  • Synchronous third-party scripts in <head>.
  • Serving 4K hero images on mobile because the desktop version "looked fine".
  • Disabling caching headers because "we want fresh content".

How atlookup detects this

Our crawler renders each page with a real headless browser, then collects Core Web Vitals (LCP, CLS, INP), payload sizes, and third-party request counts via Lighthouse. Pages where the rule fires for page contains too many iframes are flagged on the report.

If you'd like to see this rule fire on your own site, run a free 60-second audit — every page is reported with the exact lines that triggered it.

Tools to verify the fix

Once you've applied the fix, double-check with these external validators:

Frequently asked questions

Why does Page Contains Too Many Iframes matter for SEO?

Every <iframe> is effectively a separate page-load inside your page — a full fetch cycle, separate JS/CSS parse, and its own render tree. Multiple iframes multiply both network cost and main-thread busy time. They also commonly drag in heavy third-party widgets (maps, videos, social embeds) that ship 100 KB+ of JS each.

How do I fix page contains too many iframes?

Lazy-load iframes with loading="lazy" so below-the-fold ones defer Replace embeds with native HTML where possible (video, tweet cards) Consolidate multiple widgets from the same vendor into one iframe

Is this a critical SEO issue?

Address when convenient — notices usually mark a polish opportunity rather than a defect. Estimated SEO impact: medium — measurable effect on click-through or relevance.

How does atlookup detect page contains too many iframes?

Our crawler renders each page with a real headless browser, then collects Core Web Vitals (LCP, CLS, INP), payload sizes, and third-party request counts via Lighthouse. Pages where the rule fires for page contains too many iframes are flagged on the report.

How long does it take to fix?

5–15 minutes per page. Most teams batch similar issues across templates so the per-page time goes down at scale.