troubleshooting
Why won't my QR code scan?
A friendly fix-it checklist for QR codes that won't scan — contrast, the quiet zone, size, print quality and the other usual culprits.
Most scan failures come down to the code itself, not your phone. Built-in cameras on iPhone (iOS 11+) and Android (8+) scan QR codes natively — no app needed — so before you blame the camera, run down this list. The usual culprits are low contrast, a missing margin, or a code that’s too small or too dense.
Low contrast or inverted colours
Scanners are built to read dark squares on a light background. That’s the gold standard: black on white.
- Pale or low-contrast pairs fail. Aim for strong contrast — a rough floor of about 3:1, dark on light. (Ignore blogs quoting
4.5:1or7:1; those are web text-accessibility numbers, not QR scanning rules.) - Inverted codes (light-on-dark) are unreliable. Some modern readers flip and re-read them; many phones and apps don’t. Avoid them rather than gamble.
- Busy photo backgrounds behind the code break detection too. Keep what’s behind it plain.
dottr lets you preview the code so you can sanity-check contrast before you commit.
A missing quiet zone
That white margin around the code isn’t decoration — it’s functional. Cameras use the clear border to find the code’s edges and lock onto the three corner squares.
- Don’t crop it. Don’t butt the code up against text or artwork.
- dottr bakes the quiet zone in automatically, so as long as you don’t trim it, you’re fine.
Too much data crammed in
The more you encode, the denser the grid and the smaller each square — which is harder to read, especially small or in poor light.
- Shorten the link. A short link is typically only 20–30 characters, so the grid stays sparse and forgiving.
- Bonus: a short link means you can change the destination later without reprinting. See how short links work and static vs dynamic QR.
Printed too small for the distance
There’s no single “minimum size” — it depends how far away people scan from. As a guideline, use the 10:1 rule: the code should be at least one-tenth of the scan distance.
- Arm’s length (~20 cm)? Around 2 cm wide is a sensible floor.
- A poster read from 2 m? You want roughly 20 cm. A code read across a car park needs to be big.
Blurry or pixelated print
Scaling a small image up just enlarges the blur — it doesn’t fix anything.
- For print, export at 300 DPI at the final size (600 for large-format).
- Better still, use SVG — vector scales to any size with perfectly crisp edges. dottr exports both PNG and SVG.
Glare, curves and damage
The physical surface matters more than people expect.
- Glare on glossy or laminated stock? Tilt the phone 10–15°, or choose a matte finish.
- Curved or wrinkled surfaces distort the grid. Keep it flat.
- Dirt or damage beyond the error-correction budget kills it. Levels run L (~7%) to H (~30%). H is worth it when a logo overlaps the code or it lives outdoors — but H makes the grid denser, so it can backfire on a small or low-res print. M is a fine default for clean indoor use.
Still nothing? Check the camera
Genuinely the least common cause, but worth a try:
- Hold steady about 15–30 cm away for a second or two so autofocus locks.
- Use even, decent lighting.
Most of the time the fix is in the design, not the device. For the short version, see what makes a good QR code. Then make yours at dottr — it’s free, runs entirely in your browser, and nothing you type ever leaves it.