WordPress SEO - Another Definitive Guide By Yoast

The Definitive Guide To Higher Rankings For WordPress Sites

WordPress is one of the best, if not the best content management systems when it comes to SEO. That being said, spending time on your WordPress SEO might seem like a waste of time, it most definitely is not. Optimizing your site to the best practices outlined in this article will help you improve your rankings, gain more subscribers and have a better website in general.
As I take quite a holistic view on (WordPress) SEO, meaning that I think good SEO should be engrained in all aspects of your online marketing and PR, this guide covers quite a lot of ground and is therefor a long read. Check out the table of contents below for some quick jumping around.

Updates to this WordPress SEO article

This article has been kept up to date with the best practices for WordPress SEO since early 2008 and the release of WordPress 2.5, the most recent update was on March 28th, 2012, with WordPress version 3.3.1 being the most current release. The goal of this article is to let all the info of all the different articles I wrote about the topic, here and on other sites, fall into one big piece: the final WordPress SEO tutorial.
The first versions of this article were heavily based on using a plugin called HeadSpace and a series of other plugins. I've since released my own WordPress SEO plugin which replaces quite a few of those. That plugin has proven so powerful that sites like SearchEngineLand, The Next Web and Mashable now all use it. This WordPress SEO plugin is very stable and ready to use and this article now assumes you're using it.
If you're using another SEO plugin, like All in One SEO pack or Ultimate SEO, but would like to switch and make use of my free and extremely powerful SEO plugin, I've written a migration guide for you. It's a really easy process. If you're not using an SEO plugin yet, grab my WordPress SEO plugin and get going.
As search, SEO, and the WordPress platform evolve I will continue to keep this article up to date with best practices. Be sure to subscribe to my WordPress & SEO newsletter to receive notification when I update this article.

Need your website reviewed?

If you need an outside look at your WordPress install, you might consider our Website Review. The results of this review contain a full report of improvements for your site, encompassing my findings for improvements in different key areas such as SEO to Usability to Site Speed & more. For the cost of €595 (which is less than $800!), you'll receive a report that represents a much larger value in turn-over and profit. Get it now!

Table of Contents

1. Basic WordPress SEO

Out of the box, WordPress is a pretty well optimized system, and does a far better job at allowing every single page to be indexed than every other CMS I have used. But there are a few things you should do to make it a lot easier still to work with.
The first thing to change is your permalink structure. You'll find the permalink settings under Settings → Permalinks. The default permalink is ?p=<postid>, but I prefer to use either /post-name/ or /category/post-name/. For the first option, you change the setting to /%postname%/:
Permalink Settings for WordPress SEO
To include the category, you select "Custom Structure" and change the value to /%category%/%postname%/. If you previously had ?p=<postid> as your permalink WordPress will take care of all the redirects for you. This is also true if you change from /%postname%/ to /%category%/%postname%/. If you change from any other permalink structure, you might want to consult my article on changing your WordPress permalink structure and the tool that you'll find within it.
1.1.2. WWW vs non-WWW
You need to think about what you want your site to show up as, www.example.com or simply example.com. Make sure that in your general settings, under Settings → General, the version you want to show up is properly reflected:
List your site with or without WWW for WordPress SEO
You will also want to set this correctly in Google Webmaster Tools. Make sure to set up your site with Google Webmaster Tools and set the preferred domain, you can find this setting under Settings → Preferred domain:
Google Webmaster Tools Preferred Domain
1.1.3. Stop Words
The last thing you'll want to do about your permalinks to increase your WordPress SEO, is remove so called stopwords. Words like "a", "and", "the" etc. As of version 1.1.6, my WordPress SEO plugin will automatically remove stop words from your slugs once you save a post, so you won't get those ugly long URL's when you do a sentence style post title.
This is generally not something you want to change after posts have gone live. If people have already linked to it, try to not change the permalink anymore and if you do, make sure the post is properly redirected. In most cases WordPress should redirect the old URL to the new one but if it doesn't you need to make the redirect manually.

1.2. Optimize your Titles for SEO

