QR Code Not Scanning? 12 Fixes That Actually Work
A QR code that will not scan is almost always a physical problem, not a data problem. The pattern either cannot be seen clearly enough, or cannot be found at all. Work through these in order — the first four fix the overwhelming majority of cases.
1. Make it bigger
The most common fault by a distance. A QR code should be at least 0.8 in square for close-range scanning, and the working rule for distance is that the code needs to be about one tenth of the scanning distance. A code read from 10 ft away needs to be roughly 12 in across. Business cards and product labels are where this goes wrong most often.
2. Restore the quiet zone
QR codes require clear margin on all four sides — about four modules wide, which is roughly the width of four of the small squares. Designers crop this constantly to make a layout fit. Without the quiet zone the scanner cannot locate the code's boundary and will not even attempt to read it.
3. Increase the contrast
Dark pattern on a light background, with real contrast between them. Light grey on white fails. So does dark blue on black. If you are placing a code over a photograph, put it on a solid panel instead.
4. Do not invert the colours
Most scanners expect a dark pattern on a light background. A light code on a dark background — visually striking, and popular in design work — fails on a significant proportion of phones. We tested this while building a styled generator and found an inverted pair still failing at a contrast ratio of 18.9 to 1, so the problem is not contrast, it is the assumption decoders make. See what we found testing logo QR codes. If the brand demands it, test on several devices before committing to print.
5. Check the destination still exists
If the code scans and produces a URL but nothing loads, the code is fine and the page is gone. If it was a dynamic code from a paid service, check whether the subscription lapsed — that kills every code from that account simultaneously.
6. Kill the glare
Glossy laminate, acrylic and screens all bounce light straight back into the camera. Matte finishes scan far more reliably. If the code is on a screen, raise the brightness and tilt to avoid reflections.
7. Get the distance right
Too close is as bad as too far. Phone cameras cannot focus below a few inches, and the whole code plus its quiet zone must be inside the frame. Start further back and move in slowly.
8. Let the camera focus
Hold steady for a second. Tap the screen on the code to force a focus. In dim light the camera hunts and never locks — add light rather than moving closer.
9. Raise the error correction level
QR codes carry redundancy at four levels, from roughly 7 per cent recovery up to 30 per cent. If a code lives somewhere it will get scratched, wet or partly covered, generate it at the highest level. This makes the pattern denser, so combine it with a larger print size.
10. Look for physical damage
Fading, scratches, a sticker across a corner, a fold through the middle. The three large squares in the corners are position markers — damage to those is fatal, because the scanner uses them to orient the code before reading anything.
11. Try a different scanner
Native camera apps are usually good but not universally so, particularly on older Android builds. If one phone fails, try another before concluding the code is broken. Checking with the safe QR code scanner also shows you the destination URL before you open it, which is worth doing with any code you did not create yourself.
12. Regenerate it from the source data
If nothing else works, make a new one. Codes that have been resized in image editors, screenshotted, compressed as JPEGs or scaled non-proportionally accumulate artefacts that break the module grid. Always generate at final size as PNG or SVG rather than scaling a small JPEG up.
Test before you print at volume
Print one proof on the actual material, put it where it will live, and scan it from where a real person will stand, on more than one phone. A code that works on your monitor can fail completely on matte vinyl under a car-park light.
Standards and references
Scanning failures diagnosed in this guide map to specific clauses in ISO/IEC 15415 (Bar code print quality test specification): quiet-zone violations (Section 7.8.6), damage to finder patterns (Section 7.3), and contrast failures (Section 7.8.1). Error correction levels (L 7%, M 15%, Q 25%, H 30% of code recoverable) are defined in ISO/IEC 18004 Table 7.
Related: do QR codes expire · whether QR codes can be colored · a QR code size chart · all QR code tools
Find your fix by symptom
Twelve fixes is a lot to read while a code fails in front of a customer. Match the symptom first, then jump straight to the fix that covers it.
| Symptom | Likely cause | Where to go |
|---|---|---|
| Camera never reacts to any code | QR detection switched off on the phone | Phone settings section below |
| Camera focuses but nothing triggers | Inverted colours or a dead quiet zone | Quiet zone and inversion fixes above |
| Scans on iPhone but not Android | Inversion handling or low error correction | Inversion and error correction fixes |
| Scans on screen, fails in print | Too much data for the print size | Size fix plus the URL length section below |
| Scans up close, fails across the room | Size to distance ratio is off | Placement table below |
| Code scans but the page is dead | Destination problem, not a scan problem | Destination fix and do QR codes expire |
| Code looks soft or smudged | Print blur, glare, or focus | Glare and focus fixes; print blur has its own causes and fixes guide |
| Worked for months, then stopped | Physical wear or an expired dynamic link | Destination and damage fixes |
When the camera never reacts: phone settings to check
If the camera ignores every code, including a known good one shown on another screen, the problem is the phone, not the print.
iPhone
Open Settings, tap Camera, and check that Scan QR Codes is on. For a stubborn code, use the dedicated Code Scanner instead: add it as a Control Center control (through Settings, then Control Center on iOS 17 and earlier, or straight from Control Center's own edit screen on iOS 18), then open Control Center and tap its icon.
Android
On Samsung phones, open the Camera app, tap the settings gear, and confirm Scan QR codes is on. On any Android phone, Google Lens is the fallback that reads codes the stock camera misses: open Lens from the Google app or your camera and point it at the code.
Why a long URL fails at a small size
QR codes grow denser as the data grows. A URL around 115 characters generated at error correction level H needs a version 10 code, a 57x57 module grid. Printed at 0.8 in, each module lands near 0.36 mm, and phone cameras miss modules that small in normal light. Cut the same link to 34 characters or fewer and the data fits a version 4 code, a 33x33 grid. At the identical 0.8 in size each module is now about 0.6 mm, roughly 70 percent bigger, and scan rates jump without touching the layout. The rule: a shorter URL beats a bigger print.
Print size by placement
The 1:10 size to distance ratio turns into these working minimums. They assume a version 4 or smaller code with a full quiet zone.
| Placement | Typical scan distance | Minimum code size |
|---|---|---|
| Business card | 4 to 8 in | 0.8 in |
| Flyer or menu | 12 in | 1.2 in |
| Shelf label | 10 in | 1 in |
| Window poster | 30 in | 3 in |
| Wall poster | 6 ft | 7.5 in |
| Billboard or vehicle wrap | 25 ft | 30 in |
No working camera? Decode from an image instead
When the camera is cracked, locked down by a work profile, or simply refuses, you can still read the code from a picture. Screenshot or photograph it, then upload the image to the scan a QR code without a camera tool, which decodes it in the browser. For WiFi codes, the WiFi QR screenshot scanner pulls the network name and password straight out of the image. On Android, opening the picture in Google Photos and tapping the Lens button does the same job.
