Why QR Codes Stop Scanning
A QR code is a matrix of dark and light modules arranged in a specific pattern. Scanners decode that pattern by detecting where dark modules begin and end. Anything that blurs that distinction — low contrast, physical damage, incorrect colors, too-small a print — makes the scanner's job impossible.
The good news: every scanning failure has a fixable cause. The most common ones break down into eight categories:
- 1.Low contrast — foreground and background colors are too similar for a camera to distinguish modules.
- 2.Too small — the code is printed smaller than the 2cm minimum, or smaller than 1/10th of the scanning distance.
- 3.No quiet zone — design elements crowd the border of the code, removing the required blank margin.
- 4.Blur or pixelation — low-resolution print, inkjet at low DPI, or exporting at 72 PPI instead of 300 PPI for print.
- 5.Inverted colors — light modules on a dark background, which most phone cameras cannot read reliably.
- 6.Physical damage — scratches, creases, ink smears, or water damage that exceed the error correction level baked into the code.
- 7.Broken destination URL — the code scans fine but the linked page returns a 404 or the URL was mistyped at creation.
- 8.URL too long — very long URLs create extremely dense codes that become hard to scan, especially at small sizes.
See our full guide to QR code best practices for size, placement, and testing rules that prevent these problems from the start.
How to Fix a QR Code That Won't Scan
Identify the root cause
Check contrast first — the foreground must be dark on a light background. Then check size using the 10:1 rule (code width should be 1/10th of scanning distance, minimum 2cm). Finally check that a quiet zone of at least 4 modules exists on all sides.
Verify the destination URL
Scan the QR code and check whether it opens a URL error or a real page. If the URL is broken, mistyped, or the destination was deleted, you need to generate a new QR code with the corrected link.
Re-generate with corrected settings
Go to PDF.it's QR Code tool, enter the correct URL or data, set error correction to Level Q or H for printed materials, ensure the foreground is dark and background is light, and download as SVG for print or PNG for digital use. Test with two different phones before distributing.
Error Correction Levels Compared
Error correction is the most important setting for printed QR codes. It determines how much of the code can be damaged, dirty, or obscured before scanning fails.
| Level | Recovery | Best For |
|---|---|---|
| L (Low) | 7% damage | Digital-only use (screens, emails) — no physical wear |
| M (Medium) | 15% damage | Standard print (flyers, brochures, business cards) |
| Q (Quartile) | 25% damage | Outdoor signs, stickers, high-wear environments |
| H (High) | 30% damage | Logo overlay, product packaging, maximum durability |
Higher error correction creates a denser code. If you use Level H, print the code larger than usual — at least 3cm x 3cm for close-range scanning — to keep the modules readable.
More Ways to Improve Scan Reliability
- ✓ Use SVG for print, not PNG at 72 PPI. When you create your QR code, download it as SVG for any printed material. SVG is a vector format — it scales to any size without pixelation, so your modules stay sharp at 300 DPI and above.
- ✓ Shorten your URL before encoding. Long URLs produce high-density codes that are harder to scan at small sizes. Use a shorter URL or a URL shortener to reduce the amount of data encoded. Less data means a simpler pattern and faster scanning.
- ✓ Add a white box on dark backgrounds. If your design has a dark background, never place the QR code directly on it. Instead, place the code inside a solid white rectangle with at least 4 modules of padding. See our guide to QR code types for design considerations per format.
- ✓ Avoid reflective laminates and curved surfaces. Glossy lamination creates glare that washes out the dark modules. Curved surfaces (bottles, pillars) distort the module grid. Use matte finishes for laminated prints and increase the code size on curved surfaces to compensate for distortion.
Troubleshooting Specific Scanning Problems
Phone camera focuses but never reads the code
This is almost always a contrast or size problem. The camera can detect something square but cannot decode the pattern. Check that the foreground is at least 70% darker than the background — brand colors that look different to the eye can still be too similar for a camera sensor. If the code is under 2cm, it is too small. Re-generate at a larger size with a simple black-on-white color scheme. Use the QR code size guide to match dimensions to your expected scanning distance.
QR code scans on one phone but not another
Different phones have different camera algorithms. Older Android phones with lower-resolution cameras struggle with dense, low-contrast, or small codes. The fix is to lower the data density (shorten the URL), increase contrast, print larger, or increase the error correction level to H. Always test with at least two phones — an iPhone and a mid-range Android — before printing at scale.
Code scans correctly but opens a broken page
The QR code is working — the problem is the destination. Open the URL manually in a browser to confirm what is happening. If the page returns a 404, the URL was deleted or moved after the code was printed. If you see a redirect loop or a parked domain, the URL shortener service expired. The only fix is to generate a new QR code with the correct, working URL. Before printing, always verify the destination loads correctly on a separate device.