First of all you need to understand that SEO (Search-Engine Optimization) is not some Voodoo-trick you can apply on your blog, company's website or online-business in order to make it rank higher on Google, Bing or Yahoo.

SEO is nothing more (and unfortunately nothing less) than common-sense!

So for starters my advice to you, trying optimize your website for search-engines, and for anybody else creating web sites, is to:

  1. Use your head!
  2. Follow the standards and specifications.
  3. Always keep in mind that search-engines are just like you:
    reading web-pages as if they were Word-documents, trying to make some sense out of it.
So what do I mean with these three vague bullet points listed above (↑)?

SEO Rule #1: Use your head!

Sounds harsh, but what I mean is that you should really contemplate what the overall goal of your web site is and which specific goals each and every web page within your site has.
→ Just think about what users are going to type to find a certain answer, product, business or article and put that text on your web pages.

  • Overall-Goal of your website
    First of all you have to find a good answer to the question: "Why does your website exist?"
    And the answer can be a tree of statements that you can verify one-by-one and check to which degree you are meeting these goals.
     
    Example: Possible goals of e-Commerce web site
    • Earning more money than the online-business costs
      • Making the online-business a well-known brand
      • Selling at least n-units of "Product XY"
      • Selling at least m-units of "Service AB-2"
      • Keeping the number of customer contact low
      • ...
  • Specialized goals for each web page

    Once you have defined clear goals for your whole web site you need work out a plan how every component of you site can help meet these goals.

    The pages should fit into the overall concept of your web site; but it is not your abstract concept of your web site which defines what your website is and what it is not – it is sum of all pages within your web site. If you are running an e-commerce website you may have fancy landing- and category pages with a lot of marketing gibberish and nice (but heavy) product-shots on it, but in the end it is the product-detail pages which fill your web site with information that matters to customers; and search-engines.

    • Every web page must able to stand alone for itself and the whole site.

      Web users visiting a web site for the first time must be able to recognize at an instant (in that order):
      1. What the page is about (e.g. "Headline", "Title", "Short-description")
      2. To which greater instance the page belongs (e.g. "Online Business XY", "Blog of person B.")
      3. What the aim of that greater instance is (e.g. "Selling products from manufacturer A", "Personal diary of person B.", "A collection of articles on topic XY written by person B.")
      4. If the information on that page satisfies the requirements of the user

      Keep in mind: Humans are able to grasp this kind information just by looking at the images, text-blocks and design elements on the page – but search-engines are by far more primitive than humans; they can only extract these bits of information from the text elements they "see" on the page.

    • The more (relevant) information you put on your pages, the higher the chance that a random visitor is finding the exact information he or she is looking for.

    • If you are using images, videos, links or almost anything but text on you pages, make sure you label them with descriptive text which serves the goals of the page.

    • Anything that does not serve the informational character of your web pages (e.g. "design element", "structural website elements", "logos") must be reduced as much as possible and as invisible as possible.
       
      Real-world-example:
      I automatically generate an alt-attribute for all images on my blog which comprises of 1) the Type (e.g. "IMAGE JPEG"), 2) a description-text (e.g. "Screenshot of some application") and 3) a list of Keywords/Tags (e.g. "Screenshot, Application XY").
      So an alt-attribute of an image on my blog always always looks something like this: "IMAGE JPEG: Screenshot of some application (Screenshot, Application XY)".
       
      And the only really unnecessary bit of information I put into this alt-attribute led to the result that Google thinks that my blog is most relevant to the keywords "IMAGE" and "JPEG" Emotion: doh.
      What did I think?! Everybody viewing the image on my blog knows its an image anyways! And clearly, nobody would ever search Google for "Image of Screenshot of Application XY".
       
      So my advice about unnecessary information on web pages is: Leave EVERYTHING out of your HTML code which is not 100% serving the goals of your website / web page.
      → Get rid of useless and redundant identifiers in your HTML code!

SEO Rule #2: Follow the standards and specifications

If you can't even get your HTML right you can't expect search-engines to understand what the point of your web page is.

(Although this is not quite true, search engines are pretty much used to reading invalid HTML code and are certainly capable of parsing everything that they find; BUT unless you are not 100% sure that your content is absolutely unique, relevant and brilliant you should try to keep ahead of your competitors – starting with valid and significant HTML code)

