Design
Put a short URL next to every QR code
Print a short, readable URL directly under every QR code. It rescues users with broken cameras, screen-reader users, and anyone photographing the page for later, and it costs one line of type. Keep it under about 25 characters, lowercase, with no query strings: a URL nobody can retype is not a fallback.
Belt and braces, for one line of type
A QR code is the fast path; the printed URL under it is the path that always works. The pair costs a single line of typesetting and rescues a surprising range of readers:
- Anyone whose scan fails: cracked lens, dim light, a code damaged in print.
- Screen-reader and low-vision users, for whom the URL is the only usable channel on paper, the print equivalent of alt text.
- People who photograph the poster to deal with later; the URL survives in the photo at sizes where the code no longer decodes.
- The cautious. A visible destination lets people judge where the code leads before scanning, the exact advice security guides give (see are QR codes safe).
- Feature-phone and desktop readers who meet the design somewhere a scan is impractical.
What a good fallback URL looks like
The fallback must survive being retyped from memory of a photo, on a phone keyboard. That sets hard requirements:
| Property | Target |
|---|---|
| Length | ≤ ~25 characters including domain |
| Query strings | none |
| Case | all lowercase |
| Ambiguous characters | avoid 0/O and 1/l/I collisions |
| Depth | one path segment, e.g. example.com/menu |
The arithmetic is unforgiving: a 68-character campaign URL with
UTM parameters takes half a minute of error-prone phone typing;
example.com/spring takes a few seconds. If your canonical URL is long, set up a short
redirect path on your own domain first, the reasoning and the pitfalls of third-party
short URLs are covered in
shortening a URL before making a QR code.
One honest trade-off: teams often put UTM parameters in the QR payload while printing the clean URL, as described in adding UTM parameters to a QR code. That works, but typed visits then arrive untagged: your scan analytics will undercount by whatever fraction of readers typed instead of scanned.
Laying the pair out
Set the URL directly beneath the code, centred with it, outside the quiet zone but inside the same visual block, so eye and camera treat code, label and URL as one unit. Sizing follows the same distance logic as the code: an x-height of 1.5–2 modules keeps the URL readable at roughly the distance the code scans: the derivation is in typography pairing. Choose a face where 0/O and 1/l are distinguishable; a URL that cannot be read accurately cannot be typed accurately.
When the URL should win outright
If the audience is at a desk, on the same device as the content, or the destination is easy to say aloud, the URL alone may be the better design and the code is clutter: the cases are catalogued in when not to use a QR code. The fallback pattern is for genuinely cross-device, physical-world placements: posters, packaging, menus, signage. There, run both, and verify the code decodes before anything goes to print.
FAQ
Should I put the URL under a QR code?
Yes, whenever the design is printed or displayed in public. It costs one line of type and provides the only access path for failed scans, screen-reader users, people photographing the page, and anyone who wants to see the destination before scanning.
How long should the fallback URL be?
Under about 25 characters including the domain, with no query strings and no mixed case. The test is whether someone can retype it on a phone keyboard from memory of a photo without error.
Does a printed URL hurt QR tracking?
If the QR payload carries UTM parameters and the printed URL is clean, typed visits arrive untagged, so scan analytics undercount slightly. Most teams accept this; the alternative (printing the tagged URL) makes the fallback effectively untypeable.
Where exactly should the URL go?
Directly below the code, centred, outside the four-module quiet zone but within the same layout block. Above the code also works; beside it tends to separate the pair visually and wastes width in narrow layouts.
Try it: free, no signup
Related
- QR code design best practices: seven rules ranked, The seven design rules that decide whether a styled QR code scans, ranked by how often breaking them kills codes, with the number behind each rule.
- Typography pairing for QR codes, Match the CTA label to the code: an x-height of 1.5–2 modules reads at the distance the code scans. Weights, placement and URL typography.
- Alt text and screen readers for QR codes, How to write alt text for QR code images. State destination and action, never just "QR code", plus aria patterns and the clickable fallback screen readers need.
- How to shorten a URL before making a QR code, A 78-char URL needs version 5; a 28-char link needs version 3: modules 27% bigger at print size. But a shortener in your ink is a dependency forever.