This is a guide I worked out myself from what I have observed and learned in the field of SEO.

Keyword Research

Work out the best keywords to target based on relevance and KEI for each webpage on the site (or as many as possible).

Limit the KWs to target of each page to 1 or 2 one phrase.

To keep track of which keywords the pages has to target put them in the Meta KW tag, a very good tag to keep track of this, hehe.

On-Page Optimization

Domain name: Get the most important KW in the domain name. Don’t make it look spammy, if the visitor feels it spammy, Google for sure also thinks so.

Title: Try to make variations of the KW. Don’t repeat the same word more than 2 times and not after each other. Keep company name in the end of the title if branding is needed.

Internal navigation: Each web page HAS to be reachable within two clicks (if not a site based on a db). If not with navigation structure then with a sitemap. Isolate if any webpages are more important than others and if so, get more links to it. For example if the homepage is very important make a link to it from each page – both for the visitors and for the SEs. Avoid navigation with flash or some complex js – but if you HAVE to keep it then have a normal HTML navigation on the bottom of the page.

Use H1 and H2 tags with KWs in them and define them in the CSS file. Use the headings in a sensible and logical way to avoid possible filters.

Meta desc: KW in the beginning, action for the visitor in the end.

KW rich text starts early in the source: Use CSS-P for this and get the CSS and JS in external files.

Page contains a lot of text: You should strive for to keep your web pages at least 250 words each.

Use the Title attribute in the anchor tags.

Use ALT description tags on the images.

Use the strong tag if possible to emphasize KWs.

Spread out the KWs in the body text. Avoid a too high density, if it feels a bit spammy, reduce it. You write for the visitors not the SEs.

In case you have any tables use the summary attribute.

Use XHTML and put all design in the external CSS file to reduce the file sizes and make it “easier” for the spiders to see the content.

Avoid frames and flash based site.

Avoid poison words in the title, headings, file name and other important places.

Use static URLs. If you use a db get it mod_rewritten.

Use dashes in the URLs. Confirmed by my own SEO test as well as on the Google blog by GG as well as Matt Cutts.

Keep your files under 100K. (spiders may disregard additional)

If needed break up words in the source so they form keywords by using “word-spacing:-4px” with CSS.

Have your content change/updated on a regular basis so the spiders will come more often. If this is not done manually you can rotate/randomize text with PHP. This maybe also will rank you higher.

Avoid ANY kind of bad hat SEO or anything could mistakenly be seen as bad hat. This includes doorways, non-301 redirects, hidden texts or links, spamming, mirror domains, cloaking etc.

Validate the code by W3C so you make it easier for the SE spiders.

Never link to any site that could be seen as a bad site.

Use 301 to get the PR on one version of the domain name (confirmed by GG on WMW and by Matt Cutts on his blog)

If you have any link to an unimportant page let say copyright terms on each page use the rel=nofollow so that you distribute the PR more to your other pages than that one.

Off-Page Optimization

Get links from high PR pages to your site. Try to have them related in the same theme. Avoid excessive reciprocal linking, it could be penalized – three way linking is better.

Avoid temporary links to your site, the older they are the better.

Get your KWs in the anchor text of the links to your site.

Avoid excessive crosslinking.

Whenever you feel that “now I have enough links”, set a new goal to double them.

Good ways to get links: Write and submit high quality articles to article sites, write something unique and useful, get into niche directories (also general once are ok.) But avoid the FFA type in which there is no approval.

Make a Google sitemap and submit it.

Get a reliable host that has more than 99% uptime, is fast and is not hosting bad sites (you don’t want to be in a bad neighbourhood.)

Submit your site to SEs and directories ONLY manually.

Factors in the Long Run

Content is not King. UNIQUE content is King. Huge difference. Write something valuable that has not been written before and you will see what I mean.

Add more unique content on a regular basis. Try to write at least an article or web page with text per week.

Build your web site big. One big good one is much better than 10 small not-so-good ones.

Have good statistics and analyze from where you get your visitors, their paths on your site and finetune it.

Observe: Look and observe all the time. Check the SERPs, check the stats, check this, check that and learn. If something goes good reinforce it, if something was not good remedy it.

Personal Recommendations

If you have a site about information try to specialize it in a certain niche.

Make a SEO friendly directory in your niche of speciality. You will get a huge benefit of this. You can ask or make them sign up for your newsletter when submitting their site. When you send your newsletter make it valuable information and you won’t get any unsubscribers.

Do your research before starting a new site. Look at which sites are already existing, what is needed and wanted and then make one that is the best in a certain field. Like if you find there is 20 similar sites like the one you want to make, figure out how you can make it the best of them.

If you offer services try to always give more than what is expected and you will build up a good reputation.

Find forums in your special field and provide useful information and help people by answering their questions etc. Have your site in the signature and you will see that it will be more known.

In the bodytext concentrate on the visitor and not on yourself.

If you have a site that sells things or services, don’t speak about money the first thing but how you can help the visitor. In addition add pages to the site with valuable information that will drive visitors to the site that maybe is not interested in your services but maybe in some month will be.

The big search engines have million of variables in their algo, don’t try to cheat it. Spend the time writing instead.

Study the SEO field by reading articles and forums to learn more each day and catch the algo changes and follow up with finetuning your site.

Best Personal Advice

Don’t make a web site to make money, make a web site to the benefit and help to your visitors and you will see that the money will come.