The title, the contents of your page's <title> tag,  is one of the single most important factors for ranking in the search results. Not only is it the literal title of the tab or browser window, it's also the first line people see in the search results, followed by the URL and the snippet, usually the meta description combined with a date:
WordPress SEO  result snippet
On many blogs, the title for blog posts is still "Blog title » Blog Archive » Keyword rich post title" or "Blog title » Keyword rich post title". For your WordPress blog to get the traffic it deserves, this should be the other way around, for two reasons:
  • Search engines put more weight on the early words, so if your keywords are near the start of the page title you are more likely to rank well.
  • People scanning result pages see the early words first. If your keywords are at the start of your listing your page is more likely to get clicked on.
This means the ideal title for that plugin page on WordPress.org would actually be "WordPress SEO by Yoast > WordPress Plugins > WordPress" instead of what it is now. For more info on how to craft good titles for your posts, see this excellent article and video by Aaron Wall: Google & SEO Friendly Page Titles.
1.2.1. Controlling titles with the WordPress SEO plugin
You can control your SEO titles with my WordPress SEO plugin. There are two parts of the plugin that control these. First of all, as soon as you install & activate the plugin, you get an SEO section in your admin. Navigate to SEO → Titles and you'll see so called Title Templates (as well as meta description templates but we'll get to those later). For my site they look like this:
Title Templates for the WordPress SEO plugin
There's a bunch of variables you can use in the titles and meta description, they're all listed and explained on the bottom of the settings page. Be sure to check whether the template actually works and you're not getting a duplicate site title for instance. If this is the case, you might need to check the "Force rewrite" checkbox on the same page or follow the instruction on that page to modify your template.
For the other pages, I have the following settings:
  • Categories, Tags and other taxonomies: %%term_title%%  Archives %%page%% &#8226; %%sitename%%
  • Search pages: You searched for %%searchphrase%% &#8226; %%sitename%%
  • 404 pages: Page not found - Error 404 &#8226; %%sitename%%
  • Author archives: %%name%% &#8226; %%cf_role%% at %%sitename%%
The last one shows you a very cool feature: you can use %%cf_<custom field name>%% to use a custom field, this can be either a post custom field, sometimes known as post meta value, or a user meta value. In this particular case it's the custom field "role" I use to store the role of a user within my company.
1.2.2. Optimizing individual posts
So now that we've set decent templates, we can start to optimize individual posts and pages. For that we use the snippet preview added by the WordPress SEO plugin:
snippet preview from the WordPress SEO plugin
This preview will automatically take the values you've already filled in in your blog post and apply them to your template, but you can also override the title completely using the title field just below it:
Title field in the WordPress SEO plugin
If you hit the Generate SEO title button on the right it will pre-fill that field with a title based on your template which you can then adjust, or you can write one completely by yourself. The counter will show you how many characters you've got left.
For titles the following things are important:
  • They should always contain your brand, preferably at the end, so people may recognize you in consecutive searches.
  • They should always contain the keyword you think is most important for the current post or page, which we'll call the focus keyword from now on. The focus keyword should preferably be at the beginning of the title.
  • The rest of the title should entice people to click.

1.3. Optimize your Descriptions

Now that we've got proper titles, we should start to focus on meta descriptions. The meta description can be used by search engines to show in the snippet, it's the black piece of text shown beneath the URL. The meta description is usually only used when it contains the keyword the searcher was searching for.
Some plugins, most specifically the All in One SEO plugin, use so called "automated descriptions". They use the first sentence of a post to fill the meta description by default. That's not very smart. That first sentence might be an introductory sentence which has hardly anything to do with the subject.
Thus, the only well written description is a hand written one, and if you're thinking of auto generating the meta description, you might as well not do anything and let the search engine control the snippet... If you don't use the meta description, the search engine will find the keyword searched for in your document, and automatically pick a string around that, which gives you a bolded word or two in the results page.
Auto generating a snippet is a "shortcut", and there are no real shortcuts in (WordPress) SEO (none that work anyway).
So, use the meta description field you find in the WordPress SEO plugin to write a meta description. Make sure it entices the reader to click through and make sure that it contains the focus keyword of your post or page at least once.
You'll notice I do not mention meta keywords. I don't use them and neither should you, for an explanation, read this: meta keywords and why I don't use them.

1.4. Image Optimization

