QR Codes That Actually Scan: Size, Contrast, Error Correction and Content Choices
Why QR codes fail to scan on print and screens, and how to fix it: minimum size, quiet zone, contrast, error correction levels, data length and testing before you print.
Published September 6, 2026 · By Sudip Bhowmick
A QR code that works on your screen can fail on a poster, a menu or a business card. The failures are rarely mysterious. Printed codes are usually too small, too low in contrast, too dense, cropped or damaged by a decorative logo. This guide covers the settings that make a code reliable, and a short test that catches problems before you print thousands of copies.
How a QR Code Stores Data
A QR code is a grid of dark and light squares called modules. More data means more modules, so each module has to be smaller for the same printed size. Scanners must be able to distinguish every module, so the practical limit is set by how large each one appears to the camera. That is why a short URL makes a more reliable code than a long one with tracking parameters.
Size and Distance
- ▸A common rule: the code should be about one tenth of the scanning distance. A code scanned from 30 centimeters needs about 3 centimeters, and a poster scanned from 3 meters needs about 30.
- ▸For business cards and packaging, 2 by 2 centimeters is a practical minimum for a short link.
- ▸Printing resolution matters. Use vector formats such as SVG for print, which stay sharp at any size, and a high resolution PNG otherwise.
- ▸Avoid scaling a small bitmap up. Blurred module edges cause scanning failures.
Contrast and Colors
- ▸Use dark modules on a light background. Black on white is the most reliable.
- ▸Colored codes are fine if the contrast is strong. Dark blue or dark green on white works, while light colors or a low contrast pair fail.
- ▸Inverted codes, with light modules on a dark background, are not supported by every scanner. Test before relying on one.
- ▸Do not place the code over a busy photograph or a gradient. Put it on a plain panel.
- ▸Glossy surfaces create glare. Choose a matte finish for codes on packaging.
The Quiet Zone
The specification asks for a blank margin of four modules on every side. Without it, scanners cannot tell where the code begins. If you place text, a border or a graphic too close, scans fail. The margin setting in the QR Code Generator on this site is adjustable. For print, set it to at least four modules.
Error Correction Levels
Error correction adds redundancy so that a scratched, dirty or partly covered code still reads. The four levels recover roughly 7, 15, 25 and 30 percent of the data. Higher levels make denser codes with smaller modules, so there is a trade-off.
- ▸Low: clean digital screens and very long data.
- ▸Medium: the default, good for most prints.
- ▸Quartile: outdoor prints and labels that may get scuffed.
- ▸High: required if you place a logo in the middle, since the logo covers part of the data. Keep the logo small, below about a fifth of the code's width.
Choosing Content Wisely
- ▸A static code stores the data directly. It works forever and cannot be changed. A dynamic code points to a short redirect that you can edit later, but it depends on a service staying alive and may carry a cost.
- ▸Shorten the URL, or use a clean address that is easy to read in case the scan fails. Add the tracking parameters with the UTM Generator first.
- ▸Wi-Fi codes use a special format, so guests can join with one scan. Update the code when you change the password.
- ▸Phone, SMS and email codes open pre-filled actions, which are quick for people on a poster or a card.
Test Before You Print
- ▸Print a proof at the exact final size on the exact material.
- ▸Scan it with at least two different phones, one older, at the real distance and in the real light.
- ▸Test a few degrees of tilt and some shadow.
- ▸Open the destination on a mobile connection. A code that scans perfectly but opens a page that loads slowly or is not mobile friendly still fails.
Security Awareness
Because people cannot read a code, they trust it. Attackers paste stickers over legitimate codes and send people to fake payment or login pages. If you publish codes in public places, check them periodically and make the destination address visible next to the code. As a user, look at the link your phone shows before opening it.
Conclusion
Reliable QR codes are large enough for their scanning distance, high in contrast, surrounded by a quiet zone, set to a suitable error correction level and short in content. Use vector files for print, test on real phones, check that the destination works on mobile and watch out for tampering.
Free Tool
Open the QR Code Generator