SEO Do’s and Don’ts: Website Architecture (Structure)

  • 0
  • December 17, 2007

This is part two of our Do’s and Don’ts series. The purpose here is to provide quick actionable snippets of information to help you avoid any pitfalls in developing a strong web identity.

Do: Link to every page of the site from at least one other page on the site.
Do: Use absolute links in your link code, starting with the “http://”.
Do: Link key phrases within your copy to other relevant pages on the site.
Do: Use keywords in your page and folder names. However, keep the names short and simple. Separate words in page and folder names with a hyphen or an underscore. Do not use spaces or special characters in your naming conventions.
Do: Validate your html code and correct any errors. Use this online validator from the W3C.
Don’t: Use javascript menu systems and links. Links of this kind may not be indexed.
Don’t: Use frames or iframes in your html code.
Don’t: Serve different pages to the search spiders than your human site visitors. Nothing will get you dropped from the SERPs quicker – just ask the German BMW website.
Don’t: Use lots of folders and subfolders in your site structure, spiders like relatively flat websites.


  • This list is far too simplistic. Some things you’ve listed as either a do or don’t an really go either way depending on the situation so further explanation is warranted.

    For example, why must one always use absolute links? There are times when they are warranted, but they are simply not always needed or necessary.

    I would NEVER use underscores. While Google is getting around to treating them as dashes that is still not the case and for usability issues, underscores are bad news.

    Re javascript menus, this depends on the situation. There may be links that you DON’T want indexed. Plus, Javascript menus do not automatically exclude spiders, depends on the implementation.

    Anyway, just thought a little clarification was in order. 🙂

  • Chris says:

    You’re right, it is simple. I wrote it that way on purpose.

    By implementing these items the way I wrote them, 99 times out of 100 you will benefit from improved optimization. Yes, there are situations that fall outside these parameters and yes, it would be better to have an seo professional analyze your particular situation to determine the best possible course of action. However not everyone can do that, so here are a few quick tips.

    Are absolute links going to have a severe negative impact on your site? In most cases, no.

    Yes, javascript is great for hiding certain types of links, but do you want to do that for your main site navigation, in most cases no.

    Aah, the hyphen vs. underscore battle. 🙂
    Here’s my take. I have used both in many different sites over the years and have not seen any benefit of one over the other. I’ve had sites rank very well with both and I’ve had others end up on page 98. I’ve now gone completely to underscores in all url structures. Why?

    The underscore has no place in natural language, notice I said natural language and not computer language, whereas the hyphen is used to connect the parts of a compound word, like “short-term” or “self-motivation”. Therefore it makes sense to use the underscore as a natural separator since the general population will never conduct a search in computer language syntax. Google messed this one up waaay back because it was built by computer geeks for computer geeks, computer geeks that search for things like “FTP_BINARY”. Leave the hyphen to do its job as a join in compound words.

    I know this conversation can go round and round and round, and it has all over the internet. So, I don’t think we need to get into a big long discussion, but I would love to hear your quick take on it. 🙂

  • Thanks for your response Chris. For me, hyphens come down to usability. When you see hyperlinked urls you can miss the underscore and just think it is a space. Not a problem for clicking but if someone is remembering it it can cause problems. That and it takes two keys to type an underscore and only one for a hyphen. Just something to consider!