# Why my QR code doesn't scan — 8 common mistakes

> Published 2026-04-20 · 8 min read · By QR Code Easily
> Canonical: https://qrcodeeasily.com/blog/why-my-qr-code-wont-scan/

**TL;DR** — Most "broken" QR codes aren't broken — they're too small, too low-contrast, missing a quiet zone, or pointing at a dead URL. Generate at [qrcodeeasily.com](https://qrcodeeasily.com/), print at least 2.5 cm × 2.5 cm with high contrast, leave a white border equal to 4 modules, and always test with a real phone before distributing.

You generated a QR code. You printed it. Someone tried to scan it… and nothing happened. Here are the 8 most common reasons a QR code fails, in rough order of frequency.

## 1. The QR code is too small

The #1 reason. A QR code needs enough physical size for the camera to resolve every individual module. Use the **1:10 ratio** — the side of the QR should be at least one-tenth of the scan distance.

- Scanning from 30 cm (phone in hand): print at least 3 cm wide
- Scanning from 1 m (poster on wall): print at least 10 cm wide
- Scanning from 5 m (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 dark squares from the light background. **Black on white** is the gold standard.

- ✗ **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 near-white background.

Rule: 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**. 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.

## 4. The destination URL is broken

The QR scans, the phone opens a browser, and… 404. The QR 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](https://qrcodeeasily.com/blog/static-vs-dynamic-qr-codes/) over dynamic ones — fewer points of failure.

## 5. Print quality issues

Your design looks crisp on screen but the print shop output is fuzzy or ink bleeds between modules. Common fixes:

1. Always export as **SVG** (vector) or PNG at 2× the printed size
2. For very small QR codes (under 2 cm), use **at least 600 DPI** printer
3. Avoid printing on glossy black backgrounds — reflections confuse cameras
4. 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. Fix: **increase error correction to H (high)**, which lets up to 30% of data be obscured.

Our generator automatically bumps ECC to H whenever you upload a logo and limits logo size to a safe 22% of the QR area.

## 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
- **Direct sunlight** — overexposes the camera
- **Behind glass** — glare and extra reflection layers

## 8. The code itself is corrupted

Rare but real. If you copied the QR image and it got compressed (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.

## The 30-second test

Before you print 1,000 of anything, scan it yourself with your phone — and ask a colleague to scan it too with a different phone in real lighting. If both succeed, you're safe. If either fails, fix it now.

## Related guides

- [How big should you actually print a QR code?](https://qrcodeeasily.com/blog/qr-code-sizes/)
- [How to add a logo without breaking your QR code](https://qrcodeeasily.com/blog/qr-code-with-logo/)
- [Static vs dynamic QR codes — which one do you need?](https://qrcodeeasily.com/blog/static-vs-dynamic-qr-codes/)
