I like to think of iFrames as little windows on websites that content peaks through. It’s not really on the page, but is being displayed to the user as an element of that page and more often than not, blends seamlessly into the surrounding design.
From your browser it can be difficult to determine if content is on-page or is being displayed through an iFrame, but from an SEO or search engine perspective, it is oh-so-evident.
Two iFrame Scenarios: Your Domain and Theirs
As an SEO, under most conditions I would recommend that my clients NOT use iFrames to display text/content on their pages. In the end, unless there are very specific circumstances, having on-page content is the most beneficial to the website in terms of search engine optimization.
But what does it really mean for SEO? There are a two scenarios I would like to discuss here. First of all, when the content displayed in the iFrame is from another site/domain. And secondly, when the content is from the same domain, but a different file.
When the Content is Theirs
This one’s pretty simple. When the content displayed on your site through an iFrame is from another domain, your site does not benefit from this content. Even though it’s being displayed on your pages, it still is being pulled from another source and does not live on your domain. I’ve seen this happen when a company’s blog is being hosted on another domain and is being pulled to the main domain through an iFrame. Even though the content is unique and exclusive to that company, their site is not benefiting from the frequently updated and content-rich resource.
When the Content is Yours
A not so simple situation is when the content being displayed is hosted on the main domain, but is being pulled to the pages through an iFrame. If the source URL is a spiderable URL, the crawlers can follow the path and spider the content on the page feeding the iFrame. It’s good that this content is actually on your domain, but the problem is, it’s not actually being attributed to the page it’s being displayed on.
For example, if you’re an e-commerce site and your CMS dynamically displays product listings on category pages through an iFrame, you can run into some problems with making these category pages optimized and relevant for the products you’re promoting. Because it’s likely that you’re optimizing your category pages with unique title and meta tags, this top level page is missing the benefit of the product listings, and you’re left with an optimized shell – without content.
It can also hurt your internal linking because the page that contains the listings, content, or whatever is showing through your iFrame is free of any navigational elements to help the spiders continue crawling your site. Basically, once they enter the iFrame page, web crawlers are not able to fluidly crawl through additional site links.
In the end, it’s really best to include content on-page when it is supposed to be part of that page. It doesn’t do your site any good to have content displayed on your pages, but hosted on another domain, and it stifles optimization and spiderability when iFrames are used to display windows of text from other URLs on your own site.