An often overlooked part of WordPress SEO is how you handle your images. By doing stuff like writing good alt tags for images and thinking of how you name the files, you can get yourself a bit of extra traffic from the different image search engines. Next to that, you're helping out your lesser able readers who check out your site in a screen reader, to make sense of what's otherwise hidden to them.
You should of course be writing good titles and alt tags for each and every image, however, if you don't have the time for that, there is a plugin that can help you. The plugin is called SEO Friendly Images, and it can automatically add the title of the post and or the image name to the image's alt and title tag:
SEO Friendly Images settings example
Using the proper alt attributes for images is also something that is checked in the Page Analysis functionality of my WordPress SEO plugin.

1.5. XML Sitemaps

To tell Google and the other search engines that your site has been updated, you can use XML Sitemaps. My WordPress SEO plugin contains an XML Sitemap module by default that you just have to enable. Go to Settings → XML Sitemaps and click the checkbox:
XML Sitemaps
As soon as you've checked the checkbox and hit Save, it'll give you some options but in most cases you won't need those. It generates an XML sitemap for all your posts, pages, custom post types and all your taxonomies like categories and tags and (if applicable) other custom taxonomies.
When you publish a new post or page, the XML sitemap is automatically submitted to Google & Bing allowing them to easily (and quickly) find your new content.

2. Template Optimization

You'll want to add breadcrumbs to your single posts and pages. Breadcrumbs are the links, usually above the title post, that look like "Home > Articles > WordPress SEO". They are good for two things:
  • They allow your users to easily navigate your site.
  • They allow search engines to determine the structure of your site more easily.
These breadcrumbs should link back to the homepage, and the category the post is in. If the post is in multiple categories it should pick one. For that to work, adapt single.php and page.php in your theme, and use the breadcrumbs from my WordPress SEO plugin. You find the settings for the breadcrumbs in the SEO → Internal Links settings page.

2.2. Headings

Although most themes for WordPress get this right, make sure your post title is an <h1>, and nothing else. Your blog's name should only be an <h1> on your frontpage, and on single, post, and category pages, it should be no more than an <h3>. Your sidebar shouldn't be crammed with <h2> and <h3>'s either etc.
These are easy to edit in the post.php and page.php templates. To learn more about why proper headings are important read this article on Semantic HTML and SEO and my article about the Heading Structure for your Blog (from which a lot applies to non-blog WordPress sites too).

2.3. Clean up your code

All that javascript and CSS you might have in your template files, move that to external javascripts and css files, and keep your templates clean, as they're not doing your WordPress SEO any good. This makes sure your users can cache those files on first load, and search engines don't have to download them most of the time.

2.4. Aim for speed

A very important factor in how many pages a search engine will spider on your blog each day, is how speedy your blog loads. You can do three things to increase the speed of your WordPress.
  1. Optimize the template to do as small an amount of database calls as necessary. I've highlighted how to do this in my post about speeding up WordPress.
  2. Install a caching plugin. I highly recommend W3 Total Cache, which is a bit of work to set up, but that should make your blog an awful lot faster.
  3. W3 Total Cache works even more magic when combined with a CDN like MaxCDN. Read more about WordPress CDN stuff here.
Also, be aware that underpaying for hosting, is not wise. If you actually want to succeed with your link-bait actions, and want your blog to sustain high loads, go for a good hosting package. I use VPS.net myself, and they've proven to be better than most everything I've seen in hosting, but I've got great experience with Page.ly too. If you want to know more be sure to read my article about WordPress hosting.

2.5. Rethink that Sidebar

Do you really need to link out to all your buddies in your blogroll site wide? Or is it perhaps wiser to just do that on your front page? Google and other search engines these days heavily discount site wide links, so you're not really doing your friends any more favor by giving them that site wide link, nor are you helping yourself: you're allowing your visitors to get out of your site everywhere, when you actually want them to browse around a bit.
The same goes for the search engines: on single post pages, these links aren't necessarily related to the topic at hand, and thus aren't helping you at all. Thus: get rid of them. There are probably more widgets like these that only make sense on the homepage, and others that you'd only want on sub pages.
Some day you will probably be able to change this from inside WordPress, right now it forces you to either use two sidebars, one on the homepage and one on sub pages, or write specific plugins.

2.6. HTML Sitemaps

