Everybody Wants Short Links
See that URL up there on your browser? The one that’s super descriptive, yet so longer than one wants to deal with? The one breaks funny when you email your friend with the ancient mail client that somehow things that 80 characters is an appropriate width to break on? The one that we all feed into web shortening services like tinyurl.com so that we can add them to our Twits? The one that digg.com wants to replace with their URL-hiding top bar? Yeah, it’s long. In this case of this post, it’s 66 characters.
Really, short links are the ultimate in ugly URLs. Longer, more descriptive URLs are appreciated by both the 24 humans that pay attention to the location bar as well as to search engines. Just for the record, and before we go any further, let me just say that short links make my skin crawl. They’re icky. Gross. Blech. But, short links seem to have a purpose, and Twitter has really driven them into the limelight. So, it seems that we’re stuck with them.
The biggest problem with short links—at least ones not held by digg.com who have some sort of awful desire to mask the web all the sudden—is that there’s another naming and directory system in the mix and you are now depending on that service to stay up. Besides the indirection issues, TinyURL and their brethren might go down, however. Or go out of business. Or might just have network issues one day. Bam. All those short links suddenly could stop working for a while. Or for ever.
There’s been a bit of discussion that Google should just take over the short link business. They could, and they are pretty reliable. But, that just smacks of ick at some level. After all, a URL describes a resource on your site, not on Google. And that’s the second problem with link shorteners. They become faceless, anonymous tokens. We might as well start passing around IP addresses again for all the information they give us.
So, here’s a thought, and apparently it’s not a new one. Instead of relying on outside entities to shorten URLs, why can’t websites do it themselves? So many websites are managed by CMS or blog engine tools that it should be a freaking snap to implement. Let me show you an example. A proof of concept if you will. Here’s the URL for this blog entry:
http://duncandavidson.com/2009/04/everybody-wants-short-links.html
Here’s a quicky shorter link I just cooked up for this post:
Try it. You’ll be right back here in no time. Cool huh?
Sure, duncandavidson.com isn’t as short as tinyurl.com, but you know what, it’s pretty close. And, it has a few features that I consider totally useful. First, it’s under my control, not some other service that might have an interruption, a bad day, or just decide to go foom. Second, you can look at the link and tell where you are going, unlike all those tinyurl.com links that take you to mysterious places that only reveal themselves once you’ve clicked on them.
Now, I haven’t hacked anything into MovableType for this particular proof of concept. This isn’t, however, a hard problem to tackle. All you need is a local look up table of some sort and a handler for /s/*, or whatever URL path scheme that works for your site. That handler can look things up on the fly and issue a permanent redirect on demand. Or, if you’re into static generation of your website, you could even have your software tool just emit the right lines into an .htaccess file or the like.
For this particular proof of concept, I took the easiest way out and tossed the following into my Apache configuration file to make this work. Here’s what it looks like:
# Sample short link
Redirect permanent /s/1 http://duncandavidson.com/2009/04/everybody-wants-short-links.html
I wouldn’t want to do this by hand for every entry, but you can see that it’s not a very hard thing to do. Easy in fact. Two bits of data. The short link identifier and the URL to send a browser along to.
Quite frankly, I won’t have time to really dink around with this idea at all for a few months. I’m just coming off a bad case of bronchitis and there’s this book I’m supposed to be writing right now (oh wait, did I really just say that out loud?) and I’m behind on all sorts of things. So, instead of doing anything constructive with code and getting too fancy, I’m taking the easy way out and just sharing the idea with the hope that maybe it’ll spark some useful discussion.
MovableType, WordPress, all you CMS vendors, Flickr, whoever. What do you say? Maybe we could overload that old # convention for the permalink to a fragment to use these super shorter links that whole lot more sense than http://tinyurl.com/ckto9r. Or maybe there could be a new convention. “SL” for short link. Or, maybe an HTML link tag that works like an RSS pointer or the like, but which has a short link relationship. Something like:
<link rel="short" href="http://duncandavidson.com/s/1"/>
Or maybe something like this does already exist and is just languishing in the relatively unimplemented which will come up in the comments. Regardless of implementation details, imagine a world where you see:
- http://bill.wordpress.com/s/2343
- http://flickr.com/s/2isA8
- http://facebook.com/s/AsdiFD
They’re still pretty ugly as far as URLs go, but, they’re better than any of the currently existing alternatives. And, there’s probably some considerations I’ve not thought through in the 12 minutes between the time I had the idea and started writing this blog post. Who knows. Think about it. But, for the love of URLs and the desire for short ones that lead to longer, more descriptive ones, could y’all please jump on something like this?
Or maybe, as Koz suggests, Twitter should just take care of all the shortening and lengthening for us and save us from the bane of short links infesting the web.
Update
As comments below attest, there has been some action on this front. Zeldman posted a twit a week or so ago with this exact thought, Flickr has short URLs, and things are happening with link tags, such as canonical and alternate shorter versions. Sam Ruby is talking about how all this interacts with HTML 5, and points to another shorturl link header proposal that looks perfect. There’s all sorts of stuff going on here!
Just goes to show that good ideas crop up all over the place. I should have assumed that when I had these thoughts, others were having them as well. I should have done a few searches, then point at their work and say “Do THAT!”.

17 Comments
Someone else has already come up with a convention that's being widely adopted:
http://revcanonical.wordpress.com/
Reply to this comment
Chris, awesome. Good to see that there's already something going in this direction. Not that I _like_ short URLs, but...
Reply to this comment
I'm with Koz. Long urls have never been a problem. And twitter shouldn't solve this with a shortening service of their own, what they should do is detect urls, and count urls as, eg, 8 characters, regardless of how long the url actually is.
Then, display these urls truncated in the message (but make the href full length, obviously), in order to prevent people from abusing the system by tweeting "http://hey-check-out-my-cool-message-with-can-now-be-longer-than-140-characters".
Reply to this comment
The WWW has been working well for 20 years. I object to the notion that its conventions and utility be bastardized simply for the benefit of a few backward new services which refuse to integrate well.
Reply to this comment
Ben K, as I said in the post, I think that short URLs are pretty gross. But, while the rampant use of short URL services is something we could wish away, it's probably not that easy. In the absence of any way to prevent the use of URL shorteners, some plan is better than the crappy plan we have in place where the links rot out.
Reply to this comment
Or, rather than having special short URLs, websites could just use shorter ones exclusively. Like this page could be duncandavidson.com/ewsl.html (an acronym for the title) - and if you have another EWSL post, it could become ewsl2.html. Then you wouldn't have to deal with multiple version of URLs floating around to confuse readers and publishers.
Reply to this comment
I agree with ben K, the whole point of having URLs was to be readable.
Duncan: spill your guts and tell us what you are writing. My guess is a book about photography.
Reply to this comment
David, not spilling yet. :) I'll wait for the official announces to go before I blab much more about it.
Reply to this comment
This is already available. I have added Get Shorty to my site and have my own tinyurl:
http://get-shorty.com/
Works fine after a couple of little fixes that are not documented....
Cheers,
Danny
Reply to this comment
Haven't gotten around to official announcement, but there have been short URLs on Flickr for a bout a week, and we've been advertising them with rev="canonical" since Friday.
E.g. http://flic.kr/p/6cMNHR
Reply to this comment
I'm a big fan of the idea of sites offering their own shortened URLs. There are a few sites that have actually been doing this for a while. Gawker sites are one example that comes to mind. In their system, the following 2 are the same:
http://jalopnik.com/5208690/engine-of-the-day-bmw-m10
http://jalopnik.com/5208690
Reply to this comment
Nice article. As someone who is supposed to be writing my yearly personal review I'd rather be writing this comment. I love URLs. To me they have always been part of the language of the web. I hate sites that have long big ugly unreadable URLs and I appreciate beautiful simple ones. Flickr's are especially well thought out I think.
Reply to this comment
I know that Atlassian's Confluence wiki/blog engine does exactly this: every new content object can be referenced via a system-generated short link.
But I have a problem with the whole concept here: I think it's backwards. The short link should be the canonical form, as a unique identifier within an application context. This makes compliance with the REST architecture much simpler; content is thus addressed as:
http://www.example.com/appctx/objectID
and the long forms such as
http://www.example.com/applicationname/contextname/long-name-for-the-object
are the aliases.
Thus the original object has a single short form, rather than (potentially) many. This makes it far easier for other content consumers to make assumptions about the canonicity of your data addressing model. In other words, it's more RESTfully useful.
Of course the semantic web people are far ahead of this, but that's the IPv6 of the information discovery world: interesting, viable, probably necessary eventually, but too complicated for most people to contemplate right now.
Reply to this comment
G'day James,
I too suggested rel="short" but it was quickly pointed out that this could refer to the content itself rather than the URL. Not to be deterred I changed it to rel="shortcut", but Microsoft et al pushing rel="shortcut icon" for so long leaves rel=shortcut something of scorched earth (it's a space separated list remember). I've settled on rel="shortlink" which, while similar to rel="shorturl", lacks the many permutations (short[_- ]?ur[il]).
You can read more about it and why it's better than the alternatives at the 'shortlink' Google Code project.
Sam
Reply to this comment
I have the same feelings, more or less. I'm running my own personal URL shortener on ozh.in (shorter domain name and, since I'm the only user, shorter URLs because not a lot are generated) and use these short links when tweeted.
(I'm even probably going to release the URL shortener scripts tonight, by the way)
Reply to this comment
Flickr short links are good and all, but when I load one on my mobile phone, the following three redirects happen:
http://flic.kr/p/6Z5LB7
to http://flickr.com/p/6Z5LB7
to http://www.flickr.com/photos/dmountain/3927754612/
to http://m.flickr.com/photos/dmountain/3927754612/
Yikes.
Reply to this comment
Having a hard time understanding where your web page is hosted under this new short url if your domain name is no longer the same. Can someone point me to a good informational resource? I am having a difficult time at the moment finding something that doesn't just give away the code, but explains it as well.
Thanks!
Reply to this comment
Leave a comment