Can I Optimize A Site Designed With Frames?

    July 13, 2005

Can you optimize a site designed in frames? Of course you can! The question should be, “how effectively can I optimize a web sire designed in frames?”

Framed sites – in my opinion – have little use in today’s web design. There are so many better ways to design a site. For example, you have HTML, DHTML, Flash, and other design formats.

Besides being hard to optimize, framed sites also:

* Makes it harder for a visitor to bookmark your pages, or add them to their favorites. The bookmark will always point to your home page, which might not be the page they want to bookmark.

* Limit the viewing space your visitor has on the page.

* Often when a search engine lists your framed page, it will display without the frame on the left. This means that your visitor will not be able to see the navigation menu.

Of course, you can go the route of the “noframe” tag, created to help visitors whose browsers can not read frames. Nowadays most browsers can, and so this tag is used more for SEO optimization and search engines. A few keyword-enriched sentences, and – BAM!: Content spiders can read. This may not be the best method, however it does work. Plus, it is “good SEO.”

There is also another method, requiring a dynamic frameset page:

<html><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <head><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <title>Dynamic Frameset</title><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <script LANGUAGE="JavaScript"><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <!-- Begin<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp if (top != self) {top.location.replace(location) } <br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp var table_of_contents = "main.html"; <br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp var blank = " "; <br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp var content = ( ?,

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp : table_of_contents;<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp function fillFrame() {<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp parent.main.location.replace(content)<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp }<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp // Dynamic Frameset Script by Ammon Johns<br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp // source:<br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp // End --><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp </script><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp </head><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <script LANGUAGE="JavaScript"><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <!-- Begin<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp document.write('<frameset cols="134, *" border="0"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp frameborder="0" framespacing="0" onLoad="fillFrame();">');<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp document.write('<frame name="menu " src="menu1.html"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp scrolling="auto" marginheight="10" marginwidth="5"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp frameborder="0">');<br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp document.write('<frame name="main" src="javascript:parent.blank"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp scrolling="auto" marginheight="0" marginwidth="0"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp frameborder="0">');<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp document.write('<\/frameset>');<br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp // End --><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp </script><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <noscript><br />

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <frameset cols="134, *" border="0"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp frameborder="0" framespacing="0"><br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <frame name="menu " src="menu.html"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp scrolling="auto" marginheight="10" marginwidth="5"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp frameborder="0"><br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp <frame name="main" src="main.html"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp scrolling="auto" marginheight="0" marginwidth="0"

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp frameborder="0"><br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp </frameset><noframes></noframes><br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp </noscript><br>

&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp </html>

Using this method above does not include the “noframes” tag. There is no need for it. There is also some javascript the needs to be imported. To learn more about how to use this method, visit: This article by Ammon Johns will give you a step-by-step break down on how to use this method.

Now, I have been around a while. In the web design field, as well as SEO, there are many that suggest that framed sites have trouble ranking high on search engines. So the decision is yours to make: if your site is in frames, you may want to consider one of the aforementioned options, or redesigning your site in HTML. Also, try optimizing your site with keywords, before the other methods. Changes made to your site will reflect in your search engine results. See what works best!

To learn more about web design and SEO visit There you can request a free web design quote. Also visit Joe’s blogs at and