On page SEO is not that complicated and the rules seldom change.
There are only two types of tags that help ranking in Google: Title and headings.
The title should be about 70 characters max. What you want to promote should be in the beginning of the title.
"East End carpet cleaning - best carpet cleaners in Houston" focuses the targeting of the title in this way:
1. Primary focus, first thing listed, brand name-East End.
2. Secondary targeting is keywords:
carpet cleaning
carpet cleaning best
best carpet cleaners
carpet cleaners
carpet cleaning houston
carpet cleaners houston
3. Tertiary focus: location- Houston.
So you can see that it is possible to "optimize" the title itself. If you want to focus on the keyword, use it first. If you are brand building, use it at the beginning, if you are geo locking, use location first.
The description tag is not used for ranking, but the words count as page content. Keyword stuffing the desc tag will keyword stuff your page.
While the description tag is not a part of on page SEO, it is still very important. It is essentially an ad that google runs for your site when it appears in the SERPs. Treat it like an AD.
Description should be 160 characters long (if it is too long, it will get chopped off), and if you are a small business or driving phone traffic with your site, the description should end with a call to action and a phone number.
"Call us today! (XXX) XXX-XXXX"
This is so customers who are just looking for your phone number do not have to actually load the page to get it, they can call you directly from the SERP's page.
The keyword tag is ignored, but the contents of the keyword tag count as page content, as above.
All other tags are markup tags now, and do not contribute to SEO. Use bold and italics when it helps your reader, not for SEO. <strong> and <b> are the same thing now, whereas <strong> used to be a content tag and <b> was a markup tag, even though they do the same thing in the displayed text.
People do not really understand what LSI is. It is simply words that are found on many sites that are similar to yours. If you have a bakery site, it will have bakery terms on it like other bakery sites. If you analyze the top pages and find they are using terms you are not using, adding these LSI terms to your page will probably rank your page higher. These are terms Google thinks are relevant to sites within your niche.
Alt text optimization is another area that can really help your on page if it is optimized, or hurt it if it isn't. Alt text is supposed to tell a visitor hat the image is about in case the image doesn't load or if they are visually impaired and use a reader.
If the picture is a logo, then name it "keyword logo". However if it is a young lady in a corset, instead of saying "lady in a corset" you should optimize the tag for SEO and the reader, and here is where Google gives you leeway. Use something like "Model wearing black lace corset from Wicked Temptations new fall 2014 line".
This alt tag gives your reader a much better idea of what is in the picture,and if you get a manual review, the alt tag makes perfect sense for the reader who does not see the image. In this case, this alt tag is optimized.
What you cannot do is take a pic of a model in a corset, and alt tag it "keyword logo". That is not what is in the image, and a manual review will ding you for it. In this case, this alt tag is not optimized.
Internal linking is important and the nav takes care of that , but you can do a lot more internal linking than just nav.
Have you ever read a news story about for instance a whale rescue, and you see a link on the page that says "Click for more whale rescues" or "Related story, man helps whale out of fish net"?
These are related internal links. There are incredibly effective for helping rank internal pages, and you should use them to call attention to any pages on your site that are related to the page you are writing. DO THIS INSTEAD OF HAVING RELATED POSTS IN A SIDEBAR.
There is far more to optimizing a web page than making sure the components are there. These components need to be optimized.
Forget keyword density, write naturally. I have a page on a site about hard drive failure that has the word "hard drive" at 45 %, page still ranks.
Just contributing to the conversation.
I could go on about content and headings, but this is already a TL;DR post as is.