QR Code Best Practices for Print and Scan Reliability
A QR code is only useful if phones can read it quickly. Print mistakes, weak contrast, and undersized modules are the usual reasons scans fail in the wild. This guide covers practical QR code best practices for size, color, margins, and testing so your codes work the first time, every time.
Why scan reliability matters
Every failed scan is friction: someone abandons the action, blames the brand, or opens a support ticket. Campaigns that depend on offline-to-online conversion suffer when codes are too small, printed on glossy stock without testing, or placed where lighting and glare work against the camera. Investing a few minutes in sizing and validation prevents those drops in trust and completion rate.
Recommended QR code size by use case
Minimum size depends on scanning distance, print resolution, and how much data you encode. Longer URLs need more modules, so they require more physical space for the same readability. Use these as starting points, then test.
- Business cards: Aim for at least 2–2.5 cm (about 0.8–1 in) on the short side for a typical URL. If the layout is tight, shorten the link first.
- Posters and signage: Scale the code so it stays sharp at the farthest expected viewing distance. A common rule of thumb is roughly 10:1 between scan distance and QR width for consumer phones, but always verify with a real device.
- Packaging and labels: Prefer vector (SVG) or high-resolution PNG exports, and avoid compressing the same asset repeatedly. Small flexo or label print can blur fine details, so err on the larger side.
Color, contrast, and quiet zone rules
Readers detect dark modules against a lighter background most reliably. Dark-on-light beats trendy low-contrast palettes for scan success.
- Contrast: Keep a strong difference between foreground and background. Light gray on white, or navy on black, often fails in poor light.
- Quiet zone: Leave empty margin around the code at least equal to four modules on all sides. Artwork, text, or crop marks that touch the pattern break scans.
- Anti-patterns: Avoid heavy gradients across modules, busy photos behind the code, and logo overlays that cover finder patterns or timing lines. If you add a logo, reduce data density or increase physical size.
Real-world testing checklist
- Indoor and outdoor lighting: Try sun glare, shade, and dim interiors. Glossy laminate can reflect light; matte finishes or slight tilt often help.
- Multiple phone cameras: Test iOS and Android, older and newer devices. Budget cameras struggle sooner than flagship sensors.
- Distance and angle: Walk through the positions users will actually use. If scans fail at arm’s length, enlarge the code or simplify the payload.
Common failure patterns
Too little margin: The quiet zone was trimmed in layout. Fix by restoring clear space or regenerating with export settings that include padding.
Upscaled raster blur: A small PNG was stretched in InDesign or on a billboard. Fix by exporting a higher resolution or using SVG for large formats.
Wrong correction level for branding: High error correction helps damaged codes but increases module count. If you add a logo, raise error correction and increase size accordingly.
Content changed after print: The printed code still points at an old URL. For campaigns that may need destination updates, compare static vs dynamic QR codes and choose the approach that matches how often your link will change.
Where to go next
- Generate a clean, high-contrast code from the main QR generator.
- Validate print-ready assets and destinations with the scan and inspect tool.
- Need quick troubleshooting guidance for failed scans, size, or margin issues? Start with the FAQ.