I’ve been working with Wordpress since mid 2006 when I was looking to start a content site to compliment my Mustang Forum. My background in SEO started well before my adventure in Wordpress however, with me spending time optimizing my forum for search engines. Luckily, techniques you learn from working with one platform can easily be carried over to another, it’s just a matter of how you want to use the platform to best serve your visitors the information you want to provide.
Now, there are obviously a hundred other Wordpress SEO articles out there. There is no one solution to getting good results in search engines but my goal is to show you why I do the things I do with my websites. I won’t just tell you to do it my why, I will try to convince you to do it my why by showing sound reasoning for why I believe in the methods I use. Now with that being said, let’s get to the content shall we?
1. Wordpress Basic SEO Optimizations
This section will cover things that every should do and will be able to do with ease. These steps will take care of a lot of issues Wordpress has out of the box.
1.1 Permalinks
Wordpress permalinks are very very easy to customize to your needs. They can also be very controversial because many people have many different opinions on what the best setup is. Do you just include the post name with stop words included? Remove stop words? What about including the date the post was made.
I never use the post name in the URL of a page unless it is the exact short (2-4 word) phrase that I want a search engine to rank me for. For example, you notice that keywords are included in the URL to this page because Wordpress SEO is exactly what I want to rank for. I don’t want my post urls to use keywords for the opposite reason. Post urls are usually long which makes the url long. Sure you could remove those pesky stop words but then you end up doing it only for search engines and not for the reader. You end up with a incomplete sentence that looks funny and unprofessional. At least that is how it looks to me. I also don’t want to have to deal with having to isntall an extra keyword to 301 redirect any posts that I change the title of in the future. The biggest reason is because I hate using 301 redirects unless I absolutely have too. So now that I have explained why not to use the post name in your url, I’ll show you what format I use and how to set them up.
First, to get to permalinks login to your admin area and under Settings click Permalinks (I know, hard right?). After the page loads you will see you have a few options. Hit the custom structure radio button and now you can enter any custom structure you please. To view a list of the options you have you can check out the Using Permalinks area of Wordpress’ Codex.
Check out the screen shot below for my setup for WP-Talk.

It’s pretty self explanatory: /%hour%%minute%%second%%post_id%/
The url consists of the hour, minute, second that it was published and the post id. I chose this path because it will always be a relatively short url and should a site I run ever be considered into news sources such as Google News I won’t have to alter my page structure in any way to be included (they require a certain amount of unique numbers to be in the url. If you just use %postname% you can forget about being included unless you change your url).
I’m sure people are going to disagree with me on this but this is how I do it not only with my wordpress posts but also my vBulletin forums using VBSEO and my rankings are just fine for both high traffic keywords I target and long tail searches that many claim keywords in urls help. Keywords in urls might have helped in the 90’s, but they aren’t worth the hassle to me in 2009.
1.2 Pages & Posts
While you may use the posts section of Wordpress the most, pages are just as important. My rule for when to make something inside a page is pretty simple. I only create pages to create content that I want to rank for very specific keywords. You can see this very clearly on my Ford Fusion History page. Notice all of those links on that page are pages and they all have less than 4 words in the URL and all 4 of those words translate into keywords that I want to rank for when typed in that order. Works for me and I recommend using pages for this.
1.3 SEO Plugins
Wordpress is poorly optimized for SEO out of the box but thankfully there are plugins out there that can easily fix some of the basic SEO functions Wordpress leaves out.
1.3.1 All In One SEO Pack (Download)
Simply the best plugin out there for SEO. It gives you complete control over how your title tags and descriptions are setup and even allows you to change title tags and descriptions on a per post basis ensuring that you always have complete descriptions instead of just taking the first xxx characters of the post and throwing it in the description meta tag like some plugins like to do.
Here is how I have the settings of WP-Talk setup:

Everything from Archive Title Format down to Paged Format can be left alone. All those pages will not exist in search engines if you follow this article exactly! The check boxes for noindex are redundant since we will be blocking most of those via a robots.txt file. Just make sure you do not check to no index the category pages!
Now if you want to change anything on a per post basis just edit the post and at the bottom you will see an area similar to this:

