There's been a lot of kicking around of QR codes since they first cropped up, complaints about their usability or a specific implementation (see WTF QR Codes for plenty of examples). I recently bumped into them in a discussion with some coworkers regarding 'short URLs' vs longer keyword-stuffed URLs vs QR codes. After talking about the way our industry views entry points I figured it was time for me to beat the dead horse a bit and post about why I think QR codes are not a good route to take.
First, it's important to point out what a URL is for. The technical purpose of a URL is to point to a specific resource on the internets, but it really should be viewed a two-way connection between a user and a resource. If you wanted to look up information about Canada in an encyclopedia (yes, those were once used) you simply look up 'Canada'. If you want to look up information today about Canada on Wikipedia you could go to wikipedia.com/canada (well, almost - they have a bit more complicated of a URL structure). Ideally, information on billboards, commercials, products, and such would be linked to a predictable URL, one that a user would easily recall or even guess if they wanted to follow up on a topic.
This is often not followed, though. Web developers would rather stuff keywords into their URLs for SEO purposes or not even think about them. Instead of predictable, easy to remember URLs, they end up with incredibly long and complicated ones. Then, when trying to share the resource, they end up using a URL shortening service that spits out a random hash of characters for a link. When a user bumps into either of these options in the 'real world' and attempts to visit it, trying to view information on a website that is listed on a non-digital source, they are stuck with the chore of carefully copying it into their device and checking multiple times for accuracy.
That's where QR codes come in. A user can simply scan it in with their device to decode a message (usually a URL) without copying it down. It's easier, faster, and has less chance for error. But it also breaks on a bunch of levels.
The whole purpose of a URL is to make it easy for users to locate specific resources. QR codes are creating a giant barrier in the way. Users without the right reader can't decode the message. Users can't memorize a URL that is encoded in a matrix barcode to visit at a later time. They cut out huge swaths of the possible market, huge swaths that could easily be brought in by doing it differently.
So what's better than a QR code? Simple, obvious, predictable URLs. Sure, if length is a limiting parameter it may make sense to utilize a URL shortening service and plug in a custom hash. By just showing a URL on non-digital media you stop cutting down your audience. If the convenience of scanning a code is important then do both - a textual link next to the QR code. The way that most QR codes are implemented, a simple image w/ little contextual help, is a ridiculous circumvention of an established and accessible route.