ScanMosaic

QR code not scanning? 12 reasons and how to fix each one

7 min read · Updated 5 November 2026

Most QR codes that fail do so for boring reasons, and almost all of them are visible before you print. Work through this list in order; the first six cover nine out of ten cases.

1. The code is too small for the distance

A phone needs the code to fill a fair part of its camera frame. The rule of thumb is a 10 to 1 ratio: a code scanned from 1 metre should be at least 10 cm wide. A code on a business card is read from 15 cm, so 2 cm is enough; a poster read from across a room needs 30 cm or more.

2. Not enough contrast

Scanners look for dark modules on a light background. Light grey on white, yellow on white or two mid-tones fail. Keep the contrast ratio above 4:1, and avoid putting a dark code on a dark photo. ScanMosaic checks contrast while you design and warns before you download.

3. The colours are inverted

A light pattern on a dark background scans on some phones and not others. Older Android cameras in particular expect dark modules. If you want a dark design, keep the code itself dark-on-light inside a light panel.

4. The quiet zone is missing

The blank border around the code is part of the code. It should be at least four modules wide, roughly the size of one of the big corner squares' inner dots. Designers often crop it away to fit a layout, and the code stops reading.

5. A logo or text covers too much

QR codes survive damage thanks to error correction, but only up to a point. Keep a logo under about 20% of the area, never cover the three corner squares, and raise the error correction to H when you add one. How logos and error correction work together.

6. The print is blurry or too low-resolution

A 200 px PNG stretched to poster size turns the sharp squares into grey mush. Export a PNG at 1024 px or more, or use SVG, PDF or EPS so the printer gets vectors. Glossy laminate and shiny foil also cause glare that hides modules.

7. The code is on a curved or crumpled surface

Bottles, cups and sleeves bend the pattern. Keep the code small enough that the curve across it is slight, and place it where the surface is flattest.

8. Too much content in the pattern

A long URL with tracking parameters, or a vCard with every field filled, makes a dense pattern with tiny modules. Shorten the link, remove unused fields, or use a dynamic code, which stores a short link however long the destination is.

The scan worked; the page didn't. Check the link opens on a phone over mobile data, that it isn't blocked by a login, and that it doesn't redirect through three hops. A dynamic code lets you fix the destination without reprinting.

10. The phone's camera is the problem

Some older phones need a scanner app. Smudged lenses, very low light and reflections also stop scans. Ask the person to wipe the lens and hold still 20 to 30 cm away.

11. The design was pushed too far

Tiny dots, shapes that merge, gradients that fade into the background and frames that overlap the pattern all reduce the margin for error. Pretty is fine; make sure a real decoder still reads it, which is what ScanMosaic's scan check does on every change.

12. It isn't a QR code

Data Matrix, Aztec and PDF417 look similar but need a different reader. Most phone cameras read QR only. If you need a different symbology, say so on the label.

  1. Scan the digital file first. If a phone can't read the PNG on screen, the problem is the design, not the print.
  2. Print one proof at the real size. Scan it from the real distance with two different phones.
  3. Check the destination on mobile data. Open the link on a phone that isn't on your office WiFi.
  4. Fix, then regenerate. Change one thing at a time so you know what mattered.

Frequently asked questions

Questions

Why does my QR code scan on iPhone but not Android?

Usually contrast or inverted colours. iPhone cameras are more forgiving with light-on-dark codes and low contrast. Make the code dark on light and the problem goes away on both.

Can a QR code be too big?

Only if the phone can't fit it in the frame from where people stand. A billboard code is fine from the pavement; it is not fine from 30 cm away.

Does a QR code wear out?

The pattern doesn't, but prints fade and get scratched. Error correction level H survives about 30% damage; M survives about 15%.

Make your first code in under a minute

Free, private, and checked to scan before you download.