(Reading time: 4 – 6 minutes)
Have you heard that WordPress gives 85% SEO, right out of the box? Do you believe that?
It’s true.
And it’s partly because of plain old semantic HTML, commonly referred to as “POSH.” POSH is a really easy concept to understand, if you know even a little bit about HTML.
The basic idea driving POSH is that the header and other structural elements should be used to support the document semantically, not just visually. Thus, the main idea – headline or title – should be encoded in the most important elements of the web page such as <title> elements or <h1>. Less important ideas, phrases or keywords are expressed in less important elements, such as <h2>, <h3>, or <h4>.
Here’s where WordPress is brilliant:
WordPress displays <title> elements and <h1> elements on web pages according to context.
Remember, a web page is something the browser displays on your computer screen. A WordPress Post is a special type of web page delivered by WordPress. (I’m going to start capitalizing “Post” and “Page” to indicate context.)
The simple rule WordPress is demonstrating in both cases is one <title> and one <h1> element on each web page. Let’s see this rule in action for two cases using WordPress Posts:
- Front web page with a list of Posts
- Single post web page
Front page structure
The front page of a WordPress blog usually lists several recent posts. A POSH-compliant theme such as Thesis will structure the front page accordingly. Let’s take a look at the page structure information using the source code view of the front page:
<title>By default, the name you choose for your web site. For example, “Website In A Wekeend.”<h1>By default, your tagline; on Website In A Weekend it’s “Web Zero to Web Hero.”<h2>Title of latest post. For October 26, 2009, that’s “WordPress Architecture – The Building Blocks of Web Publishing“<h2>Title of 2d latest post: “WordPress Plugins, Google Wave — There’s a busy month ahead!“<h2>&c.
Single post page
<title>WordPress Architecture – The Building Blocks of Web Publishing | Website In A Weekend. Note the suffix append after the vertical bar “|” is handled by (in this case) by All In One SEO. Your theme may have similar capability.<h1>“WordPress Architecture – The Building Blocks of Web Publishing.” This is the same as the <title> element, but it doesn’t have to be! There’s some evidence for better keyword coverage – thus better traffic – using a slightly different title for the web page than for the article.<h2>Subsections within article: Programming language background<h2>Basic WordPress, or WordPress straight out of the box<h2>&c.
There you have it: one <title> and one <h1> for each web page, value depending how the web page is displayed.
I can hear you now: “Why does all this matter?”
It matters because WordPress gets POSH right, and that’s about 85% of your SEO effort according to Matt Cutts of Google.
POSH – Required reading
The canonical reference for POSH has to be the microformats.org POSH wiki entry. Everything on microformats.org is worth reading carefully. Semantic web technology is coming. Be ahead of the power curve.
From POSH – Plain Old Semantic HTML: Here’s the meta description (what you know as “SEO Description”):
Teach people how to use plain old semantic HTML to create valid, well-structured, accessible and interoperable websites.
The comments on the article are very good, consider taking a few minutes to read them carefully.
No list of references on semantic HTML would be complete without the Wikipedia entry. This Wikipedia entry is a little weak, but there you have it.
Here’s a whole blog devoted to Plain Old Semantic HTML. There’s a lot of really good information on this blog, most of dated a couple of years back, but still valid.
Going the extra mile…
I could make a 5 minute screencast on this topic. It would take about an hour (I’ll have to script it to get it under 5 minutes). Is it worth it? Who wants it? Here’s what I’ll do: if I get 5 comments with “Make a screencast!” or similar, I’ll fire up my microphone and Behringer mixing board and make a really short screencast showing exactly what this is all about.
[youtube]http://www.youtube.com/watch?v=pQAIa9b3-_Y[/youtube]


