Quality news site URLs
30th July 2003
Nathan Ashby-Kuhlman is devoting this week on his blog to discussion and analysis of news site’s URLs.Nathan’s 5 attributes for a good URL are worth repeating here as they succintly describe my own opinions:
- URLs should be human-readable
- URLs should be short
- URLs should not contain useless parts
- URLs should be ’hackable’ and dates should be year/month/day
- URLs should be permanently unique
I’m something of a fascist when it comes to URLs; they are one of my first considerations when initially designing a site and for personal projects I refuse to compromise on them. Nathan’s series is now on day two, and true to his word he has been dissecting a number of large and not-so-large news sites and grading each one on the quality of their article URLs.
Steven Jarvis plays devil’s advocate in the comments, asking a very interesting question about the value of “hackable” URLs:
I’ve got a devil’s advocate question for you: why do URLs need to be hackable? My wife (who is remarkably non-websavvy) would never in a thousand year think about hacking an URL. I’d say the same is true for at least 90% (and probably much higher than that) of the audience of news websites. *I* like hackable URLs, and I agree in general that they should be hierarchical, if only because I like at least the appearance (such as that given by liberal use of mod_rewrite) of a well-organized site. Isn’t hacking an URL really just a fall-back point when the site’s navigation fails you?
Nathan’s reply on the same page is worth reading. I agree with him; while hackable URLs as an additional navigation aid add very little value to the vast majority of surfers, they are a powerful indicator of the quality of a site’s navigational structure. They also tend to be a by-product of a well thought out URLs system, meaning if you are already following best practise for URLs you can often gain hackability for a very low extra cost.
More recent articles
- Weeknotes: the Datasette Cloud API, a podcast appearance and more - 1st October 2023
- Things I've learned about building CLI tools in Python - 30th September 2023
- Talking Large Language Models with Rooftop Ruby - 29th September 2023
- Weeknotes: Embeddings, more embeddings and Datasette Cloud - 17th September 2023
- Build an image search engine with llm-clip, chat with models with llm chat - 12th September 2023
- LLM now provides tools for working with embeddings - 4th September 2023
- Datasette 1.0a4 and 1.0a5, plus weeknotes - 30th August 2023
- Making Large Language Models work for you - 27th August 2023
- Datasette Cloud, Datasette 1.0a3, llm-mlc and more - 16th August 2023
- How I make annotated presentations - 6th August 2023