Tips are very simple :
Work on :
1) content, as no content no search matches. It seems stupid like this, but it is very true. And as Search Engine are becoming smarter and smarter to analyse content, Good content (structured articles following and developing a topic) is what will count the most in the end. You want good content added on a regular basis.
2) Links. Work on having as many backlinks as you can, and preferably coming form related websites in content. Directory submission is as well something to practice on a regular basis.
Several kind of links can be defined here, the external and the internal, with a specificity being now measured, their depth. All external links may be once counted as backlinks by search engines.
Ideally, what you'd want would be many external links coming from either good directories or quality web site with related content.
The deeper ones are Gold as they are understood as naturally posted by bots and mean to them your site is being used and liked by people.
Here related is not strict, meaning two topic can be related without being the same. Like gardening and nature, so you won't be necessarily asking for links exchange with competitors but rather to seek for winner winner deals. Partnership where two site does complement each other are really Good.
Then internal links, they do count as well, quite a lot actually. You need your content findable thus linked in your web site. So do not hesitate to post lists of links when you thinks several topics are related. That's where come the importance of having a good html site map, to provide additional links to your content.
As well, the text used to build link is very important, as related keywords are grabbed in them by bots.
3) Code. Here come the never ending part, which tags to use which H1, H2 etc ...
I think we should never forget we are working for users and not bots here.
What you want is a clean code of course, but you want even more fast page load and nice looking.
It is for sure though that using divs and lists instead of tables is a bit better, content seem to weight more in the pages this way, which is as well the truth as tables are heavier to code.
A Good principle could be to try to maximise your content weight in the page, meaning the content itself should be the most part of your total code output.
Then, if you compare the way the very highly ranked web site are made to yours, you'll know you need a lot of backlinks and content to obtain good results, especially on keywords already being optimized for a lot.
But it is possible, that's where you need to be the smartest, and to analyze well your stats, cause you might find keywords you did not think of that are already working great.
The idea here is to optimize what is already possible to generally optimize a web site. If you find out that a keyword is already obtaining good results in your web site, and obviously if the keyword is worth using, then you should write down more article covering it, or at least try to make sure this page of interest is well linked in your web site.
It's a good way to work on things being important to more than one scope, content will interest users as well, and bots will be pleased to be even better welcomed on these keywords they already liked
In this topic
I started elaborating a bit about such differences.
The thing is SEO is optimization, so we need to work on optimizing what we have. Mod rewrite is taking care of links, as well as the several site map systems out there.
Directories are central in the Backlink business.
For content, you're mostly left alone, you are the one to have to decide the general topic of your web-site when you're creating it.
My advise here is to focus on users : write Good content and see what is working the most. Then add more weigh (links, related articles etc...) on those topics that seems to work better than others. This way you'll work both for users and bots.
Because you don't need to be in the top ten web site to have more than enough visits