There are several crucial things that you really do need to know when you are designing a web site and you want it to be pulling in the search engine traffic. A few people take this to the extreme and create code that is only basically a load of spam, which I cannot recommend, but there are several consideration that will keep it on track and potentially make it a better website.
Choosing keywords - Do not get carried away by attempting to optimise a single page for lots of search engine terms. Just concentrate on one or two phrases per page.
Meta Data - You have the title, description and keywords meta tags and several people go overboard by stuffing every conceivable keyword into these lists. Don’t! The title and description are possibly what search engine visitors will see first around your website so instead concentrate more on writing them meaningfully and naturally and including your key phrases once within each. But make it read well!
Emphasis - Read about and people will tell you to use loads of bold, underlined and italic text plus h1, h2 and h3 to display your keywords. Don’t! Again, make it natural and it will read better for the reader. Use bold, headings etc to highlight for your readers, not the search engines.
The page content - If you haven’t guessed already, the best page content for the search engines is actually whatever is the best page content for your readers. Google near enough ignores your page content even though Yahoo and Bing do put some weight on Titles and Descriptions.
Navigation - Now we are talking! You want the search engines to be able to crawl your web site and find all of your pages, so be sure that your navigation is not hidden behind clever flash animations or javascript routines. If you want to use image links do so as search engines should follow them (this is the only time the image’s alt attribute is actually read), but it is also a good idea to repeat the links in the page footer as text links. This is not merely good to be sure that that search engines can follow the links, but also it increases your website accessibility.
Use CSS style sheets - Avoid laying your page out using tables! A table should be used to layout data and nested tables should be avoided at all costs. Instead, code your site in CSS, which is a lot lighter in code and actually simpler to maintain. If you then move the CSS out of the page into a stylesheet this also reduces the amount of code on the page, increasing the text to content ratio. It is also better (again) for your site accessibility.
In short, to make your website the best it might be for the search engines, then keep away from the spammy techniques for instance alt attributes that went out a couple of years ago and design a site for maximum accessibility. Keep the content clean and the best for your readers and you should be onto a winner with the search engines.