A tourist attraction I visited recently had information boards at various points around the site. Each one had a QR code promising more detail about what you were looking at. Every single one I tried lead to a broken link.
This keeps happening.
I was in a hotel room and wanted to order room service. There was a little plaque bolted to the desk with a QR code inviting me to scan it to order food and drink. I scanned it and got a 404 instead.
The plaque was a permanent fixture. It had clearly been there a while. At some point between it’s creation and now, someone had reorganised the ordering platform, or changed provider, or maybe thought better of the whole idea of room service, and nobody thought to check what the QR codes in the rooms were pointing to.
On the seafront in Douglas, Isle of Man, there’s a printed sign inviting tourists to scan a QR code for a heritage trail leaflet – a great idea, encouraging people to walk around the city and discover some of it’s historical sights, which aren’t always obvious. If you scan it today, you’re rewarded with “This website has been deactivated. Please contact support.” The sign is still up, it’s just pointing tourists at nothing.


QR codes took a long time to catch on. For years they were a punchline. There was a blog called “Pictures of People Scanning QR Codes” and the joke was that it had no posts. Marketers put them on everything, nobody scanned them, and the whole thing felt like a technology waiting for a use case that would never arrive.

I once scanned one at a company event, stooping down to the bottom of a roller banner where it had been printed by somebody who presumably didn’t understand what it was for. An exec sprinted over, visibly excited, to ask me what it actually did. He’d never seen anyone scan one before, not even the ones supporting the event he was there to promote.
Then COVID happened, and suddenly everyone needed touchless menus, tickets, test tracking and more. QR codes went from novelty to infrastructure almost overnight. People actually recognise and use them now.
But QR codes are opaque. If you were printing a URL as text, you’d never write out the full path – you’d put example.com and leave it at that. QR codes change that instinct – because nobody has to type them, it feels safe to encode the full deep link: the campaign URL, the dated menu path or the third-party ordering page.
And yet we print them on things intended to last for years.
This isn’t new – In 1998, Tim Berners-Lee wrote an article called “Cool URIs don’t change.” It’s still online (in it’s original location, of course)
https://www.w3.org/Provider/Style/URI
His argument was simple: a URI is a contract. When you publish one, you’re making a promise that it will keep working. Breaking that promise breaks the web.
He was writing about hyperlinks, but the principle applies even more forcefully to permanent physical signposting. A hyperlink could easily be updated. A QR code engraved in to a table cannot.
The usual suspects are easy to spot in hindsight. Dates in URLs (/menu/2024/spring/ seemed like a good idea until spring ended), CMS rebuilds where nobody set up redirects, third-party vendor platforms where the contract ends and the link dies with it and campaign thinking: a URL created for something temporary, then printed on something bolted to a wall by somebody who didn’t realise.
If you’re putting a URL on something physical, treat it as a permanent commitment. Assume the thing you’re printing will outlast the current website, the current CMS, the current marketing team, and possibly even the current ownership of the company.
The solution is a redirect layer. Don’t point your printed materials at:
example.com/menus/room-service/2024/breakfast-v2-final
Point them at:
example.com/go/room-menu
Own that short path. Make it redirect to wherever the real content lives today. When the real content moves, update the redirect. The QR code never needs to change.
This isn’t hard. It’s a single line in a web server config, or a row in a database, or a feature built into basically every URL shortener ever made. The technical implementation is trivial.
What’s hard is the organisational discipline to treat printed URLs as permanent infrastructure rather than disposable campaign assets.
Physical things and digital things exist on different timescales. An engraved plaque bolted to a table might sit there for five years – A website might be redesigned every eighteen months, or a third party service that only stays active as long as the promotional discount the salesman offered lasts…
QR codes sit exactly at this boundary, encoding digital URLs onto physical objects, and we keep getting it wrong. Every broken QR code is a small monument to someone who didn’t think about what “permanent” means.
Tim Berners-Lee’s article is worth reading in full. It’s at www.w3.org/Provider/Style/URI, where it has, of course, been since 1998.