HTML is great and simple language for creating structured, interactive and readable text-documents.
So use your HTML code to structure the information on your web page and don't abuse it to shape the user interface of your web site.

  • Use HTML elements to structure your text – use HTML attributes to add semantics to certain elements:
    • Create hierarchies of HTML elements which reflect the topology of the information on your page (e.g. Headline followed by text; nesting elements to indicate hierarchy and dependencies)
    • Apply the principle of locality and proximity when designing HTML structures (e.g. A label must always be followed by its description).
      → Stay away from tables (even though tables won't hurt your search engine ranking if you have good content).
    • Make use of all the semantic-attributes and -elements the W3C HTML specifications are offering you to enrich your document-structure with meta data:
      • ALT attribute for images

        Since search-engines (and humans using textual browsers or screen-readers) are not able to "understand" pictures or graphics, it is important to add descriptive and meaningful alternate texts to your <img>- and <input>-elements.
        (But remember: Do not add useless gibberish to the alternate text attribute that is not helping your pages' goals)

        Links about using the ALT attribute:
      • TITLE attribute

        Even though search-engines like Google say that they are not considering the title-attribute of HTML elements, it is an important instrument that adds additional information to your HTML-elements that can be valuable to your visitors –
        without polluting the information structure of your web pages. And the TITLE attribute is an important factor for the accessibility of your web site. People using textual-browsers or screen-readers will find the TITLE attribute useful.

        Links about using the TITLE attribute:
      • LANG attribute

        Informing search-engines (and browsers) about which language your content is written in has become more important since Google is using this (and I think mostly other) source of information to geo-target your web pages and offers search results from different languages with their "translated search" feature. Besides search engines this attribute is as well important to web users using Browser like "Google Chrome" which automatically offers to translate complete web pages to the users preferred language if their content is written in a foreign language.

        If you are mixing multiple languages on your page you should add a lang-attribute to the HTML elements containing the foreign language content. And if you don't want to get that far, or you are only using one language, you should (at least) add a Content-Language Meta tag to your pages:
        <meta http-equiv="Content-Language" content="en"/>

        Links about using the LANG attribute:
      • REL attribute

        The rel-attribute describes the relationship from the current document to the anchor specified by the HREF attribute in a <a>-element. You can add a list of qualifier to some of your recurring website links in order to give an hint about their targets:

        • rel="Start", rel="Next", rel="Prev"
          These link types are ideal for pagination.
        • rel="Contents"
          For a links pointing to the Site map of your web site.
        • rel="Help"
          For links pointing towards your customer-support pages.

        Links about using the REL attribute:
      • Important Meta Tags
        There is only one Meta Tag element that is relevant for search-engine-optimization (SEO) you should definitely make use of in order to increase your chances for clicks from search-engine users:
        • Meta-Description
          The meta-description text itself is unaccounted for the ranking of your pages, but is used by search-engines for displaying a short "preview" of your page in the search-results.
          This description-text cannot be long (approximately 140 characters), but may help to convince web users that it is your page that delivers the best answer to their question / search-query. So choose wisely and write an interesting and concise abstract of the web pages' content; and try to fit some of the documents' main keywords into the abstract – that way they will be highlighted by Google if they match one or more of the users' search terms.
        → All other Meta-Tags are nice to have, but will not increase the traffic you get from search-engines.

        Besides the meta-description element and despite their irrelevance for SEO I personally find these Meta tags nice to have on every web page:
        • Content-Type:
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        • Content-Language:
          <meta http-equiv="Content-Language" content="en" />
        • Last-Modified:
          <meta http-equiv="Last-Modified" content="Sunday, 29-Aug-10 22:31:55 CEST" />
        • Keywords:
          <meta name="keywords" content="Andreas Koch,Checklist,SEO,Search-Engine-Optimization" />
        • Author:
          <meta name="author" content="Andreas Koch" />

        Links about SEO-relevant Meta-Tags:
  • Use CSS to convey your Website's Identity:

    CSS Style Sheets should take the HTML code of your web pages ("the raw text-documents") and transform them into an consistent and interesting user-interface which helps web users to orientate and supports them to locate the information they are looking for.
    This creates a (hopefully) unique look & feel which web users will associate with your website and increase the chances of returning visits by leaving a good a impression in the users' memory.
    → But besides this, styling your web pages with CSS has zero impact on your search-engine ranking. Even the ugliest web page in the world can get a good ranking.

    Here are a few tips about using CSS:
    • Don't let your CSS classes dictate the structure of your HTML code.
    • Don't use inline styles (There are exceptions to this rule, but in most cases it is just bad to include your style information directly into the HTML code).
    • Use sprites for the design elements of your web site:
      This way you can make sure that search engines are not wasting their energy on meaningless design-elements AND increase the web sites' performance.
    • Try to use efficient CSS selectors

    Keep in mind: Web pages must be readable even without any styles applied.

  • Use JavaScript to add interaction to your website.

    JavaScript is an fantastic programming language for creating beautiful web sites and efficient web-based user-interfaces.
    But: Everything you do with JavaScript on your web pages is irrelevant for search-engines:
    All data loaded via ajax, is invisible to search-engines. All changes to the DOM made by an JavaScript method, are invisible to search-engines. All images loaded via JavaScript, are invisible to search-engines.

    Here are a few tips about using JavaScript:
    • Don't add inline JavaScript function call to your HTML elements.
    • Don't add inline JavaScript block to your HTML code.
    • Load JavaScript files at the bottom of the page.
    • Using too much JavaScript can make your web pages slow, which will have a negative impact on the user-experience and the search-engine ranking.
    • Web pages which are highly interactive and depend heavily on JavaScript are most likely not relevant for search-engines → add a robots noindex meta tag to keep search-engines away from these pages.

    Keep in mind: Web pages must be readable even if JavaScript is deactivated.

Rule of thumb: If you are able to read a web page and understand its structure even without its JavaScript and Styles, it is likely that your page is pretty SEO-friendly.

SEO Rule #3: Search engines are reading the text and the structure of your web pages – and nothing else.

Just think about what search engines actually do: They do full-text searches.
And just in case you don't know what a full text search is, here's what the all knowing dump (Wikipedia) says about it:

Full text search refers to a technique for searching a computer-stored document or database. In a full text search, the search engine examines all of the words in every stored document as it tries to match search words supplied by the user.

Being remembered of the definition of the term "full text search" you suddenly recognize the simple truth, that many web developers, web designers and web site editors know – but tend to forget:
Search engines don't give a damn on fancy web pages and interactive widgets – they only thing search-engines really, really care about, is content.
And this means text, text and again text.

Text is the meat to the bone that is your web page. Text means new and unique information. A long text creates hundreds of possible targets for search queries – every interesting combination of search phrases mentioned in your text might lead several web users searching for that exact combination to your page. But on the contrary, if you don't have much text on your web pages, don't expect search engines to index your web page.

  • Assemble a list of possible search queries that by which you would like to find your page and use these phrases as often as possible (but don't overdo it!).
  • Never copy text from other web pages. Search engines like "new" information and will try to ignore pages showing duplicate content.
  • Make sure all your non-textual contents (images, videos, podcasts, ...) is property labeled and wrapped into text that describes what that non-textual content is about.
  • Even the URLs to your web pages are part of the searchable text, so use human-readable URLs.
  • Keep in mind that text at the beginning of the page is supposed to be more important than text which is close to the bottom of the document.
  • Document-Outline: Create a logical document structure with your HTML (headline elements H1-H6 followed by text blocks; starting with a single H1 Headline) code that helps users and search engines read your text documents from the top to the bottom. Place your teasers and expected search engine hooks at the beginning of your document, and put the details closer to the bottom.
  • Make use of the principle of locality: Keep important and unique text close to the main keywords of your page → reduce the distance.

Conclusion – SEO Checklist

And if think these three rules are to vague and meaningless, than you can read my Checklist for Search Engine Optimization. This list can give some practical advice on how to optimize your web site for search engines.
Because in the end, search engine optimization is just a collection of best practices and common sense.

Seven high level bullet points of the AndyK Docs search engine optimization (SEO) checklist: 1. Valid HTML / 2. Content Optimization / 3. Avoid Duplicate Content

Mahalo
  – Andreas Koch

0 Comments so far
    Name:

    Website: