Category Archives: URL Design

The New York Times' New URL Structure

The Hyperlink Grows Up: The Times Releases New Linking Features

Here’s how it works. In the story above, the base URL is: http://www.nytimes.com/2010/12/01/world/americas/01colombia.html

If you wanted to link to a specific paragraph, you’d simply add a “#” and the number of the paragraph, e.g.: http://www.nytimes.com/2010/12/01/world/americas/01colombia.html#p2

You can even go a step deeper and skip to a particular sentence, e.g.: http://www.nytimes.com/2010/12/01/world/americas/01colombia.html#p2s2

And here’s where it really gets cool, though. If you want to highlight that section, you simply switch the p to an h. I generated the highlighted text below with the following link: http://www.nytimes.com/2010/12/01/world/americas/01colombia.html#h2s2

To simplify things, if you hit your shift key twice on a Times story, small icons appear next to every paragraph. Click on one of them and it’ll place the paragraph linked URL up in the address bar of your browser.

Shortly Over Part 2: Twitter Returns Long URLs

After maintaining years of awkward, inconsistent URL shortening behavior because of some vague argument about SMS capabilities – Twitter has announced links passed through their service may or may not be shortened to t.co.

“A really long link such as http://www.amazon.com/Delivering-Happiness-Profits-Passion-Purpose/dp/0446563048 might be wrapped as http://t.co/DRo0trj for display on SMS, but it could be displayed to web or application users as amazon.com/Delivering- or as the whole URL or page title. Ultimately, we want to display links in a way that removes the obscurity of shortened link and lets you know where a link will take you.”

This is a win for the casual users of Twitter that still send & receive URLs through the service.

Shortly Over Part 1

URL Shorteners Are So Last Year

URL shorteners were all the rage in 2008 and 2009 – primarily due to the character constraints within the short messages service that was all the rage in 2008 and 2009 – Twitter.

URL shorteners take a long url, for example, this Google Map url:


http://maps.google.com/maps?oe=utf-8&client=firefox-a&ie=UTF8&q=the+red+pepper,+plymouth,+mn&fb=1&split=1&gl=us&cid=1854680882426337660&li=lmd&z=14&iwloc=A

and transform it into something like: http://tinyurl.com/y3lxdru

Every URL shortener uses their own magic sauce to create the short random string - i.e. the 'y3lxdru' part - and stores right next to the long URL. So if there's a tiny.cc/y3lxdru or a j.mp/y3lxdru - they probably don't point to the same Google Map. In fact, if I understand how bit.ly (aka j.mp) works - their shortened URLs only exist for a few months - and then are 'released' (that's how they're able to keep them short). I even created a automatically expiring URL shortener cause I thought it was funny.

When someone clicks on the short URL, the URL shortener (tinyurl.com in the example above) promises to look up the long URL stored next to the short random string - and promptly redirect you to the location of that Chinese restaurant for your lunch meeting. And not some place unseemly - which has happened, more than once.

There are lots of problems with URL shorteners. I feel qualified to say this because I build 3 of them in the past 2 years (Culld.us, RE07.US, and a native WordPress hack, none of which are currently active).

At best - they make less usable URLs - because both the URLs shorteners domain name and the random string are meaningless (not to mention hard to remember) to people.

At worst - this obfuscation means every short URL clicked is more of a potential computer security risk than normal clicking around the internet.

A 3rd party URL shortener shouldn't be necessary to make Google's Map URLs shareable. Same goes for any other website - URLs can and should be constructed to be reasonably short, human readable, guessable, and accountable. URL design is one of the most under-appreciated aspects of website usability (as is scrolling).

"URL shorteners are cheap hacks apologizing for poor content-management-systems"

For the past 6 months or so - Twitter has been the only real reason to use a URL shortener. Facebook and other services are now doing a better job of handling long URLs. Many people and companies use URL shorteners as hack for not having a good web site statistics package. Additionally, Twitter has made noises like they're going to default to their own URL shortener in the near future - a move which will promptly shorten the already tiny lifespan of other URL shortening services.

Mike Keliher on Short URL Trust

“When you see a TinyURL, you have no idea what the link is going to point you to. Viruses, spyware, porn and all sorts of other unwanted or inappropriate stuff are just a click away. …what if you actually could trust a shortened URL?….The need for safety and security online will not go away. Don’t worry: Smart people like Garrick will be here to help.” – Mike Keliher

Thanks Mike.

Culld.us is the URL shortening system powering grv.me & minnpo.st (and others). Drop me a line if you’d like to hear more about how it integrates with your existing online publications.

Cull.us: Branded URL Shortener with Google Analytics, CNAME, and .htaccess

One of the biggest problems with URL shorteners – aside from being needed at all – is it’s not easy to move from one to another without breaking all the previous links.

Culld.us hopes to change all that.

  • Use Your Own Domain Name
    At Culld.us, you get a subdomain – like grv.culld.us – and just point a CNAME record to it from your domain.
  • Use Your Own Web Analytics
    Put the statistics on your short URLs in your existing web analytics package, whether it be Google Analytics or another package, just paste the tracking code in your subdomain’s settings.
  • .htaccess and archival feeds
    If you want to leave Culld.us, you can take your redirects with you. Anytime you want – you can grab the .htaccess file, containing your shortened urls and the webpages they redirect to, and upload to your own server.
    You can also grab the RSS or JSON feeds.
  • Fully Customized Stylesheet
    Anything you can change in CSS can be changed in your Culld.us subdomain.
  • Collaborative
    Anyone you authorize has access to add URLs to your Culld.us subdomain. Everyone gets their own login and API tokens.

Culld.Us – URL Shortening Reimagined

We don’t shorten URLs just to shorten them.

We shorten them for the same reason big box retailers sell flat-pack furniture – greater confidence during transport.

With that in mind, I’ve completely rebuilt Cullect’s URL Shortener1http://culld.us

It’s still custom brand-able. In a way I’m much happier with than in the previous version – just point your domain at your Culld.us subdomain.

The part I’m very excited about – it flips shortening on it’s ear.

Sure – you can shorten a URL in Culld.us and share it with a comment in Twitter or email or wherever…or you can just leave it in Culld.us.

Think microblogging + url shortening.

1. This is the first step in a complete rebuild of Cullect as a whole.

Talking Short URLs with Zack from Nieman Lab

Zack Seward from Harvard’s Neiman Journalism Lab and I talked about URL shorteners yesterday – and the responsibility of publishers to shorten themselves

“The really, really big benefit in that case is that it’s no longer a redirect…”

…and the additional opportunity for a focused, curated, short URL service….

“he raised an idea that’s been bouncing around in my head since I hung up the phone: What if a short URL were static, but the page it pointed to wasn’t?

You could change the redirect to whatever is catching your interest at the moment or, say, randomly selected links from Andy Baio.

There’d be elements of mystery and serendipity, like flipping the pages of a great magazine, and devotion might center around the URL itself..”

Big thanks to Karl at MinnPost for connecting us.

Shortly Over

“No business we approached wanted to purchase tr.im for even a minor amount.”

I appreciate tr.im’s honesty.

From what I understand, tr.im’s business model was similar to bit.ly’s and – what increasingly feels like – Twitter’s business model: aggregate and sell statistics on how information is being shared on real-time basis.

Measuring word-of-mouse if you will.

Given how fleeting and how nascent the real-time stream is, it feels like trying to measure string pushing.

Sure there’s a result, but if value = effect - effort then the real value (relevance, importance, and significance) – doesn’t unfold until the pushing stops.

To that end – I don’t see tr.im’s (or any other URL shortener’s) breaking the internet for more than 5 minutes.

If anything this shutdown is a reminder that URL shorteners are cheap hacks apologizing for poor content-management-systems, network security risks, and that publishers should be shortening themselves.

Elsewhere, related:

“And when I return to the United States every three months or so and pick up a newspaper, I find I haven’t missed much at all.” – Pico Iyer

DickensURL.com – Extra Short Stories

There’s lots of silly URL shorteners.

Some of my favorites – not just because of their silliness, but because they offer some interesting potential;

  1. GiantURL – takes a regular URL and transforms it into a multi-line, unreadable, hash. Potentially, the information you’re sharing could be encoded into the hash, rather than redirected. Hmmm. what’s the difference?
  2. Similarly, IWouldHaveBoughtYouThis.com. Which takes advantage of Cullect‘s custom domain URL shortener – again shows us that URL shortening is like packing peanuts for sending those special nothings.
  3. and of course Re07.us, still makes me smile – and still shows me that if you limit namespace, you can offer time.

Tonight the Wege added another non-URL shortener to the list.

DickinsURL
DickinsURL takes your url and applies a sentence from one of Charles Dickins’ works as the key.

“Enter an ugly URL above and hit convert button. Soon you will be faced with beautiful words of Charles Dickens.”

Unfortunately – if you take a close look at the URLs it generates – the Dickin’s lines are optional!

