SEO 2.0 Basics: WordPress URL Design
WordPress is, you might already suspect it, the most popular blogging platform aka blog CMS out there. Thee are plenty of good reasons to use it although WordPress has some major drawbacks (it's bloated, can be easily hacked, has a super-ugly admin interface etc). Nonetheless I use WordPress for more than one blog, indeed I use WordPress since 2003 for numerous projects.
WordPress lets you change your URL structure with ease. That's nice but also there are some pitfalls.
Why should you rewrite your URLs in the first place?
- to make them readable and self explanatory
- to make them Google friendly
- for better archiving
Now said that there is no one way to do that. There is no ideal URL structure for WordPress. It depends on what you need.
Just think about how you use your WordPress installation:
- as a blog (most probably but not necessarily)
- as a website
- as a news source
- a an archive or library for real or metaphorically speaking
Now there are several ways to "design", as in so called URL design, your WordPress URLs. After years of practice my favorites are...
Stop, first I want to show you what the average WordPress URLs look like:
None of them are perfect, most of them have significant drawbacks.
#1 is short, no need for "tinyurl" services and it does not use any rewrite rules. I like that in some cases, for instance for blogs that have large numbers of short posts, then you can show off by having a four or five digit post number. It tells you nothing about the content though. Imagine this link in an email. Would you click it or rather a link like that: domain.com/britney-spears-naked
#2 lets you categorize your content but as WordPress categories do not work as desired, you can't really choose which category is the most important one if you ascribe more than one and WP will almost randomly choose one, it's worthless. Also, the "/" at the end mimics a directory which a post is not. Do you really want to trick your readers you dirty black hat SEO?
#3 is great for a historical view bu most blog readers expect current posts on a blog. Do you really think someone will click on a link like domain.com/2005/03/15/breaking-news ?
Now lets take a look at my own URL:
I love simplicity and I wanted my blog to appear to be a real website with real content not just ephemeral blog postings. It is not ideal for several reasons or rather purposes though.
Let's say I make a list of 10 items and the add some more. I can't change the URL though, as it would yield a 404 not found error n the old one.
Consider this URL again: domain.com/?p=123
Now changing the headline does not have any impact on it. Now wouldn't it be great to combine these two? Yes, as I am a man of "as well" instead of "either or" you can and should.
The solution is fairly simple:
This URL has a major advantage:
Long URLs send via email often get cut at the end or otherwise destroyed in the process of sending.
It does not matter with this one.
will all successfully lead to the same post.
Unfortunately this is not enough in many cases. As Google is quite stupid and does not know you are a blog unless you call yourself a blog you might want to use
or better, if you want to rank for the often searched for keyword+blog combination:
You can achieve this either by uploading your WordPress installation into the real "blog" or "seo blog" directory on you server via FTP or by rewriting again. WordPress lets you add a so called "category_base".
Many people still want to use the date in their URLs as they write news blogs and for better archiving. You do not have to fake three directories with slashes ("/") doing that.
When I want to retain the date I use either one of these two URL structures:
WordPress will still allow you to access the years as in "domain.com/2008", months or days.
Now you still have to decide which URL or Permalink design is the best for you.
There are also some dirty tricks as I like to call them ;-)
For instance you can any suffix after the URL. So instead of the good old ".html" or ".php" yo can add anything you want. In my case something like ".seo" would be perfect.