A QR code that won't scan is almost always one of a handful of problems, and most can be fixed in a few minutes. Work through this checklist from the top. The most common causes come first.
1. Not enough contrast
Scanners look for dark dots on a light background. Light gray, yellow, pastel, or mid-tone dots often fail, especially in dim light.
Fix: make the dots darker (navy, black, dark green, deep red) and the background white or very light. Squint at it: if the pattern doesn't jump out, phones will struggle too.
2. The colors are inverted
Light dots on a dark background look stylish but many phone cameras can't read them.
Fix: swap them. Dark dots, light background.
3. The quiet zone was cropped
Every QR code needs a blank margin around it so the scanner can find its edges. Designers often trim it off or place the code right up against a photo, border, or text.
Fix: leave a clear margin on all four sides, roughly the width of four of the small squares in the code. Codes from QRforLess include this margin; keep it when you place the file.
4. It's printed too small
A tiny code on a business card might work up close but fail for anyone with an older phone.
Fix: print it at least 2 cm (0.8 inch) wide, and bigger the further away people will be. See what size to print a QR code.
5. Too much data
The longer the link or text, the more dots the code needs and the smaller each dot becomes. Long tracking links can make a code dense and hard to read.
Fix: use a dynamic code. It stores a short link instead of your long one, so the pattern stays simple. More in static vs. dynamic.
6. The logo is too big or in the wrong place
A logo works because of error correction, but only up to a point. Covering too much of the code, or the three large corner squares, breaks it.
Fix: keep the logo centered and modest in size. The generator sizes it safely by default. Tips in QR codes with your logo.
7. Blurry or stretched image
A low-resolution PNG enlarged for a poster, or an image squashed to fit a space, turns sharp squares into fuzzy blobs.
Fix: use the SVG download for print. It stays sharp at any size. Never stretch a code in one direction only.
8. Glare, curves, and surfaces
- Glossy lamination and shiny packaging reflect light right where the camera looks. A matte finish scans better.
- Codes on bottles and cups curve away from the camera. Print them a bit larger, or place them on a flatter part.
- Codes behind glass, such as shop windows, pick up reflections. Test at different times of day.
9. The code scans but the link is broken
Sometimes the code is fine and the destination isn't: a deleted page, a typo in the link, a Google Drive file that needs permission, or a site that's down.
Fix: open the link directly on a phone. If you used a dynamic code, you can point it at a working page without reprinting.
Need a fresh code? The QRforLess generator is free, with no watermark and no sign-up.