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

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, 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. 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.

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 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 (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.

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:

  1. Always export at SVG (vector, infinitely scalable) 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. 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.

Tip Our generator automatically bumps error correction to H whenever you upload a logo, and limits the logo size to a safe 22 % of the QR area. Try it →

7. The QR is on a problematic surface or angle

QR codes prefer flat, matte, well-lit surfaces. Things that hurt scannability:

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.

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.

Generate a fresh QR code right now

Free, no sign-up, no watermark. Custom colors, logo, multiple sizes. SVG and PNG.

Open generator