Why Is My QR Code Not Scanning? 10 Fixes That Actually Work
If a QR code will not scan, the cause is almost always one of ten things: it is too small for the distance, the contrast is poor, there is no blank border, glare is hitting it, it is damaged, it holds too much data, the colors are inverted, it is on a curved surface, the phone camera is the problem, or the link behind it is broken. Work through the list below in order; the first few fixes solve most cases.
First, find out whether the code or the link is broken
Scan the code with two different phones, one iPhone and one Android. If neither reads it, the pattern is the problem. If a phone reads it but nothing useful opens, the pattern is fine and the destination is the problem (fix 10). This one test saves a lot of guesswork.
The ten fixes
1. Make it bigger, or scan from closer
A common rule of thumb is that a code should be about one tenth as wide as the distance it is scanned from. A code read from 1 m away should be about 10 cm wide. For a code held in the hand, 2 cm (0.8 in) is a practical minimum. If you cannot make it bigger, move the code closer to where people stand. The size calculator gives a minimum width for a given distance, and the print size guide has a table for common placements.
2. Restore the blank border
The standard calls for a quiet zone of at least four modules (the little squares) of empty space on every side. Text, photos or a box outline touching the code is the most common cause of failed scans on printed designs. Crop it less tightly.
3. Fix the contrast
Dark modules on a light background scan best. Pale colors, gradients that fade toward the background, and low-contrast brand palettes all reduce reliability. Test a grayscale copy: if the pattern looks washed out in grayscale, a scanner will struggle too.
4. Do not invert it
Light squares on a dark background are called an inverted code. Many scanners cannot read them. If your design needs a dark background, place the code on a solid light panel.
5. Remove glare
Glossy lamination, shop windows and screens throw reflections that wipe out part of the pattern. Move the code, use a matte finish, or angle the surface slightly downward. Test it under the real lighting at the real hour.
6. Check for damage and wear
Creases, scuffs, sticker overlap and sun-faded ink destroy modules. QR codes have built-in error correction (up to about 7, 15, 25 or 30 percent of the pattern can be missing, depending on the level), but past that limit the code fails. Reprint a worn code. The levels are explained in QR Code Error Correction Levels.
7. Reduce the amount of data
A code that holds a long web address, a lot of text or a full contact card is dense, with tiny squares. Shorten the link, remove optional fields from the vCard, or use a dynamic code, which holds only a short link, so the squares are larger at the same printed size.
8. Keep it flat
On a bottle, a mug or a wrinkled sleeve, the pattern bends and the grid stops being square. Put the code on the flattest part of the surface and test on the finished object.
9. Check the logo and the style
A logo in the middle removes modules. It is fine in moderation with high error correction, but a big logo, or unusual dot shapes with very thin gaps, makes decoding harder. Shrink the logo to about a fifth of the code or less and test.
10. Check the destination
If the code scans but the page does not open, test the link in a browser. To see exactly what the pattern contains, decode a photo of it with a QR code reader. Look for a typo, a page that was removed, an expired campaign, or a destination that requires a login. For a dynamic code, check that the code is still active and has not hit an expiry date or a scan limit you set earlier.
A thirty-second test routine before you print
- Print one copy at the real size on the real material.
- Scan it from the real distance with an iPhone and an Android phone.
- Scan it under the real lighting, including a window if there is one.
- Open the destination on a phone and check it loads in a few seconds.
FAQ
Why does my QR code scan on screen but not on paper?
Screens are bright and flat. Paper adds glare, ink spread and cut edges. Printing blurs fine detail, so a code that is crisp on a monitor can fail when printed small. Print a test at the final size and use vector files (SVG or PDF) when the printer accepts them.
Why does it scan on one phone but not another?
Older cameras focus more slowly and struggle with small or low-contrast codes. If one phone fails and another succeeds, you are near the edge of what the design can handle. Increase the size or contrast and test again.
Do QR codes wear out?
The pattern itself does not, but the surface it is printed on does. Sun, rain, cleaning chemicals and handling fade or scratch the ink, so labels in harsh places need durable material.