QR Code Not Scanning? Work Through These 10 Causes in Order
A diagnostic checklist for QR codes that will not read, ordered from the most common cause to the rarest, with the fix for each.
4 min read
A QR code that does not scan is almost never a generator problem. Work down this list in order — the causes near the top account for most failures, and each one is quick to rule out.
1. The quiet zone has been cropped
The spec requires four modules of clear space on every side. It is part of the code, not a margin you can trim. Design tools crop it constantly: somebody drops the code into a layout, tightens the bounding box, and the code stops working.
Fix: regenerate with the margin included and do not crop. Keep the clear space the same colour as the light modules.
2. The colours are inverted
Scanners expect dark modules on a light background. A white code on a black background reads on some newer phones and fails on plenty of older ones. It looks striking and it halves your success rate.
Fix: dark on light. Always.
3. Not enough contrast
Even dark-on-light fails when the two tones are too close. Navy on charcoal, dark red on black, mid-grey on light grey — all of these look fine on screen and die under a camera.
Fix: keep the dark modules genuinely dark and the light ones genuinely light. If you must use brand colour, put it on the dark modules and leave the background white. Avoid red as the dark colour: many sensors see red as light.
4. It is too small for the distance
A code is readable from about ten times its own width. A 2 cm code on a poster read from 2 m away cannot work.
Fix: size from the distance, not from the available space. See how small a QR code can be.
5. Too much data for the size
A long URL with tracking parameters produces a dense grid. Printed small, the individual modules drop below the 0.4 mm that phone cameras can resolve.
Fix: shorten the link, strip the UTM parameters, or use a dynamic code so the image carries a short redirect instead.
6. It was saved as a JPEG
JPEG compression smears hard edges, and a QR code is nothing but hard edges. At small sizes the smearing merges adjacent modules.
Fix: PNG for screens, SVG for print. Never JPEG. See preparing a QR code for print.
7. It has been stretched or scaled badly
A code squeezed to fit a box becomes non-square and will not decode. A small PNG blown up to poster size becomes blurry.
Fix: keep the aspect ratio locked. Scale from SVG, or export the PNG at the final size.
8. The logo covers too much
A logo in the middle eats codewords. Past roughly 20% of the area — or anywhere near the three corner squares — recovery fails however high the error-correction level.
Fix: shrink the logo, centre it, and use level H. Details in error correction levels.
9. The surface fights the camera
Glossy laminate reflecting a ceiling light. A code curved around a bottle. Textured or dark stock. A code behind glass at an angle.
Fix: matte finish where you can, flat placement where you can, and larger codes where you cannot.
10. The code scans fine — the destination is broken
Sometimes the phone reads the code perfectly and the page 404s, or the WiFi password has changed, or the dynamic code points at a deleted link. From the user's side it looks identical to a scan failure.
Fix: open the decoded URL in a browser yourself. If you are using dynamic codes, check the destination before every print run.
A fast way to isolate it
Open the generated image on a monitor at full size and scan it from the screen. If it reads there, the code is good and the problem is in printing, placement or lighting. If it fails on screen too, the problem is in the code itself — go back to items 1, 2, 3 and 5.