Tiggerito - 2:56 pm on Nov 24, 2012 (gmt 0)
This is a good read and has changed my viewpoint on URLs.
I think there are a few key points to URLs:
Easy for search engines to understand
Nice for users to see (online and offline)
Easy for users to explain verbally
Easy to type in
The ideal solution will cover all. Here is my opinions.
Extensions are no longer needed and only detract from all the requirements. So don't use them.
Google may be able to work our that pagename is two words, But why take the risk. Make their job easier by providing a word divider.
Google now considers underscore as a word divider so it is an option. To me the decision is if you want people to be able to see the syntax of the URL. In many cases the underscore becomes invisible for online links. This does make the link look nicer though.
As many systems are case sensitive with the URL path we have to deal with it.
Thinking about all this, here's my current idea of best practices:
Use underscores as a divider for words. This looks tidy as they look like spaces when links are underlined. And search engines don't have to guess what the words are. This is actually a change on my previous thinking of dashes being the best.
Write using the natural case for what your saying. Again to make your URLs look nice online. e.g capitalise when it makes sense.
Don't bother with extensions. Developers from the 90s might know what they mean (I remember Mosaic), but it has no significance today. It's just fluff that makes explaining a URL more complex.
Notice that all the above is about making the URLs look nice for the user.
Know to what I think is a more important concept. Let people make mistakes without them knowing it.
We have the use of 301 redirects and the canonical tag that let us support multiple URLs as if they are the same one. So use it. Either way you can make a bunch of URLs act as one. Redirect or canonicalise:
All case variations
Versions with/without extensions
Basically, if someone explained the URL over the phone or in a pub, make sure every mistake made by the listener would still work.
This also means you could explain to staff that they don't have to say all the dash/hyphen/underscore stuff. Just read out the text and it will work.
e.g. you could have all the following URLs work:
But they all indicate the correct version via a 301 or canonical tag.
Something else I do. For offline media you know that people have to read and type in the URLs (or use QRCodes). I quite often create a custom URL to not only make it easy for the user but to also let me track the source.