Unique content is King. Search engines love new, unique and updated content. If you produce new content at a rate of just one reasonably sized page per day and tied in with the other advice throughout the site, I can almost guarantee you will get good listings. Remember though, write for the visitors but cater for the search engines. If your field of expertise fits into a niche in the market, all the better for you but you must get unique content all you will fall behind.
Page Structure. Search engine bots can sometimes get confused with poorly coded html, javascript and other web languages. If the bot has to wait too long or cannot decipher the web language then it will just abandon your site and move on to the next, even if it manages to get through the code it usually leads to poor search engine indexing of your website. You should also keep to widely used file extensions like .htm, .html, .php, .asp for your pages.
Loading Speed. The loading speed of your website should be kept to a minimum, if it takes long than 5 seconds on 256kb+ connections then you lose visitors - both real and search engine bots. There are a variety of reasons why pages can load slowly, it may either be your web server, poorly coded server side code like php or client side code like javascript which can slow or even stop your page from loading.
Visitor Navigation. This is more an aesthetic feature of your website focused at real visitors but you need to have some sort of standard navigation that is the same throughout your whole site. People can be put off and leave your website if they find it difficult to browse easily, search engine bots may also miss links if they can only be found deep within your site. Try to make as many internal links as possible available on each page.