Why my QR code doesn't scan — 8 common mistakes
You generated a QR code. You printed it. Someone tried to scan it… and nothing happened. We've helped users debug thousands of these. Here are the 8 most common reasons a QR code fails to scan, in rough order of frequency.
1. The QR code is too small
This is the #1 reason. A QR code needs enough physical size for the camera to resolve every individual module. The reliable rule of thumb is the 1:10 ratio — the side of the QR code should be at least one-tenth of the scan distance.
- Scanning from 30 cm (a phone in hand): print at least 3 cm wide
- Scanning from 1 m (a poster on a wall): print at least 10 cm wide
- Scanning from 5 m (a billboard): print at least 50 cm wide
If in doubt, go bigger. There's no penalty for a QR code being too large.
2. Low contrast between dark and light modules
The scanner needs to clearly distinguish the dark squares from the light background. Black on white is gold standard. Anything less contrasty has to be tested carefully.
✗ Doesn't reliably scan
Light grey on white • Yellow on white • Inverted (white on black for some readers) • Photo background✓ Always scans
Black on white • Dark navy on cream • Forest green on light green • Any dark color on a near-white backgroundRule: if you can't read black text comfortably on the same color combination, the QR code probably won't scan reliably either.
3. Missing quiet zone (border)
Every QR code needs a quiet zone — a margin of light/blank pixels around it equal to at least 4 modules (where a "module" is one of those small squares). Without it, the scanner can't tell where the code ends.
Common offender: someone designs a flyer where text or an image hugs the QR too tightly. Either give the QR breathing room, or generate it with the margin baked in (our generator does this automatically).
4. The destination URL is broken
The QR scans, the phone opens a browser, and… 404. The QR code itself works fine; the problem is the link inside.
- The page got renamed or moved
- The redirect chain breaks somewhere
- The bit.ly / dynamic-QR service expired or got rate-limited
- The site requires sign-in and your audience doesn't have an account
This is one of the strongest arguments for static QR codes over dynamic ones — fewer points of failure.
5. Print quality issues
Your design looks crisp on screen. The print shop output is fuzzy, ink bleeds between modules, or the whole thing has registration errors. Common fixes:
- Always export at SVG (vector, infinitely scalable) or PNG at 2× the printed size
- For very small QR codes (under 2 cm), use at least 600 DPI printer
- Avoid printing on glossy black backgrounds — reflections confuse cameras
- Curved or warped surfaces (cans, bottles) need bigger QR codes than flat surfaces
6. Embedded logo is too big
Logos in the center of QR codes look great, but if the logo covers more than ~25 % of the area, the code becomes unreadable. The fix is to increase the error correction level to H (high), which lets up to 30 % of the data be obscured before the code fails.
7. The QR is on a problematic surface or angle
QR codes prefer flat, matte, well-lit surfaces. Things that hurt scannability:
- Reflective surfaces — glass cabinets, glossy laminate, screens behind plexiglass
- Curved surfaces — cans, bottles, mugs (compensate with bigger size)
- Sharp angles — pasted at 45° on a wall (some scanners cope, many don't)
- Direct sunlight — overexposes the camera
- Behind glass — adds glare and extra reflection layers
8. The code itself is corrupted
This one is rare but real. If you copied the QR image and it got compressed (e.g., screenshotted, then re-screenshotted, then JPEG-saved), modules can blur into one another. Always work from the original SVG or PNG generated by the tool.
Generate a fresh QR code right now
Free, no sign-up, no watermark. Custom colors, logo, multiple sizes. SVG and PNG.
Open generator