Iframe SEO
I rarely use iframes for main content because search engines attribute the embedded page, not yours, so you cannot rank for that content.
Start here
- Audit your existing iframes using DevTools and decide if each embed is supplemental or primary.
- Add a descriptive title attribute to every iframe for accessibility and search context.
- Ensure the parent page contains unique text that explains the embedded content.
- Lazy-load iframes below the fold to preserve Core Web Vitals.
- Avoid using iframes for main page content you want indexed or ranked.
Plain-English take
Think of an iframe like a TV in your living room. The TV shows a different channel, but Google credits the channel, not your room. So if you want to rank for 'best hiking boots', don't put that text inside an iframe – put it in your HTML. I see many sites embed product descriptions, reviews, or key content in iframes, often via a feed or third-party widget. That content rarely passes SEO value to your page. Google can crawl and index iframe content, but it attributes that content to the embedded source, not the parent page. The only way an iframe helps your rankings is if the surrounding page provides enough unique context and the embedded content is supplemental. A common mistake: thinking iframes are invisible. They're not – but the indexing is unreliable. The embedded page's [canonical tag](/canonical-tag/) determines which URL gets credit, and it is rarely yours. I always treat iframes as a performance and indexing risk. My rule: if the content matters for rankings, keep it in your own HTML. If it's a map, video, or social embed, an iframe is fine as long as you also write surrounding text that covers the topic. If you rely on an iframe for your primary content, you are gambling with your rankings.
When it actually matters
Maps & locations: Embedding a Google Map on a contact page is fine – the map is supplemental, and you've already written your address in text. But if you rely on the map for location data, write it out too. Video tutorials: A YouTube iframe on a recipe page works because the recipe steps are in your HTML. The video is extra. Warning: if the video is the main tutorial and you have no text transcript, search engines see little content on your page. Social proof: Embedding a tweet or Instagram post is common, but those embeds often load scripts and can slow your page. Lazy-load any iframe that appears below the fold. Ads: Ad iframes are typical but can contain malware or slow render. Use a sandbox attribute and limit them. Performance: iframes block rendering if not handled properly. I always set loading="lazy" on non-critical iframes. Decision: Only use iframes for content that enhances, not defines, your page. I once audited a site with 12 iframes on one page – 8 were below the fold and not seen by users. Lazy-loading them cut initial load time by 40%. If you are embedding a third-party widget that updates dynamically, consider if a [JavaScript SEO](/javascript-seo/) audit is needed to ensure content is crawlable. Similarly, iframes can be a [technical SEO](/technical-seo/) red flag during audits if they block critical resources.
What I got wrong
I used to think iframes were invisible to Google. They're not – Google can crawl and index them – but the content is attributed to the embedded page, not yours. That means you can't rank for it. I once embedded a whole product description inside an iframe to 'save time' on a client site. The page never ranked for those keywords. Months later I realised the iframe content was indexed under the supplier's domain. Another mistake: I ignored the title attribute. Adding a descriptive title helps screen readers and gives search engines context. I also avoided lazy-loading because I worried about SEO impact, but now I know lazy-loading is fine for non-critical iframes and improves [Core Web Vitals](/core-web-vitals/). Finally, I used to think iframes were a quick fix for [duplicate content](/duplicate-content/) issues – they aren't. If you embed the same content from another site, you still risk duplicate content because both pages show the same text. I also misunderstood how to use sandbox attributes – leaving them off could expose security vulnerabilities. Now I always add sandbox="allow-scripts allow-same-origin" when needed.
Next step
Quick answers
Can Google index content inside an iframe?
Yes, Google can crawl and index iframe content, but it attributes that content to the embedded page, not the parent. This means you cannot use an iframe to rank for that content on your own page. The indexing also depends on the rendering context and whether the iframe is blocked.
Does lazy-loading iframes affect SEO?
Lazy-loading iframes using the loading="lazy" attribute is fine for SEO. It improves page load performance by deferring off-screen iframes, which helps Core Web Vitals. However, ensure critical iframes above the fold are not lazy-loaded, as they may appear slow to users.
Should I use a noindex directive on iframe source pages?
If you own the embedded page and do not want it indexed separately, you can use a noindex meta tag or disallow it in robots.txt. But if the iframe is from a third party like YouTube, you cannot control that. In that case, focus on your own page's unique content.
Sources
Primary documentation is linked directly. Anything commercial is marked nofollow.
- Google Search Central — Primary source for Google’s guidance on crawlability and indexing of iframe content.
- Search Engine Journal — Provides practical coverage of iframe SEO and accessibility considerations.
- Google PageSpeed Insights — Relevant because iframes can affect load performance and user experience.
- SEOClarity — Offers a clear practitioner-oriented explanation that iframes should be supplemental rather than primary content.
Notes from Callum Bennett.