One of my least favorite phrases to hear while working on a website is 'do it for the SEO'. SEO, or Search Engine Optimization, is a valid factor in website development. If Google and other search engines are having a difficult time crawling and understanding your content than it will be more difficult for users to find your website using those search tools. However, the semantic structure of your web page should be centered around the content, not the SEO, and nothing should be done with only SEO in mind.
What is semantic structure? HTML is a markup language. That means that the words on a web page are encased within tags that help give the content meaning and structure. For example, titles on a web page should be wrapped in header tags (h1 - h6) while normal paragraphs and text within p tags. This helps give browsers and crawlers some idea of the structure of the page. If you have a header followed by a paragraph, signified by wrapping both fields in the appropriate tags, than it is logical that the header introduces and/or summarizes the content of the paragraph.
HTML4 is full of helpful tags and HTML5 has even more. When a web page is being developed it is important that tags are being used to properly to provide rich context to the content. There are a few shortcomings that crop up here, though.
Form follows Function
The structure and elements should follow the content of the page, but it's easy to get this turned around when working off a fully designed concept. If the design calls for the largest text on the page to be a consistent tagline on the top of all pages in a site, that doesn't mean that the text has to be an h1 tag. H1 is the most important header on a page, as it introduces and summarizes the content and purpose of the entire page. If every page on your site has the same h1, then how are people (and web crawlers) supposed to know what makes each page different?
Structure your page to fit the content, not the design.
Stop Thinking of SEO Rules
This goes back to my original thought and the reason for writing this post. As a web developer, I focus on creating pages for users, not search engines. While it's helpful to review what Google and other search engines recommend while laying out the content on the site I recognize that they are not the target audience. As long as the content is accessible and semantically structured, both search engines and users can interpret the content just fine. A good example of this is when Google announced that they would not be using the meta keywords attribute in their algorithms. There was a big sweep in the web community to remove this field, a knee-jerk reaction that didn't help anyone. Just because Google isn't using it doesn't mean that it's useless, as this field is helpful for end users and other crawlers.
Structure your content for your end users, not search engines.
In closing, while SEO is an important factor in building out web content, you should never do something just for the SEO. Do it to increase usability or to add value for your end users. SEO should be a part, but not the focus, of any web project.