QR Code Not Scanning? 10 Common Problems and How to Fix Them
Table of Contents
- First: Find Out Whether the Code or the Link Is Broken
- 1. The Code Is Printed Too Small
- 2. Not Enough Contrast
- 3. Inverted Colors
- 4. The Logo Covers Too Much
- 5. Missing Quiet Zone
- 6. Blurry or Pixelated Output
- 7. Curved, Glossy, or Damaged Surface
- 8. The Destination Link Is Dead
- 9. Too Much Data in the Code
- 10. It's the Scanner, Not the Code
- Pre-Print Testing Checklist
- Frequently Asked Questions
You printed 500 flyers and the QR code won't scan. Before reprinting anything, work through this list - QR failures almost always come down to one of ten causes, and most are fixable in minutes with a regenerated code.
First: Find Out Whether the Code or the Link Is Broken
There are two completely different failure modes, and the fix depends on which one you have:
- The code won't decode at all - the camera never reacts, no notification appears. This is a visual/print problem (causes 1-7 below).
- The code decodes but nothing useful happens - a browser opens an error page or a dead link. This is a data problem (causes 8-9).
To tell them apart in 10 seconds: upload a photo or the original artwork to the free QR code scanner. If it returns the encoded value, the pattern is fine and your problem is the destination. If it returns nothing, the pattern itself is the problem.
1. The Code Is Printed Too Small
The most common print failure. Phone cameras need each module (the little squares) to span several pixels in the captured image.
The 10:1 rule: minimum code width = scanning distance ÷ 10.
| Placement | Typical scan distance | Minimum code size |
|---|---|---|
| Business card, menu, flyer | 25–30 cm | 2.5 x 2.5 cm (1 in) |
| Product packaging | 30–50 cm | 3–5 cm |
| Poster in a hallway | 1–2 m | 10–20 cm |
| Billboard / storefront window | 3 m+ | 30 cm+ |
Fix: regenerate the code at a high resolution with the QR code generator and scale it up in the layout. Never enlarge a small raster image of the code - export it large in the first place.
2. Not Enough Contrast
Scanners binarize the image - every pixel becomes either "dark" or "light." A pastel-on-white or gray-on-beige code can fall entirely on one side of that threshold.
Fix: keep at least a 40% brightness difference between the code and its background. Dark navy, charcoal, or brand-dark colors on white all work; yellow, light gray, or light pastels on white do not.
3. Inverted Colors
The QR spec assumes dark modules on a light background. A white code on a black T-shirt looks striking, but many scanner apps - including some default camera apps - refuse inverted codes.
Fix: if your design demands a dark background, place the QR code inside a white rounded rectangle and use a dark code inside it. You keep the look and the reliability.
4. The Logo Covers Too Much
Logos work because of error correction - level H codes survive up to 30% damage. But every bit of logo "spends" part of that budget, and so does print wear, glare, and dirt.
Fix: keep the logo to 20% of the code area or less, centered, never touching the three large corner squares (finder patterns). Generate at error correction level H. Our walkthrough on creating QR codes with custom logos covers the exact settings.
5. Missing Quiet Zone
The quiet zone is the empty margin around the code - the spec requires at least 4 modules of clear space on every side. Designers routinely crop it off or run text and borders right up against the code, which prevents scanners from locating the code at all.
Fix: leave a white margin roughly the width of one finder square (the corner box) on all four sides. No text, borders, or graphics inside it.
6. Blurry or Pixelated Output
Common when a tiny PNG (say, 200x200) is enlarged for print, or when the code is screenshotted, recompressed, and re-exported a few times. Soft module edges defeat the scanner's binarization.
Fix: export the code at print resolution from the start - at least 1000x1000 px for small print, more for posters. Avoid re-saving as JPG; JPG artifacts blur module edges (PNG keeps them sharp - see PNG vs JPG).
7. Curved, Glossy, or Damaged Surface
Codes wrapped around bottles or mugs distort geometrically; glossy lamination throws specular glare that wipes out part of the pattern; weathered outdoor stickers lose modules.
Fix: place codes on flat areas of packaging where possible, prefer matte finishes, size up the code on curved surfaces, and bump error correction to H for anything outdoors.
8. The Destination Link Is Dead
The code decodes fine - to a URL that 404s, a shortener that shut down, or a "dynamic QR" trial that expired. This is the classic "QR code expired" complaint: static codes never expire, destinations do.
Fix: decode the code with the QR scanner to see the exact URL, then fix or redirect that URL. For print campaigns, encode a domain you control (e.g. yoursite.com/menu) rather than a third-party short link, so you can change the destination server-side without reprinting.
9. Too Much Data in the Code
QR capacity is real but finite (about 3 KB binary). A 500-character URL with tracking parameters produces a dense forest of tiny modules that's hard to scan at small sizes - density and physical size trade off directly.
Fix: encode short URLs. Strip tracking parameters or move them server-side with a redirect. Fewer characters = chunkier modules = scans from farther away on smaller prints.
10. It's the Scanner, Not the Code
Sometimes the code is perfect. Old Android camera apps without native QR support, cracked lenses, low-light conditions, or scanning from an extreme angle can all fail on a valid code.
Fix: test on at least two devices (one iPhone, one Android) before blaming the artwork. If a printed code resists a live camera, photograph it and upload the photo to the image-based QR reader - if that decodes it, the pattern is valid and the issue is capture conditions.
Pre-Print Testing Checklist
- Generated at error correction level H (if using a logo) with the QR generator
- Exported as PNG at 1000px+
- Dark code on light background, 40%+ contrast
- Quiet zone intact on all four sides
- Logo ≤ 20% of area, finder patterns untouched
- Decoded with the QR scanner - data is exactly right
- Test-scanned on two phones, from the real-world distance
- Printed proof scanned once more before the full run
Frequently Asked Questions
Quick recap: verify the code with the scanner, fix the specific cause, regenerate at high resolution with the generator, and test on real devices before printing. For background on how the format works, read the Complete Guide to QR Codes.