First vote for screencast! Go for it, Dave. :)
.-= jan geronimo´s last blog ..When Quitting is the Only Sane Option Left =-.
Second vote for screencast. Go David go, hehe. Maybe the ladies can vote too:)
Great explanation BTW. I have heard Matt Cutts saying that 85% of SEO is taken care by WP automatically. Did not know for sure what he was saying, I thought it was because of the All-In-One SEO plugin. good to know.
.-= DiTesco´s last blog ..Thanksgiving Giveaway – The $1.500 Bonanza =-.
@jan – Vote #1
@DiTesco – Vote #2… I heard Matt say that live when I attended his session at WordCamp SF 2009. There’s an article buried in my archives about that.
If you want to see a stunning example of how title and h1 are weighted, do 2 google searches:
First: “Choose WordPress Theme”
Second: “Evaluate WordPress Theme”
I have some SEO work ahead of me.
.-= Dave´s last blog ..WordPress Architecture – The Building Blocks of Web Publishing =-.
Ugh. I just finished my article is this is far more relevant to what I was saying than the initial link I used.
I just recently found out how important all this stuff is. Why did you have this post for me 3 months ago?
p.s. Vote 3 here! Do it up!
.-= Blake @ Props Blog Rewiews´s last blog ..5 Twitter Newbie Mistakes To Avoid =-.
WordPress gives 85% SEO, i believe that when i created one page without article its indexed at page 3 at google :)
Dave I really have to say you write some of the most informative and most well written posts I have seen out of just about every site that I visit.
Now if only you could fix my Thesis theme :) haha
.-= Extreme John´s last blog ..Why Does Facebook Hate Me? =-.
@Blake – Vote #3
@Spirit – This is going to get harder and harder to do as the search engines refine their algorithms.
@EJ – Thanks! I tend to use the defaults on just about every piece of software I own. Too many years of too much programming. Now I just can’t be bothered. It’s not the programming itself, it’s the maintenance work keeping up with it!
.-= Dave´s last blog ..Big Shakeout Coming in MMO Blogosphere – You ready for it? =-.
Question, a little in depth:
You are using blog post titles with subheaders on your single post web pages, but if your blog post titles are on your main blog page (and archive lists, etc), it would make sense that the subheaders are .
Since subheaders are hardcoded into the post content, how would this be changed for web pages that display lists of posts with the entire post content, rather than just a teaser?
You seem to be getting around this by only displaying titles and teaser text on your web pages that display lists of posts. I display the entire post on my post list web pages, any suggestions for how to achieve this?
.-= Sean´s last blog ..Why Printmaking? (A Study in Polarity) =-.
[reposted comment, I didn't think the header tags would process, since they aren't allowed. I hope this works...]
Question, a little in depth:
You are using
blog post titles withsubheaders on your single post web pages, but if your blog post titles areon your main blog page (and archive lists, etc), it would make sense that the subheaders are.Since subheaders are hardcoded into the post content, how would this be changed for web pages that display lists of posts with the entire post content, rather than just a teaser?
You seem to be getting around this by only displaying titles and teaser text on your web pages that display lists of posts. I display the entire post on my post list web pages, any suggestions for how to achieve this?
.-= Sean´s last blog ..Why Printmaking? (A Study in Polarity) =-.
[ok, sorry for the mess, code tags don't seem to process in comments]
Question, a little in depth:
You are using H1 blog post titles with H2 subheaders on your single post web pages, but if your blog post titles are H2 on your main blog page (and archive lists, etc), it would make sense that the subheaders are H3.
Since subheaders are hardcoded into the post content, how would this be changed for web pages that display lists of posts with the entire post content, rather than just a teaser?
You seem to be getting around this by only displaying titles and teaser text on your web pages that display lists of posts. I display the entire post on my post list web pages, any suggestions for how to achieve this?
.-= Sean´s last blog ..Why Printmaking? (A Study in Polarity) =-.
@Sean – I was wondering who was going to ask this question.
In short, there is no good way to do what you’re thinking given how (I think) WordPress uses markup.
I’d have to take a real good look at formatting.php to say for sure.
It’s a hard problem. Actually, it’s not that hard, but nobody will do the small amount of work it takes to understand logical versus visual markup. WordPress does pretty good though.
.-= Dave´s last blog ..Top 5 Biggest Lies About Blogging for Money =-.
@Sean – You are getting closer to understanding why MS Word set document processing back 15 years, and why people such as myself succumb to rage (I’m not joking) when forced to use it.
It turns out that documents of all sorts have fairly specific structures. These structures can be described with a fair amount of precision (e.g., “lede,” “topic sentence,” &c). The infrastructure supporting these structures such as titles, header and sectional dividers of various sorts can also be fairly precisely described.
And it’s all out the window with visual markup.
With logical markup, what you want to do is easy. Consider (in markdown format):
= title =
* section
** subsection
** subsection
How this displayed in HTML would be easy… if the document were stored as a tree (that’s a data structure). Then, formatting in HTML is just a shift right or a shift left in tag hierarchy. Simple. Trivial.
Being stored as a flat file full of HTML, not so simple. It’s not too hard, just tedious, messy and full of edge cases… if you assume the HTML is well-formed. If it’s not well-formed, get’s ugly.
There are people spend a lot of time pondering these problems. I am not one of them.
.-= Dave´s last blog ..Black Magic SEO! Vampire Weekend sucks SERPs =-.
It is a pretty problem since the headers are written into the the_content template tag. A filter would have to be written of some sort to change the contents of a post. Or a plugin written to do some sort of replacement, and use some other notation to indicate that certain text is a subheader.
The more I think about this, the weirder a problem it is. It seems to require a higher level of semantic meaning in the code. Something would have to be run to think figure out what semantic meaning to give the element based on it’s location.
Just thinking out loud. Is there a meta-semantic markup?
.-= Sean´s last blog ..Why Printmaking? (A Study in Polarity) =-.
I like using wordpress very much, because with their seo friendly structure
.-= Putra Eka´s last blog ..Selamat Tahun Baru Islam 1 Muharram 1431H dan Selamat 1 Tahun Pengangguran Diriku :) =-.
Damn, only 3 votes prior to this. Vote four is mine!
… Now to go promote the article so you have to do it. Muhahaha.
.-= Heather´s last blog ..Webcomic: The Mayans Day 3 =-.
You have a cunning and devious mind. I like it.
Extra traffic can’t hurt your approval of the situation either. ;)
Either way, it amuses me.
.-= Heather´s last blog ..Webcomic: The Mayans Day 3 =-.
Does it matter if the subcontent is defined by “lower” ordinal numbers of elements — for instance if my post is:
I do this because in the theme I’ve chosen I don’t like the and styles of subheaders.
Ack – the comment engine didn’t use my tag examples (for good reason probably). I mean if I use “h4″ instead of “h2″ for subheads after “h1″.
Todd emailed me, the tags were getting munged:
My reply:
You really ought to restyle h2 and use it. It will help long term with SEO.
Just copy the style for h4 into the the style for h2.
But honestly, I don’t really know if this matters or not. Google and other search engines could go strictly by the nesting in the DOM, so h4 nested directly under h1 would imply an equivalent weight to the h2 that “ought” to be there, or they might take a look at the actual tag on the element, i.e., h4, and weight that as if h2 and h3 were implicitly defined.
I don’t really know how this could be tested, either, without running a lot of independent tests across similar keywords in similar types of articles.
For all I know, Google publishes how they do this, but I suspect it’s either trade secret, or something they tinker with on a (semi-)regular basis, in which case it wouldn’t matter what they said today, could be different tomorrow.
It took 20 comments to get 5 votes? Really? This is vote #5.
Ok, I’ll put this into my tasking system and get a screencast out sometime in the next couple of weeks.
Hey Dave,
I see you got 5 votes for a screencast. Did you ever get to make it? I vote #6. :)
Your information is so informative. You cut to the chase and give us really useful information. And then you add more so that we can dig deeper. This gives me a strategy for designing my blog posts and pages. 1 title and 1 per page.
Yehudit Steinberg´s last post ..Jewish Father and Groom Toast – To Life! L’chaim
Heh… I don’t know who Mr. Cloud is, and I don’t really care about his opinion (“Really?”). But I do care about your opinion, Yehudit. It’s embedded on the page now, probably better resolution at Youtube.
Dave Doolin´s last post ..Business Partnering- Leverage the strength of others
Finally!
Yeah!!! Dave thank you so much for getting this done so quickly. To summarize, to see if I understand you correctly.
You put a keyword you want the search engine to rank in the title tag for the page and in subsequent subtitles in the article you make them an tag and use the keyword from the title in different ways on the page. This tells the search engine what the page is about. If you want the font, color or type size to be different from the standard h2 tag you make changes in the stylesheet.
Is this method used for pages and posts?
Yehudit Steinberg´s last post ..Jewish Father and Groom Toast – To Life! L’chaim
Opps…My reply left out the h2. Below is what i meant to say……
“You put a keyword you want the search engine to rank in the h1 title tag for the page and in subsequent subtitles in the article you make them an h2 tag and use the keyword from the title in different ways on the page. ”
Yehudit Steinberg´s last post ..Jewish Father and Groom Toast – To Life! L’chaim
Yes and no.
For a well-written theme, the h1 tags are done automatically, and you want to use h2 and lower in your posts and pages.
But you don’t want too many keywords in the element tags, or in the articles. I try to use synonyms and words to support the premise of the article, which puts the keywords into context.