Tuesday, December 19, 2006

Web Development with SEO in Mind

Web Development with SEO in Mind
By Adam McFarland of iPrioritize

(http://www.iprioritize.com/) (c) 2006

When a business owner decides to bring their business to the
web, generally the last thing that they think about is search
engine optimization. They assume that whomever they hire to do
their web design will put up a site and then submit it to the
search engines and the traffic will magically pour in.
Unfortunately it takes more than that to drive search engine
traffic to your site, and even more unfortunately most
developers don't program with SEO in mind, nor do they educate
the client about the process involved in gaining traffic from
search engines.

Whether it's carelessness or a lack of knowledge, or a
combination of the two, this often leads to a client that
several months down the road doesn't understand why their site
doesn't get any traffic and isn't helping their business. A
good designer will not only program with SEO in mind, but will
also educate the client about the basic principles of SEO,
whether they are the one who executes it or not.

Many times the clients I inherit have gone through this scenario
and then face drastic on-site changes to get their site search
engine friendly before we are even able to begin the arduous
process of link building. Whether you are designing a site for
yourself or for a client, following the simple steps below when
programming will ultimately save the business time and money and
result in a search engine friendly site that truly maximizes the
online potential of the business.

Use proper tags for headings, bold text, italic text, and lists
– HTML has heading tags, bold tags, italic tags, and ordered and
unordered lists for a reason and you should use them. Using CSS
you can practically style them however you like, but actually
using a heading tag for your headings, and bold tags for
important text, will help allow search engines understand what
text on a page is a heading or what is more important than the
surrounding text. Simply applying a CSS style that makes text
larger or bold doesn't do that.

Optimize your images – search engine spiders can't read text
within an image. Adding ALT text to your image tag helps, but
ideally you should remove all wording from the image and style
it using CSS, adding the remaining portion of the image as a
background image to the text. Here is a side-by-side comparison
(http://www.seo-playbook.com/image_example.php) of two images
that look the same in your browser, but much different to a
search engine spider.

Avoid canonical problems – believe it or not, search engines can
see http://fda-approved-rx.com, http://www.fda-approved-rx.com, and
http://www.fda-approved-rx.com/index.htm as three different pages. A
simple solution is to use a 301 redirect
(http://www.webconfs.com/how-to-redirect-a-webpage.php) to point
all of your pages to their "www" counterpart. You can also select
the preferred domain that Google shows in the new Google
Webmaster Tools (http://www.google.com/webmasters/) console.

Get rid of Session IDs if you have a PHP site – have you ever
seen a PHPSESSID variable added to the end of a URL on a PHP
page (it looks something like PHPSESSID=34908908)? This happens
because PHP will add a unique PHPSESSID to URLs within your site
if cookies aren't available. This can be extremely problematic
for your site's search engine ranking. Google and Yahoo will see
a unique PHPSESSID in the URL every time they visit a page on
your site, and in turn think that said page is a different page
each time. At worst, this could be viewed as duplicate content
and get your site banned, and at best it will reduce the
perceived value of each page. One solution that I've used
successfully is to utilize url_rewriter.tags
(http://www.php.net/session).

Put CSS and JavaScript in external files – nearly every site
nowadays uses CSS and JavaScript for something. While both are
great for enhancing user experience, neither will help your
search engine ranking if left on your page. One of the factors
that search engines consider when ranking your site is the
percentage of code relevant to the search term. CSS and
JavaScript can take up hundreds of lines of code, minimizing the
importance of your text and in turn hurting your ranking. By
putting them in separate files and simply including them in your
page by reference, you can reduce hundreds of lines down to one
and increase the amount of code in the file that is relevant
content.

Minimize the use of tables in layouts – the debate about whether
or not tables should be used in site design has been going on
for years and there's no end in site. I fall somewhere in the
middle – there are certain circumstances (like organizing
tabular data) where I think tables still make the most sense,
but I also appreciate the SEO benefits of using CSS layouts.
CSS layouts drastically reduce the amount of code in your site
that isn't content that the user sees. Just like moving CSS and
JavaScript to an external file, the less on-page code that isn't
content, the better. Check out search engine friendly layouts
(http://www.searchenginefriendlylayouts.com/) for some free
example layouts.

Validate your site – a site doesn't have to be perfectly coded
to rank high in the search engines (there are many, many other
factors), but valid HTML will help ensure that search engines
and browsers alike will accurately see your page. Try using the
official W3C Validator (http://validator.w3.org/) or install
this handy Firefox extension (https://addons.mozilla.org/firefox/249/). Validating generally identifies areas of code
that are redundant, unnecessary, or not accepted across all
browsers. All of which will help make your site more search
engine friendly.
================================================================
Adam McFarland owns iPrioritize - simple to-do lists
(http://www.iprioritize.com/) that can be edited at any time
from any place in the world. He also provides SEO consulting
(http://www.seo-playbook.com/) for small businesses looking for
a cost-effective way to drive more traffic to their site and
convert more visitors into customers.