Checks on the scanning side
First, focus: holding the camera too close blurs the code. Keep 15–30cm of distance so the QR fills about a third of the frame. Second, lighting: dim light or glare off a laminated surface breaks recognition — tilt slightly to dodge reflections.
Third, wipe the lens; smudges are a surprisingly common culprit. Fourth, if the QR is a blurry low-resolution image on screen, download the original and use this site's image-upload scan — it reads more accurately than a live camera.
Creator-side cause 1: contrast and color
QR codes need a light background and a dark code. Weak contrast — like a white code on yellow — keeps scanners from separating the modules. Keep the brightness gap large.
Inverted colors (light code on dark background) fail entirely on some scanners. Unless the design truly demands it, avoid inversion.
Creator-side cause 2: size, quiet zone, damage
Too small a print (under 1×1cm) is hard for ordinary cameras. A good rule: the QR's width should be about 1/10 of the scanning distance — a poster scanned from 1m needs a 10cm code.
A QR needs empty margin around it (the 'quiet zone'). Decorations or text hugging the code sharply reduce read rates. For codes likely to be creased or partially covered, regenerate with a higher error correction level (Q/H).
If it still fails
Always test-scan with your own phone after creating a QR — especially if you added a logo or changed colors. Test before distributing.
For someone else's stubborn QR, try this site's image-upload scan: it analyzes more precisely than a camera preview and often reads low-quality codes.