Last time I gave some examples of awful URLs but not everyone gets it wrong. Let me give you some examples of truly beautify URL structures and explain the benefits of them!
If you ask almost any UK-based web developer for a list of the best produced websites, the Beeb will be pretty high up. They do a lot of things very well, and you’d expect so with their budget! URLs are just one example. Think of a major TV programme on the BBC and add the name after bbc.co.uk and 95% of the time that’s the address of the website. Try it out…
Considering the size of the BBC site, they seem to have a very well organised structure. Not too many levels deep – usually only one or two – and URLs stay around for a very long time. Check out Politics 97, or the Diana Remembered website. See how even when names change the content follows – bbc.co.uk/childrens now takes you to an index page linking to CBeebies and CBBC.
A new development from the BBC, still in beta, is even more impressive. Their new BBC Programmes site is an index of every TV and radio programme shown on BBC stations. For each series it lists episodes, and scheduling information. Great, but didn’t the channel listings do this already? No – that only showed the next week and didn’t contain an archive; the new site gives every series, episode and showing a unique, permanent URL.
Programmes are represented by a short alphanumeric identifier rather than their full name:
This has the advantage of being short but is hard to predict. In one of the comments on their introduction to the programmes site (and some other cool stuff they do with URLs), Michael Smethurst explains the reasoning behind their chosen structure:
We thought long and hard about the best way to make programmes addressable and, as ever, there’s no perfect solution. So…
…no channel cos not only do episodes get broadcast on multiple channels they can also change “channel ownership” over time.
and no brand > series > episode cos so many programmes don’t fit this model.
We’d love to have made human readable/hackable AND persistent urls (and have on the aggregation pages) but it just wasn’t possible
There’s another cool feature of BBC Programmes mentioned in that post:
Were also working on additional views so that in the near future by adding .json, .mobile, .rss, .atom, .iCal or .yaml to the end of the URL will give you that resource in that format.
You might not know (or care!) what each of those formats is, but what it means for every user is that they’re free to take the information that the BBC provide and use it within their own system. Already there is microformatted information embedded into every page.
Another fantastic example of beautiful URL structure is from traintimes.org.uk. This site is an alternative to the awful official site which provide rail information. They offer a fully accessible interface to train times and fares in a format much easier to browse and navigate than National Rail. But along side the forms letting you search is some URL magic. Say you want to travel from Liverpool to London, simply tag it on to the end of the URL:
Not leaving right now. Okay…
Not leaving today? That’s fine too:
Want the price?
The Train Times site has so much flexibility – you can use station codes instead of the full name and it will recognise a variety of date formats. National Rail could learn a lot!
That’s enough examples for now, but there will be more later on. Next time I’ll be looking at Edge Hill’s URLs and seeing what we’re doing right, but more importantly where we can improve.