For some sites an HTML sitemap might be nonsense, especially when your site is really a blog, for more corporate type sites with several levels of pages an HTML Sitemap might actually be very beneficial for both users and search engines. I've written an article on how to create an HTML Sitemap Page Template which would be a good start to get one going for your WordPress site.

2.7. Author highlighting

If you've found my site through a search you might have seen that results from my site get an author image in front of them:
rel author - Google Search
This is called an "author highlight". Most of the work needed for that has to be done in your theme, I wrote an extensive post on what is needed and how you can do that: rel=”author” and rel=”me” in WordPress.

3. Advanced WordPress SEO and Duplicate Content

Once you've done all the basic stuff, you'll find that the rest of the problems amount to one simple thing: duplicate content. Loads of it in fact. Out of the box, WordPress comes with a few different types of taxonomy:
  1. date based
  2. category based
  3. tag based
Next to that, it seems to think you actually need to be able to click on from page to page starting at the frontpage, way back to the first post you ever did. Last but not least, each author has his own archive too, under /author/<author-name>/, resulting in completely duplicate content on single author blogs.
In essence that means that, worst case scenario, a post is available on 5 pages outside of the single page where it should be available. We're going to get rid of all those duplicate content pools, by still allowing them to be spidered, but not indexed, and fixing the pagination issues that come with these things.

3.1. Noindex, follow archive pages and disable some archives

Using the WordPress SEO plugin, make sure to prevent indexing of archive pages that do not apply for your site. You do this under SEO → Indexation, where you'll find the following options:
Indexation Settings WordPress SEO Plugin
The settings above are the settings for my site. As you can see, I've completely disabled the date based archives, as I don't use those. Any date based link will redirect to my homepage because of this setting. I've left all other archives untouched, but I have checked the top checkbox, which makes the subpages of those archives be noindex, follow by default. So you'll never land on page 2 of an archive on my site from the search engines.
On smaller sites it might make sense to noindex either the category or the tag structure, but in my experience noindexing those on yoast.com does little to no change at all.
There is one type of archive that is noindex,follow by default as well in the WordPress SEO plugin: the search result pages. This is a best practice from Google for which a setting is left out as you should just have that anyway.
A lot has changed in how Google handles paginated archives recently when they introduced their support for rel="next" and rel="prev" links. I've written an article about that: rel="next" and rel="prev" for paginated archives, which is a bit too technical to fully list here, but suffice to say my WordPress SEO plugin takes care of all the needed changes automatically.

3.2. Disable unnecessary archives

If your blog is a one author blog, or you don't think you need author archives, use WordPress SEO to disable the author archives. Also, if you don't think you need a date based archive: disable it as I have. Even if you're not using these archives in your template, someone might link to them and thus break your WordPress SEO...

3.3. Pagination

Thirdly, you'll want to make sure that if a bot goes to a category page, it can reach all underlying pages without any trouble. Otherwise, if you have a lot of posts in a category, a bot might have to go back 10 pages before being able to find the link to one of your awesome earlier posts...
There's an easy fix, in fact, there are several plugins that deal with this. My favorite one by far is WP-PageNavi, maintained by Scribu, one of the best WordPress developer around. If you have the Genesis Theme, you can just enable numeric navigation under Theme Settings → Content Archives.

3.4. Nofollowing unnecessary links

Another easy step to increase your WordPress SEO is to stop linking to your login and registration pages from each and every page on your blog. The same goes for your RSS feeds, your subscribe by e-mail link, etc. WordPress SEO automatically nofollows all your login and registration links, but you really shouldn't have a login link in your template in most cases.

3.5. Canonical

In february 2009, the major search engines introduced the rel="canonical" element. This is another utility to help fight duplicate content. WordPress has built-in support for canonical link elements on single posts and pages, but it has some slight bugs in that. It doesn't output canonical links on any other page. With my WordPress SEO plugin activated, you automatically get canonical link elements for every page type in WordPress.

4. A site structure for high rankings

Blogs are spidered so easily due to their structure of categories, tags etc.: all articles are well linked, and usually the markup is nice and clean. However, all this comes at a price: your ranking strength is diluted. They're diluted by one simple thing: comments.

4.1. Pages instead of posts

