How to Make a QR Code Scannable
6 min readqr-codes, design, mobile-marketing
You print a QR code on a poster. A customer points their phone at it. Nothing happens. They wait. Try again. Give up.
The code itself might be perfect. But it's invisible to their camera — not because of what's in the code, but because of everything around it.
This happens more often than you'd think. A business spends time creating a QR code, even designing it to look nice, then ruins it with one small choice. And because QR codes fail silently — the phone just doesn't scan — they never know what went wrong.
Let's fix that. Making a QR code scannable isn't mysterious. It's about understanding what cameras actually see.
The Physics of Scanning
A QR code is a language. Your phone's camera is the translator. But like any translation, it only works if the original is legible.
Think of it like trying to read a book in dim light. The words are there. But your eyes can't distinguish them from the page. Add light — suddenly readable.
For QR codes, the "light" is contrast. Your camera needs to see a clear difference between the dark squares (the code itself) and the light background.
Contrast Is Everything
The ideal QR code has black squares on a white background. This creates maximum contrast — like black ink on white paper.
But here's what kills scanability: placing a dark code on a dark background. Navy blue on charcoal. Brown on dark wood. Your camera's sensor can see the squares are there, but it can't tell where one ends and another begins. It's like reading dark gray text on a black screen.
The fix is simpler than redesigning your whole graphic. Make sure the background is at least 30% lighter than the foreground. If your code is dark blue, the background should be light gray or white. If your code is maroon, cream-colored background works.
White-on-black is just as scannable as black-on-white, by the way. The contrast is what matters, not the direction.
Size Matters, But Not How You Think
A QR code that's 1 inch by 1 inch is scannable from about 3 feet away with a modern phone. That same code printed at 0.25 inches? Your phone would need to be almost touching it.
But here's the thing: people don't scan from arbitrary distances. They scan from wherever they're standing. So the question isn't "Is this big enough?" It's "How far away will people be when they try to scan this?"
A QR code on a billboard needs to be larger than one on a business card. A code on a product package needs to be bigger than one on an email. Match the size to the distance.
The minimum practical size is about 0.5 inches square for close-range scans (arm's length). For anything farther than 6 feet, aim for 1 inch or larger.
Resolution and Print Quality
This is where the physical world catches up with you.
If you design a QR code at 72 pixels per inch (the screen resolution), then print it on a label, the printer can't render the tiny squares cleanly. They blur. They bleed into each other. Your camera sees mush.
The fix: always design QR codes at 300 DPI minimum — the same resolution you'd use for a professional photo print. This gives the printer enough information to render each square crisply.
And if you're designing on screen first, export as a vector file (SVG, PDF, or EPS) instead of a raster image (JPG, PNG). Vectors scale infinitely without losing quality.
The Design Trap
Here's where people get creative and accidentally break their code.
You can add a logo to the center of a QR code. You can change the corner patterns from the standard squares to rounded shapes or custom icons. You can even adjust the color — blue instead of black, for example.
These things can work. But they reduce the code's error correction capacity. Think of it like this: a QR code has built-in redundancy, like a backup copy of the information. If part of the code gets dirty or damaged, it can still scan. But add a logo, and you're using up that redundancy buffer.
The safer approach:
- Logo size: Keep it under 20% of the total code area. A logo taking up 30% or more might fail entirely.
- Logo placement: Center is safest. The corners have timing patterns your camera needs.
- Don't cover the corner squares: Those three corner patterns are landmarks your camera uses to orient itself.
- Color: Stick with dark foreground, light background. Pastel QR codes look nice but don't scan reliably in dim light.
If you want a branded, scannable code, use a QR code generator with customization options, not design software. These tools adjust the code algorithmically to maintain scanability even with visual changes.
The Environmental Reality
A perfectly designed QR code can still fail in the real world.
Glare is the silent killer. A QR code printed on a glossy label, under fluorescent lights, might be unscannable from certain angles because the gloss reflects light directly into the camera lens. Matte finishes scan better in high-gloss environments.
Temperature and humidity matter too. A code printed on paper will survive normal conditions fine. But if it's outside in harsh weather, or in a humid bathroom, the ink might fade or smudge. Use waterproof materials for outdoor codes.
And rotation: your phone can scan a QR code upside down or sideways. But if the code is very small and at an extreme angle, the camera might not be able to focus and orient fast enough.
The takeaway isn't to avoid placing codes in challenging environments. It's to give yourself margin. Make it slightly larger than you think you need. Use matte finishes outdoors. Test before you print 10,000 labels.
One Test That Matters
Before you launch anything with a QR code, test it the way people will actually use it.
Don't test from 6 inches away in perfect lighting at your desk. Walk across the room. Hold your phone at different angles. Try in dim light. Try in bright sun. Try with older phones if possible.
If it scans in 9 out of 10 attempts in realistic conditions, you're good. If it's flaky — sometimes it works, sometimes it doesn't — adjust something. Usually it's size, contrast, or print quality.
This takes 5 minutes and saves you from the silent failure mode where people see your code, try it, it doesn't work, and they assume your code is broken (not that their phone needs to be held differently, or your background is too dark).
The Mental Model
Here's what this teaches you about communication in general: the medium matters as much as the message.
You could encode the perfect URL into a QR code, but if nobody can scan it, the URL never reaches anyone. Same principle applies to everything else you communicate — a great idea loses power if people can't receive it.
Before you deploy anything — a QR code, a sign, an email, a video — ask: What does the audience need to do to engage with this? Have I made that as easy as possible?
For QR codes specifically, that means contrast, size, and quality. For other things, it might mean clarity, accessibility, or friction reduction. But the principle is the same.
Make the first step effortless, and more people will take it.