WordPress SEO The Definitive Guide To Higher Rankings For Your Blog
I started writing my beginner’s guide to WordPress SEO a while back, and have since done a load of posts on the subject, an article in the Search Marketing Standard, newsletters, and presentations. It’s time to let all the info of all these different articles fall into one big piece: the final guide to WordPress SEO.
If you’re more of a visual type, try this WordPress SEO video. It’s an hour long presentation I gave at A4UExpo London, that covers most of what’s in here too.
As I take quite a holistic view on SEO, this guide will cover quite a lot, here’s the contents:
- The basic technical optimization: simplest stuff, highest rewards
- Template optimization
- Advanced technical optimization: preventing duplicate content
- Altering your blog’s structure for high rankings
- Conversion optimization: get those readers to subscribe!
- Comment optimization: get those readers involved
- Off site blog 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’s 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. In WordPress 2.5, you’ll find this page under Settings -> Permalinks. The default permalink is
?p=<postid>, but I prefer to use either
/category/post-name/. For the first option, you change the “custom” setting into
To include the category, you change it to
Once you’ve done that, you’ll want to install the Redirection plugin, and make sure that under Manage -> Redirection -> Options, making sure both URL Monitoring select boxes are set to “Modified posts”. Now you can change those permalinks to perfectly SEO‘d permalinks without having to do anything else, or worry about the search engine consequences.
WWW vs non-WWW
Another good thing to configure now you’re on that screen anyway is the Root domain: Add WWW / Strip WWW one. Make a choice, and set it here, don’t enable both, some search engines still can’t handle that. And enable the redirect index.php/index.html one too, it won’t hurt you, and might even do your WordPress SEO some good.
The last thing you’ll want to do about your permalinks to increase your WordPress SEO, is install the SEO Slugs plugin, this 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.
By default, the title for your blog posts is “Blog title » Blog Archive » 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.
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. I prefer to do this with HeadSpace, as that makes it very very easy. You should check your
header.php though, and make sure that the code for
wp_title(); contains two quotes, so it looks like this:
wp_title('');. This makes sure you have absolute control over the title and don’t have any annoying separator in there.
After that, go into the HeadSpace settings, and make them look something like this for your posts and pages:
For the other pages, I have the following settings:
- Posts / Pages:
%%title%% - Blog Title
%%category%% Archives %%page%% - Blog Title
%%tag%% Archives %%page%% - Blog Title
Blog Archives %%page%% - Blog Title
With HeadSpace, you can also write optimized titles for each post specifically, overriding the settings here. This way you have absolute control over your titles, and can make sure your WordPress titles are actually helping your SEO.
Give each category a decent description, and use HeadSpace to add that description to the meta description, by adding
%%category_description%% in the Description field. After that, write a description for each post or page that you actually want to rank with. The descriptions has one very important function: enticing people to click, so make sure it states what’s in the page they’re clicking towards, and that it gets their attention.
In my opinion, auto generating descriptions is a load of bull, most plugins pick the first sentence, which might be an introductory sentence which has hardly anything to do with the subject, or another sentence with a keyword in it, which might be completely wrong to pick as description. 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).
Another neat featuer of HeadSpace is that you can use it to optimize the more text, so if you use a more tag on the frontpage, you can replace the default “Read more” link with something meaningful for every post. It’s small things like that that make your WordPress SEO the best.
1.5. 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:
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
page.php in your theme, and use my breadcrumb plugin.
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>.
These are easy to edit in the
page.php templates. To learn more about why proper headings are important read this article on Semantic HTML and SEO.
2.3. Clean up your code
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 two things to increase the speed of your WordPress.
- 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.
- Install a caching plugin. I highly recommend WP-Super-Cache, which is a bit of work to set up, but that should make your blog an awful lot faster.
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’ve recently switched to WestHost myself, and they’ve proven to be better than anything I’ve ever seen in 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.
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:
- date based
- category based
- 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.
Install my robots meta plugin, and make sure the settings prevent indexing of all archive pages, like this:
Now the search engine will follow all the links on these archive pages, but it won’t show those pages in the index. Not everybody will agree on this policy, and others will tell you to just show a snippet of each post on the archive page. That’ll also work, but in my opinion completely throwing them out is better.
If your blog is a one author blog, or you don’t think you need author archives, use the robots-meta plugin to disable the author archives. Also, if you don’t think you need a date based archive: disable it. Even if you’re not using these archives in your template, someone might link to them and thus break your WordPress SEO…
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. Jaimie Sirovich wrote Pagerfix, a plugin that helps you make your pagination look like this:
To reach that, install that plugin, and change this section in f.i. your
<div> <div> <?php next_posts_link('« Older Entries') ?> </div> <div> <?php previous_posts_link('Newer Entries »') ?> </div> </div>
<div> <?php pager_fix(" "," "," ","« Previous page","Next Page »","strong"); ?> </div>
Do that in your
archives.php, and all other archive templates you might have.
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. Robots Meta has an option to nofollow all your login and registration links. You’ll probably have to go into your RSS links and nofollow those by hand. If you’re using the meta widget, you might want to enable the option in robots meta to replace that with one that has nofollowed links.
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.
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.
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
- 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’s a load of these available, but I just use the one that comes with the Simple Tags plugin, as I’ve found that the easiest and best one so far.
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 aweber (aff), 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 the awesome comment relish plugin. Which leads me to the next major aspect of WordPress SEO:
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!
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.
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 I just mentiond, 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.
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.
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.
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.
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.
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.
This guide gives you a lot of stuff you can do on your blog. 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.