1. Make sure that there is only one version of your site 301 redirect all non www. URLs to the www. ones or vice versa.
2. Serve up easy to read and understand canonical URLs.
3. Name your files such that they are easy to read. moonwalk-photo.jpg as opposed to moon734.jpg.
4. Make an XML sitemap and upload it to the search engines.
5. Make effective use of robots.txt. Do not allow search result-like pages and a large number of auto-generated pages with the same or only slightly
different content to be crawled.
HTML Title and Head
1. Use targeted keyword in the <title> but keep in mind what visitors would see. Your page title should be less than 68 characters long to be fully visible in the SERPs.
2. Limit meta-description to 150 characters.
3. Interior pages should have distinct meta data.
1. Use only one <h1> tag per page.
2. Use alt tags in images, links, etc. A picture is worth a thousand words, but search engines cannot understand pictures; so they will refer to alt tags to understand what you are trying to say.
3. Use alt and longdesc in <img>.
4. Make sure that your code is valid, in some instances bad code can lead to search engines not being able to properly read a page. Use the W3C validator to check your markup.
5. Follow the Web Content Accessibility Guidelines 2 (WCAG 2.0) (Note: this is a very looong read). Highlights can be read at a WCAG discussion at WebmasterWorld and a similar onpage seo checklist here. Google has also published their SEO Starter Guide (pdf).
6. Provide a useful 404 File Not Found page.
1. Implement rel=nofollow links to unimportant pages within your site. Focus your link juice on the most important pages, dont splatter it all over your site.
2. More importantly, use rel=nofollow links to bad links or bad neighborhoods. Otherwise, you may get penalized for linking to them.
3. Make sure there are no orphaned pages. Everybody wants to be loved, including web pages.
4. Use absolute URLs. Read why
5. Make good use of anchor text in linking to your pages. Avoid writing generic anchor text like page, article, or click here.
6. Use breadcrumbs.
7. Provide an HTML sitemap for the site.