Most QR codes that won’t scan have one of a few problems: too little contrast, inverted colours (light code on dark background), no blank margin around the code, too small for the distance, or too much content for the size. If the phone reads the code but nothing useful happens, the problem is the content: a typo in the link, a page that’s offline or a Wi-Fi password that has changed.
There are two different kinds of failure, and it helps to know which one you have:
- The phone doesn’t react at all. The camera can’t read the pattern. That’s a visual problem: contrast, size, margin, damage.
- The phone reads it, but the result is wrong. A broken page, a wrong number, a Wi-Fi network that won’t join. That’s a content problem.
Start by checking what the code really contains. Take a photo or screenshot and drop it into a QR code reader. If it decodes there, the pattern is fine and you can skip straight to the content problems below.
Problems that stop the camera reading it
1. Not enough contrast
Scanners look for a clear difference between dark and light. Light grey on white, navy on black, or a pastel brand colour on cream may look stylish but often fail. Keep the code dark and the background light, with strong contrast. If in doubt, black on white always works.
2. Inverted colours
A white code on a black background is a “negative” QR code. Some phone cameras read it, many scanner apps and older phones don’t. If you’re designing for everyone, keep the code dark on light.
3. No quiet zone
The blank border around the code is part of the code. Text, a frame or a photo placed right against it confuses the scanner. Leave at least four modules of clear space on every side.
4. Too small for the distance
A 2 cm code on a poster across the room will never scan. Use the 10:1 rule: the code should be at least one tenth of the scanning distance. Our QR code size guide has a table for common uses.
5. Too much data
Long URLs with tracking parameters, full contact cards with addresses, or paragraphs of text create a dense pattern of tiny squares. Shorten the link, remove optional fields, or make the code larger.
6. A logo that covers too much
Error correction lets a code survive a logo, but only up to a point. Use error correction level H, keep the logo to about a fifth of the code width, and never cover the three big squares in the corners.
7. Blurry or stretched print
A small PNG enlarged for a banner turns sharp squares into soft blobs. A code stretched in one direction (not resized proportionally) becomes unreadable. Use SVG or PDF for print and always scale proportionally.
8. Glare, curves and damage
Glossy lamination under bright lights, a code wrapped around a narrow bottle, a scratched sticker or a fold through the middle can all break a scan. Matte finishes, flatter positions and a bigger code help.
Problems with what’s inside the code
9. A typo in the link
One missing letter sends everyone to an error page. Check the decoded link carefully, character by character, before printing.
10. The page moved or the domain expired
Website redesigns change addresses. Renewals get forgotten. If the code points to a page that no longer exists, the code itself is fine but useless. Keep a stable address for QR links and redirect it when things move.
11. The free plan ended
If the decoded link belongs to a QR service rather than your own website, it is a dynamic code and may now show an upgrade page. Our guide to static vs dynamic QR codes explains why, and how to avoid it next time.
12. Wi-Fi codes with the wrong details
Wi-Fi codes are fussy. The network name and password are case-sensitive, the security type must match the router (WPA/WPA2/WPA3 or WEP), and if the password has been changed, the old code no longer works. Regenerate it with the current details. The Wi-Fi QR guide covers the common traps.
It might be the phone
Before blaming the code, try another phone. Old Android phones may need Google Lens or a scanner app rather than the plain camera. Clean the lens, hold the phone steady about 15–30 cm away for a small code, and give it a second to focus. Very low light is a problem for every camera.
Pre-print checklist
| Check | Good | Risky |
|---|---|---|
| Colours | Dark code, light background | Light code on dark, pastel on pastel |
| Margin | 4+ modules clear on all sides | Text or artwork touching the code |
| Size | Distance ÷ 10, at least 2 cm | Tiny code on a wall poster |
| Content | Short link, few fields | Long URL with many tags |
| File | SVG or PDF for print | Small PNG enlarged |
| Test | Printed proof, several phones | Only tested on screen |
Frequently asked questions
Why does my QR code scan on screen but not when printed?
Can a coloured QR code work?
Why won’t my phone scan an inverted QR code?
My QR code scans but the page doesn’t open. Why?
How do I check what a QR code contains?
See what your QR code really contains
Upload a photo or screenshot and read the code on your device, without opening the link.
Open QR Code Reader