Definitive Guide to WordPress SEO

I love WordPress, and I am on it for years. This blog is also powered by wordpress and a theme called Blix coded by myself. I am just one of tens of millions of sites online powered by this free open source software.

When it comes to SEO, many may argue that it’s not the best among all CMS. Some may even say wordpress is terrible in terms of SEO. This is one of the reasons why there are so many SEO plugins are developed to improve its SEO performance.

I’ve kept myself in those high ranking wordpress blogs for quite few months and have outlined some of the WordPress SEO tactics learned from them. Some of these blogs are:

If you are in internet marketing or SEO you may probably know these blogs. They are both ranking high for their specific niches. High quality and valuable content is one of the reasons but not the only one. They are actually using combined SEO strategies that you know as link building, social signal, etc and they are sure to use some tactics on their wordpress blog structure and codes to get a better SEO performance.

Those tactics are what I am going to share with you today.

But before I share my findings and tips, I want to state that as with everything SEO related, there are disagreements. People may think it works or doesn’t. So you don’t need to take my words, instead you can have your own idea which are good for you.

Following recommendations are what I think those blogs are implementing, and I think they are doing fine.

I will update this guide to keep it up to date with best practices for wordpree SEO. As it’s going to be a long read, you can check out the Table of Contents for some quick jumping around.

Now Lets get onto the good stuff.

definitive guide to wordpress seo

Proper Permalinks

Permalinks are simply the URL’s for your posts. By default, post titles tend to look like but if you look at the URL for this post you will see Not only is this new format more clear to tell someone what your page is about, the words in the URL will also be highlighted in search engine results if your post is relevant to the search query.

To change your permalinks, simply go to Settings > Permalinks. I currently use the following format:

Proper Permalinks

You may like to have categories in there but I’ll let you decide which format to use. I’m including post date in the post URL for this site but you cannot see it in the post. Why? Because this is actually a static page instead of a standard post. I write the most important articles in page on purpose and I’m going to get to this later. My suggestion is to keep URL’s as short as possible so you may want to only include a post title in the URL.

If you are running a massive website with tons of content, a better solution is to use /%post_id%/%postname%/. This cannot only optimize the queries to your database but also avoid duplicate URL (WordPress will automatically add a number at the end for duplicate URL).

It’s best to do this on a fresh blog, but if you’re making this change on an existing blog then all your post URLs will be changed to the new format. Also remember to shorten the post slug when you are writing an article, as by default the URL will use all of the words in your title.

Optimize the Title

The title is the content of your page’s <title>tag. It has long been thought of as a most important on-site factor for ranking better in search engines. It’s not only the tag that tells search engines what your page is about, but also it’s the first line that people see in the search results, followed by URL and then snippet(meta description, always combined with a date).

By default, post titles would display as “Post Title> Blog Name”. As your homepage is probably already ranking for your site name, you’re not helping yourself by putting your site name at the start of post titles. You don’t need to rank for it more than once, so we’d like to remove the blog name and only display “Post Title”. It looks better, what’s more it works. If you look at the title of this post, you’ll find the title alone with the blog name removed. And is a great example on this.

To change your title format, you can install wordpress SEO by Yoast plugin.  Once installed and activated, you get an SEO section in your admin. Navigate to SEO → Titles & Metas and you’ll see a bunch of tabs for different types of pages on your site. For each post type and taxonomy you can set a so called Title Template.

Title Template

Following is my recommendation:

  • Home Title: %%sitename%% %%page%% %%sep%% %%sitedesc%% (e.g. Small SEO Tips – Easy but useful SEO tips)
  • Post Title: %%title%% %%page%% (e.g. Simple Methods to Boost Email Signups of your wordpress blog)
  • Page Title: %%title%% %%page%% %%sep%% %%sitename%% (e.g. Definite Guide to WordPress SEO – Small SEO Tips)

Those are the main ones, and I recommend you tweak the rest to your preferred preferences. The post and homepage titles are the most important.

If you are using my Blix Theme, you can also customize individual post title just as the SEO plugin does.

Blix SEO title settings

Leverage Pinbacks for more backlinks

This is by default enabled by your wordpress website, but many bloggers tend to disable this for several reasons, such as for speed concern.

I’ve searched for those SEO blogs I mentioned above and notice many of them are actually encouraging pinbacks to their websites. A good example is quicksprout. It shows all pinbacks on a very eye catching section, at the bottom of post content and above main comment area.

quicksprout trackbacks

This is really one simple way to get more links to your site (which increase search engine rankings). If you are regularly supporting a site, it’s very likely that they’re going to return the favour. Especially if they’re in the same industry.  Don’t worry about spammed pinbacks as you can take control of them just like comments. You can unapproved the pinbacks you don’t like.

Unapprove Pinbacks

To do so, head over to Settings > Discussion, and check both of the following options:

Leverage Pinbacks

