Good search engine optimization (SEO) usually involves making it easier for both Google’s computers and humans to understand your content. Pretty Permalinks are an example of this:
Bad permalink: http://nathanbowers.com/?p=502 It doesn’t tell Googlebots (or humans) anything about the content of the page. Also, search engines penalize URLs with “?” in them because they indicate the dynamic results of query instead of stable content like blog posts. This is the default WordPress permalink scheme.
A little better: http://nathanbowers.com/2008/07/13/post-title/ The date code is not a unique or meaningful descriptor, though the post title helps.
Best: http://nathanbowers.com/category/post-title/ The noisy, ineffective date stamp has been replaced by a category name, which has more meaning.
So, what to do if you’ve been blogging for a while and you don’t want to break old incoming links and PageRank?
- If you’re switching from the default “bad” permalinks above, skip to Step 4.
- If you’re switching from the date-based permalinks, install and enable the WordPress Permalink Redirect plugin. This will do proper 301 redirects so you won’t lose PageRank or break links.
- Go to “WP-Admin > Settings > Permalink Redirect” and tell it what your old permalinks looked like. (screenshot)
- Go to “WP-Admin > Settings > Permalinks” and select “Custom Structure” then enter
/%category%/%postname%/(screenshot) - If you get a message saying WordPress can’t write to your .htaccess file, welcome to the wonderful world of Unix permissions! You’ll need to copy and paste the redirect code WordPress gives you into the .htaccess file on your server manually.
So why doesn’t WordPress just make pretty permalinks the default? It’s because the “ugly” permalinks are guaranteed to work on any server. Most servers handle pretty permalinks fine though; WordPress is just being cautious. Read more about permalinks straight from the horse’s mouth.
Finally, let’s say you wanted to customize the URL of a post to make it different than the post title. All you have to do is edit the post “slug”. (screenshot)
Got questions? Need help? Have suggestions? Let me know in the comments:





3 Comments ↓
Okay, I’ll bite.
A while back, I got disgusted by all my categories (something like 50+…ugh…) and I converted them all to tags and replaced them with five. But the five have longish & quirky names, like “the useful ones” and “the personal ones.”
In this case, do you really think it’s better to swap out the dates for the “pretty” ones?
Dates are OK if your categories aren’t very keyword-ey. Just having the post title is plenty. If you ever decide to make a change you can do so without breaking anything.
I notice you have .html at the end of your URLs. Are you using the SuperCache plugin? I took the .html off one of your posts and it redirected fine, but just make sure that if you disable that plugin the redirection still happens. In any case, not a big deal, you can always do custom redirects with .htaccess.
Silly me, ending posts in .html is a standard WordPress option in the Permalinks admin panel. You could use the Permalink Redirect plugin I mentioned if you want to get rid of the .html without breaking incoming links.
For the record it’s good to not show file extensions in URLs (the classic case is if you change the backend from say .jsp to .aspx, old links break) but again, not a big deal. Worry more about writing awesome stuff than file extensions.