QR code not scanning? Seven causes, seven fixes.
Failed scans are rarely mysterious. Work down this list in order — it is sorted by how often each cause is the culprit in the wild. (This studio's Scan Safety panel checks all seven live, before you print.)
1 · Not enough contrast
The #1 killer. Brand-coloured codes on brand-coloured backgrounds look great and scan never. You need a contrast ratio of at least 4.5:1 between module colour and background — dark charcoal on cream passes; orange on white fails. Fix: darken the foreground; when in doubt, near-black on near-white.
2 · Inverted colours
White code on a dark background reads as "arty" to designers and as "nothing" to many scanners — the spec expects dark modules on a light field. Fix: if the design demands a dark surface, put the code inside a light rounded plate on that surface.
3 · Cropped quiet zone
The 4-module clear border around the code is how scanners find its edges. Layouts that butt text, borders or photos against the code break edge detection. Fix: restore the margin — it must be the background colour, all four sides.
4 · Logo too big
Error correction can rebuild at most 30% of the code (level H) — and print wear needs a share of that budget too. A logo covering a third of the code leaves nothing. Fix: logo under ~20% of the area, error correction H, opaque backing plate. Never cover the three corner squares or the smaller alignment square.
5 · Too dense for its size
A 300-character URL in a 2 cm code gives modules a laser printer cannot form. Fix: shorten the content (shorter URL, leaner vCard) or print bigger — the size guide has the numbers.
6 · Too small for the distance
People will not walk across a room to scan a poster. The 10:1 rule: code width ≥ scanning distance ÷ 10. A code read from 3 m must be ≥ 30 cm wide. Fix: print bigger or move the code to where people already stand.
7 · The code is fine — the service behind it is dead
If the code scans but lands on an error or "upgrade your plan" page, you have a dynamic code whose redirect was switched off. See Do QR codes expire? for the full story. Fix: reprint with a static code that has no middleman.
Bonus: surface problems
- Glossy lamination + downlights = reflections that blind the camera. Matte wins.
- Curved surfaces (bottles, sleeves) distort the grid — keep codes small and flat-ish.
- Fabric stretch warps modules; print codes on stable patches.
Audit your code against all seven — live, before the print run.
Open the studio