You've probably noticed by now, or you're seeing now, that this WordPress SEO post is actually... not a post. It's a page. Why? Well for several reasons. First of all, this article needed to be a "daughter"-page of my WordPress page, to be in the correct place on this blog. Secondly, to rank for the term [WordPress SEO], this article has to have the right keyword density. And that's where things go wrong. Comments destroy your carefully constructed keyword density.
That's why I decided to make my most important articles into pages. That way, you can easily update them and do a new post about what you've changed.

4.2. New wine in an old bottle

If a post on your blog becomes incredibly popular and starts to rank for a nice keyword, like mine did for WordPress SEO, you could do the following:
  • create a new page with updated and improved content
  • change the slug of the old post to post-name-original
  • publish the new page under the old post's URL, or redirect the old post's URL to the new URL
  • send an e-mail to everyone who linked to your old post that you've updated and improved on your old post
  • wait for the links to come in, again;
  • rank even higher for your desired term as you've now got:
    • more control over the keyword density
    • even more links pointing at the article
    • the ability to keep updating the article as you see fit to improve on it's content and ranking
Some among you will say: I could have 301 redirected the old post to the new one with the same effect. True. Except: you'd lose the comments on the old post, which is in my opinion a sign of disrespect to people who took the time to comment, and 301 redirects take quite a bit of time sometimes. Of course you should treat this technique with care, and not abuse it to rank other products, but I think it can be done in everyone's benefit. For instance this article: if you came here through a social media site like Sphinn, expecting an article about WordPress SEO, that's exactly what you got!
One way of getting search engines to get to your older content a bit easier, thus increasing your WordPress SEO capabilites a LOT, is by using a related posts plugin. These plugins search through your posts database to find posts with the same subject, and add links to these posts.
There are quite a few related posts plugins but I tend to stick with the Yet Another Related Posts Plugin or custom code in my own theme. A very good alternative is Microkid's related post plugin, which lets you manually pick related posts. This might cost a bit more time before you hit publish but might very well be worth your while.
There are also a lot of plugins that will automatically link certain keywords to certain posts. I do not like this at all as I find it to look very spammy.

5. Conversion optimization

Get those readers to subscribe!

A lot of bloggers still think that because their blog is a blog, they don't have to optimize anything. Wrong. To get people to link to you, they have to read your blog. And what do you think is easier: getting someone who is already visiting your blog to visit regularly and then link to your blog, or getting someone who visits your blog for the first time to link to your blog immediately? Right.
That's why conversion optimization is so vitally important to bloggers as well: they need to learn how to test their call to actions on their blog so that more people will subscribe, either by e-mail or by RSS. (Ow btw, if you haven't subscribed to this blog yet, do it now!)
One of the things I've found to be very important, and more bloggers seem to have found this, is that a BIG RSS subscribe button is very important, as is offering a way to subscribe by e-mail. I even offer daily and weekly e-mail subscribe options, using MailChimp, and have found that people tend to really like those options too.
Another thing to be very aware of is when people might want to subscribe to your blog. If they've just finished reading an article of yours, and really liked it, that would be the ideal time to reach them, right? That's why more and more people are adding lines like this to the end of their posts: "Liked this post? Subscribe to my RSS feed and get loads more!"
Another great time to get people to subscribe is when people have just commented on your blog for the first time, for which purpose I use my own comment redirect plugin. Which leads me to the next major aspect of WordPress SEO:

6. Comment optimization

Get those readers involved

Comments are one of the most important aspects of blogs. As Wikipedia states:
The ability for readers to leave comments in an interactive format is an important part of many blogs.
Comments are not only nice because people tell you how special you are, or that you made a mistake, or whatever else they have to tell you. Most of all they're nice, because they show engagement. And engagement is one of the most important factors of getting people to link to you: they show you they care, and they open the conversation, now all you have to do is respond, and you're building a relationship!

6.1. How you get people to comment

The easiest way of getting people to do anything is: ask them to do it. Write in an engaging style, and then ask your blog's readers for an opinion, their take on the story etc.
Another important things is your comment links. Is your comment link "No comments »"? Or is it "No Comments yet, your thoughts are welcome »"? Feel the difference? You can change this by opening your index.php template, search for comments_popup_link() and changing the texts within that function.

6.2. Bond with your commenters

