The Holy Grail of SEO is having good content -
Write as much descriptive text about your products and/or services as you can, and keep it fresh with regular updates and additions. But there comes a point where the text/pages start to impede the user-experience. Too much going on, too confusing, too many navigation buttons etc etc. One way around this is to create an 'articles' section or even a blog. That way people can access that area of your site if they need to, but it won't interfere with their browsing experience. Content attracts SE's into your site and gives them plenty to feed on. Keep it original, 300 words plus, and on theme as much as possible. Make it a part of your life to develop more and more content and you'll start to reap the benefits of your efforts. Consider article writing services (like ours) as an excellent way to build content at reasonable cost.
If you go it alone, keep it sensible and write your texts for a human reader not a search engine. Use all of the HTML tools at your disposal such as -
Heading Tags, Alt Tags and Internal Links. Try to map out your site structure on paper, then show the links on paper before you start to code them. It will be a great reference tool when you begin writing new pages. For example, if you have a page somewhere that's really strong on the subject of apples, a month down the line, when you're writing a new article and making reference to apples, it's great to be able to see visually on paper that you have an optimized page on the subject, and you can add the page filename as a link in your new article without having to go looking for it. In doing this you'll constantly be re enforcing the theme of your important pages.
Avoid duplicate content and avoid mirror websites.
Use keywords in your page filenames, your directory filenames and your image filenames, but keep it sensible.
Make good use of anchor text, again using keywords.
Page file size should be less than around 160kb before images. There are programs where you can check loadspeeds on different internet connections, use them to try to attain a page load time under 10 seconds. When designing, you can take steps to have your textual content appear quickly and images later, this is better than having the entire page blank then everything appearing at once after a 10 second wait. Keep the user in mind!