Simply fill it out to your liking and update the post. Now you will have a very targeted title and meta description for all of your pages.
1.3.2 Sitemap Generator (Download)
A sitemap is a must for every Wordpress blog and luckily there is a very exhaustive plugin that automatically creates a plugin for all your wordpress posts, pages and categories so you can easily submit them to the major search engines.

These settings a pretty easy to get. Just wanted to give you something to go by in case you had any doubt at all on one of the basic settings. Now to get into what we want to appear in the sitemap.

I do not like prioritizing posts based on comment counts. You might have a blog that has contests or maybe just a daily post of general chat between you and your users. That page is more than likely not going to hold significant value to give it a higher priority for some of your more targeted posts that might have less comments. I have disabled this and I set the priority manually as you will see in the next screen shot.
The sitemap content is important because you only want to include what you want to appear in search engines, obviously. I only want my category pages, posts, pages and homepage urls to show up so that is what I checked.
Now to priority, which is simple as well.

There is really no science to what priority to give. I just weighted by what I think will be most important. This is just a suggestion to Google so it isn’t going to make or break you.
1.3.3 Breadcrumb Navigation (Download)
Having a proper navigation setup is important. A simple breadcrumb allows your visitors to easily navigate around your site and allows search engines to see how your content is laid out. For example, on a post the navigation will look like this on WP-Talk:

This shows the search engine bot that that post belongs in the category Wordpress Plugins. Simple and easy to do and adds a professional touch to your site, in my opinion.
1.4 More Text
Most people use the more tag to cut off their post so that the whole post does not appear on the main page of the blog. While it is good to not show the entire post on the main page of your blog the more button/tag is not the most optimal way to do this. Wordpress has a nifty but of code that you can use to allow you to manually type in a excerpt for the main page. Using an excerpt allows you to have a unique blog main page that does not reflect word for word any of your stories.
For example, this is how a post appears on the main page of WP-Talk:

Now this is the actual post text:

Notice how they are not the same which creates a unique main page with text that can’t be found on any of your actual post pages. You can fill in the excerpt when creating or editing a post by entering text into the excerpt box and updating the post.

1.5 Images
SEO for images is pretty basic. Make sure you have your alt tags filled out with something that represents what the images is about. Wordpress by default takes the filename and puts it in the alt tag. You can simply change this to anything you like however. It’s not complicated and it doesn’t take but a few seconds per image.
1.6 Performance
How fast your site loads plays directly into how well you are going to rank. You don’t want downtime and you don’t want to have your visitors or search engine bots waiting 5-10 seconds for each page load. People generally wait less than 2 seconds before a page closes before leaving to find another website. If the visitor leaves you lose the chance to retain that visitor or to have that visitor find what they are looking for and then share that link with others. There are a few things you can do to make sure that your site loads quickly.
1.6.1 Server Side Optimizations
Depending on your current hosting setup there can be nothing you can do to help your pages load (except changing to a better server or host) or there can be many things you can do. For this article we are going to assume you are at the very minimum NOT using shared hosting. A VPS server or Dedicated server will allow you to apply some or all of these optimizations. Having a dedicated server affords you the most options for increasing your page loads.
1.6.1.1 PHP Caching
Caching your php opcode into memory will provide you will a very nice increase in performance. What this does is keeps PHP from having to constantly compile the same PHP code over and over. After PHP compiles the script the first time it is stored in memory and then the next time a request is made for that script it is called from the memory which skips compiling and keeps your CPU free to use it’s processing power for other tasks. We use xCache for our server but you have other options such as APC and eAccelerator. Use whichever one works best for your server.
1.6.1.2 Apache Optimizations
Apache is more than likely the http server that is installed on your server unless you have chosen to manually install another http server. You can check out our Apache Optimization page for tips on how to get the most out of Apache. You can also check out alternatives to Apache such as Lightspeed, Lighttpd and Nginx if you feel that is something that fits into your needs.
1.6.1.3 MySQL Optimizations
Chances are you haven’t altered your MySQL my.cnf file and this leaves a lot of room to improve your servers ability to quickly serve up your web pages to your visitors. Check out our MySQL Optimization article to make sure you are getting the most out of MySQL.