@highwind – if you drop the numeric key, I’ll give you the #2 slot. :)

More Usable URLs: Twitter.com

URLs are consistently the least usable aspect of our interaction with web-based information services – which is terribly unfortunate considering their prominence in how we access, share, and interact with these services.

With that in mind, let’s take a look at how Twitter’s URLs could be more usable – by either being more logical, more readable, more share-able, or a combination of all 3.

Here’s a standard Twitter URL:
http://twitter.com/garrickvanburen/status/161277022

Let’s break this apart:
/garrickvanburen
The person’s Twitter account we’re interested in – very clear1.

/status
I’m not sure what ‘status’ is – seems like a very system-centric term. For the sake of this conversation, let’s assume it’s a synonym for ‘note’, ‘message’, ‘news’, ‘memo’, or the collection of things I publish at Twitter.

/161277022
This is the individual ‘status’ identifier. Presumably, it’s the primary key ID of this ‘status’ within all the ‘statuses’ in Twitter’s database – making this ‘status’ ID global – not nested within ‘garrickvanburen’. Again, very system-centric and kind of backwards – if we assume URLs should go from largest logical entity to smallest nested entity.

A RESTful URL structure would dictate the following:
/Plural Version of Resource Name
/Individual Resource Identifier
/Plural Version of Sub-Resource Name
/Individual Sub-Resource Identifier
/(et. al.)

If we mapped Twitter’s existing structure against this model we’d have:
http://twitter.com/people/garrickvanburen/statuses/161277022

We can see, Twitter’s URLS aren’t exactly RESTful, and since they’re not – let’s look at some ways to make them more logical.

Proposal 1: Logically Long
http://twitter.com/garrickvanburen/twitter-suggestion-put-the text-of-the-tweet-in-the-tweets-permalink.
This is the most usable and readable for both people and machines. It has the huge benefit of having the entire message in the URL (the mind reels with possibilities). WordPress does a great of making legal URL strings out of a weblog post’s title.
Benefits: Highly-readable, logical nested structure, great for search engines
Detriments: Long (though Twitter’s built-in limits provide a maximum length)

Proposal 2: Globally Short
http://twitter.com/1612770222
This is akin to my WordPress URL Shortening Hack
Benefits: Short
Detriments: Almost no information provided makes this the least usable and equivalent to the shortened URLs you find throughout Twitter.

Proposal 3: Personally Short
http://twitter.com/garrickvanburen/5954
Where 5954 is the number of the individual message in the pool of all my messages.
Benefits: Short, encourages numerically navigating through a person’s messages.
Detriments: Numbers are always less usable than words.

The great thing about these proposals is they’re not mutually exclusive. In fact – different URL structures bias different usages and contexts. In the same way different formats (HTML, RSS, XML, Text-only, etc) providing different presentations of the same webpage to different devices are more usable – different URL strings pointing to the same webpage are as well.


1. Identi.ca’s URL structure doesn’t include the person’s name [example]- making the number less confusing, but the URL itself less usable.

A Proposal for Shorter Google Maps URLs

I was adding a link to a Google map into my iCal and noticed Google is encouraging me to share the the map URLs in email and IM.

google_share_map_url

But there’s a problem with the Google Maps URLs.

They’re +/- 155 characters.

Here’s the full URL:
http://maps.google.com/maps?oe=utf-8&client=firefox-a&ie=UTF8&q=the+red+pepper,+plymouth,+mn&fb=1&split=1&gl=us&cid=1854680882426337660&li=lmd&z=14&iwloc=A

This URL is neither short, nor easily memorable, nor easily guessable. Which means it’s a completely un-usable – and barely shareable URL. Plus, something tells me this breaks both email and Twitter’s box.

CampaignMonitor says we don’t even get to the geocode.
google_map_url_campaignmonitor

Really Google!?

Even something like this is more share-able (in that it’s short).
http://maps.google.com/1854680882426337660

For the exact same character count, we can make it more guessable and more memorable (therefore more usable).
http://maps.google.com/RedPepperPlymouthMN

Yes, this is the exact same complaint Dave Winer had 5 weeks ago in Solving the TinyUrl centralization problem. Hell, if I’m only 5 weeks behind Winer, I’m cool with that.

Short URLs Re-defining SEO

It’s conventional search engine optimization wisdom that URLs should contain words, separated by either dashes or underscores. This approach improves the readability of the URL – making it more usable for people while simultaneously giving internet robots something to work on.

But with people sharing URLs within places – like Twitter and Facebook (and … and … and …) – places with a default social context, we’re seeing a URL’s context trump its readability as a significant usability factor.

