Troubleshooting
Why is my QR code not scanning? A complete troubleshooting guide
A QR code that refuses to scan is almost never a mystery once you know what to check. Nearly every failure comes down to one of a handful of causes — the code is too small, too low-contrast, crowded right to the edge, blurry, glare-covered, smothered by a logo, physically damaged, or pointing at a broken link. This guide walks the fault-tree from most to least common so you can find the culprit in minutes, plus a quick checklist you can run before printing.
8 min read · Updated 24 June 2026
Start here: scan it on screen first
Before blaming the print, open the original digital file full-size on a monitor and scan it from there. If it scans cleanly on screen but not in print, the problem is physical — size, resolution, glare or damage. If it fails on screen too, the problem is in the code itself — contrast, an oversized logo, or a dead destination. This one test cuts the search in half.
1. The code is too small
The single most common cause. A QR code has a minimum legible size relative to how far away it is scanned. A reliable rule of thumb is 10:1 — the scan distance should be no more than about ten times the width of the code. A code scanned from one metre away therefore needs to be at least around 10 cm wide. On a poster read from across a room, that means a much larger code than people expect.
More data also makes a denser grid, which needs to be physically larger to stay readable. For exact sizing per medium, see our guide to QR code size for print.
2. No quiet zone
QR codes need a clear margin of empty space around them — the quiet zone — so scanners can tell where the code begins and ends. The standard calls for at least four modules (four “squares” wide) of blank space on every side. Crop the code tight, butt it against text or a border, or place it over a busy background and many scanners simply give up.
The most-missed fix
If your code worked as a file but stopped after being placed into a design, a missing quiet zone is the usual reason. Restore at least four modules of clear margin on all four sides.
3. Poor contrast or inverted colours
Scanners rely on a strong difference between the dark modules and the light background. Light-grey-on-white, pastel-on-pastel, or two similar tones will fail. Keep it high-contrast: dark code on a light background is safest.
Critically, do not invert the colours. A light code on a dark background breaks many scanners, which expect dark modules on light. If you want a dark look, keep the modules dark and the background light, not the reverse.
4. Low resolution or blur
A QR code saved at low resolution, then enlarged for print, turns into soft, fuzzy edges that scanners cannot resolve into clean squares. Export at high resolution, or better, use a vector format that scales without any loss of sharpness. Our PNG vs SVG vs PDF guide explains when to use each — for print, SVG or a high-DPI PNG is the right call.
5. Gloss, glare and reflection
A perfectly good code can be unreadable under a shiny laminate, on a glossy menu, or behind reflective glass, because the camera sees a wash of light instead of the pattern. Where you can, use a matte finish for printed codes. On screens, dim reflections and avoid placing a code where overhead light bounces straight back at the camera.
6. The logo is too big
Adding a logo is fine — QR codes use error correction (levels L, M, Q and H, recovering roughly 7%, 15%, 25% and 30% of the data respectively) so they tolerate some obstruction. But cover too much and you exceed what error correction can repair, and the code dies. Keep a logo small and centred, and use a higher error-correction level (Q or H) when you add one. See adding a logo properly for the safe limits.
Rule of thumb for logos
Keep any logo or overlay under about 30% of the code area, centred, with error correction set to Q or H — then always test-scan before you print.
7. Physical damage
Folds, creases, scratches, ink smudges or a missing corner can push damage past the error-correction threshold. The three large finder patterns in the corners are especially important — if one is obscured, scanners struggle to lock on. Reprint damaged codes rather than trying to salvage them.
8. The link itself is broken
Sometimes the code scans perfectly — and then leads nowhere. The destination URL may have a typo, the page may have moved, or, if it was a dynamic code, the redirect behind it may have lapsed. Decode the code and open the raw link in a browser to confirm it actually resolves. (Static codes made with OpenQR encode your link directly and have no redirect to break.)
| Symptom | Likely cause | Fix |
|---|---|---|
| Fails at distance, works up close | Too small | Enlarge using the 10:1 rule |
| Worked as a file, fails in a layout | No quiet zone | Add 4+ modules of margin |
| Never locks on, no read | Low contrast / inverted | Dark code on light background |
| Edges look fuzzy | Low resolution | Export high-res or use SVG |
| Fails under light, fine in shade | Gloss / glare | Use matte finish, reduce reflection |
| Stopped after branding added | Logo too big | Shrink logo, raise error correction |
| Was fine, now patchy | Physical damage | Reprint the code |
| Scans but goes nowhere | Broken / expired link | Check the URL resolves |
Pre-print checklist
- Code is large enough for the scan distance (10:1 rule).
- Quiet zone of at least four modules on all sides.
- High contrast — dark modules on a light background, not inverted.
- Exported at high resolution or as a vector for print.
- Any logo is small, centred, with Q or H error correction.
- Finish is matte where glare is a risk.
- The destination link has been opened and confirmed working.
- Test-scanned with at least two different phones before going to print.
If you are on the scanning side rather than the printing side, our guide to scanning a QR code covers the device-end fixes too.
Generate a clean, high-resolution QR codeFree, watermark-free static codes with proper quiet zones — export as SVG or high-DPI PNG.