Related Posts

There are several reasons why it is beneficial to have related posts on your site. You would actually be impressed to find a successful blog that isn’t using it.

Blix related posts

Related Posts are good for at least 2 things:

  • Increased Engagement

Think of how much more likely a reader is to click through to one of your posts that he sees if every time he is on your site he reads two or three articles rather than just reading one and then bouncing.

  • Less Bounce, More Views

According to Search Engine Journal, “Many studies have shown that after a web visitor has finished reading your post, they are in action mode – they want to do something.” This makes sense.

Just imagine youself, as a reader, reach the end of a post and a related post catches your eyes, your are very likely to click through. When you realize that you just spent the last 20 minutes reading through posts on a site all because you keep on seeing related, interesting content. Then you are likely to subscribe to it – either through social media, email, or RSS.

So now that I have convinced you that you need some kind of related posts on your site, you have two options: either use an existing, established plugin that you can easily find one on the web YARPP for example, or get your hands dirty with tweaking your themes.

If you are using Blix, it’s already included a “related posts settings”, all you need is just a click to enable it and let Blix do the rest.

blix theme related posts option

Internal Linking

Just like external links pointing to your pages gives it authority, so too do links that point from pages on your website to other pages on your website. This means that you should be pointing links from other pages, blog posts, and most important from your homepage to your target pages to signal to Google that these pages are important. Make sure to optimize these links with your keyword as the anchor text. There are wordpress plugins like Smart SEO Links that can handle this for you.

If you don’t want to use a plugin, instead you’d like to manually handle it, an easy trick to find out where to place the links is to do a search query  in Google for your target keyword on your site. It looks like this:, “keyword”

This will load up the top pages for your keyword on your website only. Google is actually telling you what pages on your site it thinks matter for this keyword. Now all you have to do is point links from all of these pages to your target page!

internal linking

WWW or non-WWW

There are always two ways to access a website, either with a “www” at the beginning, or without it.  For example, if you head over to, you will see it is both accessible at http:// and http://www. Try this with your own site and see if it is the same.

The simplest way to set this is to set it up through your wordpress dashboard. Head over to Settings>General, and enter your preferred URL in these 2 fields.

www or nonwww

I like the non-www format because it’s short and neat.

One thing you should notice is that by default, WordPress wordpress uses a 302 redirect. A 302 tells search engines the redirection is only temporary, but you really want to tell them it is permanent so that all of your link weight goes to one place. To do this, you need to implement a 301 redirect.

You will need to be able to edit your .htaccess file which can be found in the same folder that you installed WordPress on your server. Add following codes (Thank you Glen) to the beginning of your .htaccess file:

Doing this I am redirecting your site from the www to the non-www. Remember to change to whatever your domain name is.

If you want to redirect from the non-www to the www, then swap lines 3 and 4 with this:

If that gives you any errors or doesn’t seem to do anything, make sure that your host allows you to edit the .htaccess file (most will).

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

XML Sitemaps

To make it easier for the crawlers to see the complete structure of your site and retrieve it more efficiently, you should use sitemaps.

You can create a XML sitemap with WordPress SEO by Yoast plugin I mentioned earlier, or you can use Google XML Sitemaps plugin if you think SEO plugin is too much overweighed. Don’t be fooled by the name of Google XML sitemaps, the sitemaps it creates is applicable for not only Google but also Bing, Yahoo and

The Google XML sitemaps plugin supports all kinds of WordPress generated pages as well as custom URLs. Additionally it notifies all major search engines every time you create a post about the new content.

NonIndex Archive, Category, Author, Pagination or Tag Pages

On, I only index category archive page, but I know that a lot of wordpress sites are also by default indexing date, tag or author based archives. These might be great for usability, but for search engines, they’re really just lots of same pages with too many links.

In other words, the search engines don’t need to crawl through all of them to find your blog posts. For that reason, you should Index one of those archive pages but add NonIndex option to the others. I myself like only index Category page but you decide which one to index on your site.

To do this you can also install WordPress SEO by Yoast plugin.

If you are using my Blix theme, there are easy settings in the theme option panel to help you decide what you want to block.

Blix Robots Option

NonFollow “Read More” Link

There are normally two ways to show your post content in homepage, either full post content or just a snippet of the content. If you are using the first way then you don’t need to worry about this. If, however, you are using the second way, then it’s likely you may have a “read more” or “continue..” link in there somewhere. This is always implemented by ‘the_excerpt’ or a ‘more’ quicktag inserted to the post.

In most cases your post title already links to the post with perfect anchor text, there’s no need to give juice to the read more link which simply takes people to the same page.

No matter if you are using ‘the_excerpt’ method or the ‘more’ quicktag, you should really UnFollow the link. And I’ve published a post on how to implement this that you can find here.

TURN OFF Comment Pagination

Unless you receive hundreds of comments per post (or you’re really, really picky about page speed), there really is no need to have paginated comments on your site.