Who is sharing and how they describe what they’re sharing is more important than the readability of the shared URL itself.

Leaving the search engine robots blocked out completely (disallow, nofollow, etc) or piecing together a pile of redirect URLs (which may or may not exist tomorrow, e.g. RE07.US).

Additionally, the share-er’s pays for each URL with their social capital. ‘Good’ URLs (as deemed by each individual follower) raise the share-er’s capital while ‘bad’ URLs lowers.

Throw in the proliferation of other difficult to index assets like images and video – and we’re talking about an internet that’s not Search Engine Optimized, but Social Engagement Optimized.

WordPress URL Shortening Hack

My last post, Publishers Shorten Yourself, got me thinking about easy, low-tech ways to provide a short url for WordPress blogs.

Turns out, just 1 line of code is needed in the .htaccess file.
RewriteRule ^(\d+)$ http://[YOUR-BLOG-URL]/?p=$1

Add it in just after RewriteBase so your .htaccess looks something like this:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^(\d+)$ http://[YOUR-BLOG-URL]/?p=$1
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

To use this short URL in your templates do one of the following:

If you want to use the same domain your blog is on, use this:

<a href="<?php echo get_option('home'); ?>/<?php the_ID(); ?>"><?php echo get_option('home'); ?>/<?php the_ID(); ?></a>

If you have a different, perhaps shorter domain, use this:

<a href="[SHORT-DOMAIN]/<?php the_ID(); ?>">[SHORT-DOMAIN]/<?php the_ID(); ?></a>

Note: You will have to add an additional redirect to the .htaccess file of SHORT-DOMAIN, but that’s not problem, because it’s very similar to the WordPress redirect we started with.

And like that you’ve got a short url, for every post in your WordPress blog. No more worries about whether or not a specific URL shortener will be stealing your referrers or even be around tomorrow.

Publishers Shorten Yourself

The Wege pointed me to an excellent article by Joshua Schachter on the issues w/ URL shortening services.

It’s consistent my concerns and my Insecurity of Short URLs post.

As I alluded to that post, I see 3 opportunities for URL shorteners, all of them revolve around increasing trust (branding, security, backup).

Let’s take that first one – branding. Another name for branding is accountability. Who really knows where a tinyurl a similar service will point you, but you can be confident a minnpo.st URL will point you to an article on minnpost.com and a grv.me URL will point you to something I authored.

From my perspective there are 3 parties that should have a good short URL corresponding to their identity:

  • the author (i.e. grv.me)
  • the publisher (i.e. minnpo.st)
  • the share-er (imagine a link blog of short urls)

Sometimes all 3 are the same.

Conveniently, as greater accountability is introduced to short URLs, the issues of security and backups address themselves.

Now.

Take one step back.

Web publishing engines – like WordPress, MovableType, and all publications engines really – should automatically generate nice long human-readable URLs as well as a short, easy-to-share URLs (at least the URL keys, you can supply your own short domain if you want). (Dave Winer said this last month in “Solving the TinyUrl centralization problemsomething along these lines a few weeks back, but I can find the link right now)

One more step back, and you can see this is only an issue now because of the growing popularity of 1 specific website and an expectation that these short URLs are permalinks. If you don’t have that expectation, shorten with RE07.US

RE07.US Update: Expiring URL & Widgets

RE07.US continues to make me smile. Last night’s update added a couple neat things;

  • URLs now auto-expire after 5 minutes, yes, there’s also a timer.
  • Usage data; referer, user agent, etc is now being captured.
  • and finally, I’m testing out the RE07.US javascript widget for displaying the RE07.US link on your blog.

I’ve got some ideas on where this technology could be useful, if you do as well, leave a comment.

Introducing: RE07.US – The Greenest URL Shortener

re07

According to a recent post by FuelInteractive.com, a link in Twitter is clicked for 5 minutes, then completely ignored.

That got me thinking about all the wasted short urls out there. So many tinyurl, culld.us, is.gd, et al, links just collecting dust after all that initial clicking.

Seems so wasteful considering “the current economic climate”. Maybe, we don’t need all those URLs. Maybe we should tighten our belts and limit ourselves to 1 short url – and continually reuse it.

With that in mind, I built HTTP://RE07.US. It’s 1 short url that we can all share.

All long URLs get shortened to the same link: RE07.US. And, it will be shortened to that – until someone else shortens their long URL to RE07.US. And so on and so on.

REDUCE. REDIRECT. RECYCLE.