iFrame Alternatives
Previously, we talked about the drawbacks of iFrames in Should I Use iFrames in My Web Design?. But we did not delve into better alternatives.
Most all applications of an iFrame have alternatives that will benefit your site in the search engines, benefit you with easier content updating, and benefit your users with a more cohesive web experience. Here are some common reasons people give for wanting to use an iFrame, and better alternatives for each:
- “I don’t want my web site to scroll”
- “We don’t want users leaving our website (so we’ll open another site in an iFrame).”
- “We don’t want our navigation buttons to reload every time a new page loads.”
- “Our marketing people can update text files that show up in the iFrame. It’s a quick CMS.”
alternative: Let it scroll. 99% of professional websites scroll vertically. Take a look around, they do. It is much easier to take in the content on a web site by using the main scroll bar to scroll the page than to use a little scroll bar in an iFrame. With an iFrame, you are still scrolling; your viewable space is just smaller. If you really mustn’t scroll, break your content into separate pages.
alternative: Open external links in a new window.
Simply add a target attribute to your links to have them open in a new window. Clicking an external link, only to have it opened within an iFrame of the current site, is maddening. The outside website was not meant to be viewed in your fixed resolution box, so give it a browser of it’s own.
alternative: Create a lightweight navigation menu.
Navigation often times takes a while to load when images are used for each button. Rollover images can increase the load time even more. Navigation menus written purely in HTML with CSS mouseOver events (no images) load quickly and look slick. Try them out.
alternative: Get a real CMS or update HTML by hand. Updating every page isn’t my idea of fun, but what good is your marketing team’s content if it can’t be indexed by search engines because it’s buried in an iFrame? Using an iFrame as a cheap CMS is really only suitable if you do not want outside traffic coming to your website.
Usability and indexability are crucial to your website’s success. Maximize these factors by using alternatives to iFrames whenever possible. I believe nearly all front-end iFrame applications have a superior alternative.












Hi! You are a rights
Comment by ringtones — March 10, 2006 @ 9:02 am
For: “Our marketing people can update text files that show up in the iFrame. It’s a quick CMS.”
You could also use PHP includes.
Comment by Dave — March 15, 2006 @ 2:34 am
good points, but i found it a little amusing that this page is flanked with 5 iframes
Comment by tim — April 29, 2006 @ 3:55 pm
I use php includes as well.
From 2000 to 2003, I did it all by hand in Notepad. As time would go on, my older pages had incomplete navigation bars because it was too time consuming for me to go back and fix it.
In 2003, I started anew with iframes. In all honesty, iframes were better. The amount of time and energy it saved was worth not being searchable on google and other search engines.
In 2005, I discovered php and it is truely the best of both worlds. Although I can’t brag that I wrote every bit of code in HTML using Notepad anymore, I have a very professional site that pretty much manages itself.
Check it out at www.ktracy.com to see how much the includes can do for you.
Comment by Kevin Tracy — April 29, 2006 @ 4:37 pm
not to get too technical, but those are divs flanking the content!
Comment by Administrator — April 30, 2006 @ 4:12 pm
Good site, Jonn from NY.
Comment by Bob — December 8, 2006 @ 5:19 am
not sure if that’s true in all cases, because sometimes the best alternative IS iframes
Comment by JoshXND — April 15, 2007 @ 10:36 pm
Hello,
I enjoyed your ariticles about why to avoide iframes and alternatives to iframes. One observation though. In your “iFrame Alternatives” articel, you didn’t actually talk about any alternatives to iframes, suchs as scrolling divs or anything.
Comment by will — June 23, 2007 @ 3:22 pm