GotoNow

Five ways QR codes quietly fail in print (and the fixes)

A QR code never fails on your monitor. It fails on a poster across the room, on a glossy cup under warm café lighting, on a box photographed by a phone with a smudged lens. The good news: print failures are boringly predictable. Here are the five we see constantly, in roughly the order they bite.

1. Printed too small for the scanning distance

The workhorse rule of thumb: a code should be about one tenth of the distance it'll be scanned from. Scanned at arm's length (~25 cm)? 2.5 cm wide is the floor. Meant to be scanned from across a lobby at 3 m? You need a code roughly 30 cm wide — which is why QR codes on billboards along highways are mostly decoration.

Fix: decide the scanning distance first, size the code from it, and test with the worst phone in the office, not the best.

2. Not enough contrast — or inverted colors

Scanners want dark modules on a light background. Brand-colored codes can work, but light-gray-on-white, gold-foil-on-cream, and anything subtle tends to die in real lighting. Inverted codes (light modules on dark) fail outright on a surprising number of readers.

Fix: keep strong dark-on-light contrast. If the brand palette must appear, color the dark modules with your darkest brand color and leave the background near-white. (Our design tools enforce a contrast floor for exactly this reason.)

3. No quiet zone

The empty margin around a code isn't wasted space — it's how the scanner finds the edges. The spec asks for a border of at least four modules of clear space on every side. Designers crop it to tuck the code against artwork, and scan rates fall off a cliff.

Fix: protect the margin like a logo clearspace rule. If the layout feels cramped, shrink the code slightly rather than the quiet zone.

4. The destination died

The cruelest failure, because the code itself scans perfectly — straight to a 404. Sites get redesigned, PDFs get re-uploaded under new names, campaigns end. The pattern on the paper is immortal; the URL behind it usually isn't.

Fix: for anything with a real print run, use a dynamic code so the destination can follow the website around. If you must print static, calendar a quarterly scan-check of your own materials. Future-you will be grateful.

5. No human fallback

Some fraction of people can't or won't scan: older phones, accessibility needs, a camera that refuses to focus on laminate glare. A bare mystery square also tells no one why they should scan it.

Fix: print two small things near every code — a label ("Scan for today's menu" beats silence) and the short address itself in plain text, so anyone can type it. This is another quiet argument for short forwarding addresses: goto-now.link/menu is typeable; your CMS's 90-character permalink is not.

The pre-press checklist: sized for the distance · dark on light · four-module quiet zone · destination you can change (or a calendar reminder to check it) · label + typeable address underneath. Five lines, and your code will outlive the campaign.