Another thing to do is thank people when they've commented on your weblog. Not every time, because that get's annoying, but doing it the first time is a very good idea.
Justin Shattuck thought the same, and created the Comment Relish plugin which sends an email after someone has made his first comment. This email is a message you can enter yourself, with for instance your feed URL, and in my case, a newsletter subscribe URL, etc. Note that some people think this is spam, and that laws in several countries might prohibit the use of this. I can't tell you, because I'm not a lawyer.
Another option, which is a bit less obtrusive / spammy, is to install my comment redirect plugin. This plugin allows you to redirect people who have made their first comment to a specific "thank you" page.

6.3. Keeping people in the conversation

Now that people have joined the conversation on your blog, you should make sure they stay in the conversation. That's why you should install the subscribe to comments plugin, that allows people to subscribe to a comment thread just like they would in a forum, and sends them an e-mail on each new comment. This way, you can keep the conversation going, and maybe your readers will be giving you new angles for new posts.

7. Off site blog SEO

If you've followed all of the above WordPress SEO advice, you've got a big chance of becoming successfull, both as a blogger and in the search engines. Now the last step sounds easy, but isn't. Go out there, and talk to people online.

7.1 Follow your commenters

There's been a movement on the web for a while now that's called the "You comment - I follow". They want you to remove the nofollow tag off of your comments to "reward" your visitors. Now I do agree, but... That get's you a whole lot of spam once your WordPress blog turns into a well ranked blog... What I do advocate though, is that you actually follow your visitors! Go to their websites, and leave a comment on one of their articles, a good, insightful comment, so they respect you even more.
If you think that's a lot of work, do realize that, on average, about 1% of your visitors will actually leave a comment. That's a group of people you have to take care of!

7.2. Use Twitter

Twitter is a cool form of micro-blogging / chatting / whatever you want to call it. Almost all the "cool" people are on there, and they read their tweets more often than they read their e-mail, if you even knew how to reach them through e-mail.
To boot, if you use WordTwit or Twitter Tools, all of your posts can be announced on Twitter, which will usually get you quite a few early readers! People will feel even more happy to comment on Twitter, which might get you into an extra conversation or two.

7.3. Find related blogs, and work them

If you want to rank for certain keywords, go into Google Blogsearch, and see which blogs rank in the top 10 for those keywords. Read those blogs, start posting insightful comments, follow up on their posts by doing a post on your own blog and link back to them: communicate! The only way to get the links you'll need to rank is to be a part of the community.

8. Measuring Results

A good SEO campaign relies on not only implementing changes but also measuring the impact of those changes, seeing what works and doing more of that. Two great Analytics packages to measure results are Google Analytics and getClicky. For both of these Analytics packages I've written plugins, my Google Analytics for WordPress plugin and my getClicky plugin.
You can also measure results by tracking rankings, the problem with rank tracking though is that it's hard to determine "real" rankings because of personalized and localized search results. Really the best outcome of being great at WordPress SEO is to get more traffic.
Another great source of data is Google Webmaster Tools. One of the relatively simple tricks I always give people is the following:
  • go into Webmaster Tools;
  • go to "Your site on the web", then "Search queries".
  • Click on "Download this table".
  • Open the CSV file you get in Excel.
  • Replace all the instances of "<10" in the Clicks column with 9.
  • Select the entire first row and click the filter button, usually the icon is a funnel:
    filter icon
  • For the average position column, choose "greater than 5", sort Ascending.
  • Then for the "Clicks" column, sort Descending.
You now have the keywords people are finding you for in the results pages where you rank below #6. The fact that they clicked on your result proves that they found your result interesting: see if you can optimize any of those terms so you'll rank higher than a #6 average rank: use the Page Analysis in my SEO plugin to improve the page, improve the copy, ask others to link to you, etc. Be sure to read my article about cornerstone content as well.

9. Conclusions on WordPress SEO

This guide gives you a lot of stuff you can do on your WordPress site. It goes from technical tips, to conversion tips, to content tips, to conversation tips, and a whole lot in between. There's a catch though: if you want to rank for highly competitive terms, you'll have to actually do most of it and create great and compelling content in the process.
If you want to keep updated on the latest news about WordPress, and hear more tips as I come up with them, then subscribe to my WordPress newsletter right now. If you need help implementing all the tips in this article, or want me to review whether you've done a good job implementing it all, order a website review!

Original Article by Joost de Valk


EmoticonEmoticon