I suggest turning it off to ensure that your site doesn’t have tons of duplicate pages that are all showing very little unique content.

To do so, head over to Settings > Discussion > Other comment settings and uncheck this option.

TURN OFF Comment Pagination

Display Breadcrumbs

A “breadcrumb” (or “breadcrumb trail”) is a type of secondary navigation scheme that reveals the user’s location in a website or Web application. Breadcrumbs offer users a way to trace the path back to their original landing point.

Breadcrumb navigation should be regarded as an extra feature and shouldn’t replace effective primary navigation menus. It’s suggested to use breadcrumbs in your blogs to improve the findability of your websites, especially if there is a large number of content in your websites. Two benefits of breadcrumbs are:

  • They allow your users to easily navigate your site.
  • They allow search engines to determine the structure of your site more easily.

There are a lots of plugins can help you make this, such as Yoast BreadcrumbsBreadcrumbs NavXT, etc. If you are the kind of person that not so into plugins, you can check my post on ‘how to display breadcrumbs in your wordpress blog without a plugin’.

If you are using my Blix Theme, there is already built-in Breadcrumbs settings option.

Blix Breadcrumbs

Use Pages instead of posts for important content

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. (Those words are from yoast, and I think so. But I actually enable comments on this post because I have added Microdata to the comments section so it tells search engines they are comments not content of this post. I will get to Microdata soon.)

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.

Implement Microdata(rich snippets)

Rich snippets were added by Google a little while back, and have since been adopted by other search engines as a way of highlighting data that might be relevant to certain posts. This can includes ratings for product reviews, job title and organizations for job postings, author name for articles, and all sorts of useful categorizations.Schema snippets can be useful to you in search engines if used properly and this tutorial aims to aid with that. is a universal metadata markup introduced in 2011 by the major search engines. It’s used to communicate to them the intended type of content on your website. There are still many people not taking full advantage of this!

In this tutorial I published before I’ve covered several common types of schema implementation, and how to get the correct markup into your HTML code.

If you are using my Blix Theme, you’ll find that I’ve implemented this strategy through the whole major files.

Optimize your 404 Page

All websites even the best ones will have many 404 errors. You probably don’t ever want your visitors to run into a 404 page. It means something went wrong, a link is broken, or the visitor lost his way somehow. However, it’s bound to happen at some point, which means you should be prepared for it and make the most of it.

If you are using wordpress, then you probably have a 404.php file in your theme directory. But always the 404 page is ugly with the default 404 template for most of the wordpress themes.

I once told you how to redirect all 404 errors to your homepage with a couple lines of codes. You can check out the article for reference.

So why we are doing this? Well, long story short: passing the link juice from links pointing to 404 pages to, lets say your home page is a huge benefit in terms of SEO. Also you can even turn your 404 page into a landing page to boost the email signups or sales.

Certainly, Blix includes an easy option to set up your 404 page.

Blix 404 page settings

Keep your code Clean

The speed of your website is an important factor in how many pages a search engine will spider. And this will impact your rankings.

There are many aspects that you can optimize to improve your website speed, such as: use external javascript and CSS resources, store static files on a CDN, install cache plugins like WP Super Cache, etc. You can find lots of tutorials on this topic. All aim for a speed.

But here I am going to point out a hidden burden to your wordpress themes. If you can check the source html code of  any page on your website, you probably can find such kind of output:

In most cases you don’t really need all of these, so you can remove them to keep your blog clean and load faster.

To do this, you can install a plugin called WP Caregiver. WP Caregiver provides an organized way to turn these on or off at will. It is essentially a long list of light switches for core WordPress features and functions.

WP Caregiver

If you want to keep your site away from too many plugins, you can actually read my tutorial on how to remove these unnecessary codes with a couple lines of codes that you can put into your functions.php.

Again, you are already prepared with this option in Blix Theme.

Blix optimized settings

P.S: This guide covers quite a lot of ground and I encourage you to implement most of, if not all practices to your wordpress blogs.

P.P.S: If you find it’s a little hard to implement it, check out my Blix Theme that will do all the work for you.

P.P.P.S: This guide took me countless hours to devour a ton of information before I spent another 20 hours to organize. If you enjoy it, please use any button below to share the love. And I am also happy to know what you think in the comments.

3 thoughts on “Definitive Guide to WordPress SEO

  1. michael

    hey wonderful post could not read it all have to test some stuff you are saying but my problem is getting traffic my seo score is a B+ but my only problem is traffic

    1. Leo Post author

      If you can rank higher in search engine for your keywords, you are sure to get more organic traffic.
      Also you may want to boost the traffic from other sources like social network, related blogs, blog comments, etc

  2. Issac Maez

    Excellent tutorial! Particularly useful informational.


Leave a Reply

Your email address will not be published. Required fields are marked *

9 × five =

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">