01. Start with the scan-distance ratio
Physical QR codes follow a simple, dependable rule: the further away someone is, the larger the code needs to be. A conservative baseline used across retail, transport, and events is:
Minimum scan distance ≈ 10 × the width of the QR code.
In practice, that means:
- A 2 cm code is comfortable to scan from around 20 cm.
- A 4 cm code is comfortable to scan from around 40 cm.
- A 10 cm code is comfortable to scan from around 1 m.
This ratio is intentionally cautious. Low-end devices, reflective surfaces, and fast moving environments all benefit from slightly larger codes. If your placements involve motion, glare, or low light, treat these values as minimums, not targets.
02. Recommended sizes for common placements
You don’t need a different formula for every asset. A small set of proven sizes will cover most campaigns. Use the ranges below as defaults in your design system and briefs.
Table tents & menus (arm’s length scanning)
- Recommended size: 25–35 mm
- Minimum size: 20 mm
- Ideal for seated guests in restaurants, cafés, and lounges. Low light and glossy lamination are common, so a slightly oversized code improves first-time scans.
Flyers, postcards & handouts
- Recommended size: 30–40 mm
- Minimum size: 25 mm
- People often glance, decide, and scan quickly. Give their camera enough visual structure to lock on without hunting or zooming.
Product packaging
- Recommended size: 15–25 mm
- Minimum size: 12 mm (with high contrast)
- Packaging is viewed close up, but curves, folds, and textured materials can distort the pattern. Stay on the generous side for cylindrical bottles, pouches, or very small boxes.
Event badges & lanyards
- Recommended size: 20–30 mm
- Minimum size: 18 mm
- Check-in and lead capture often happen while people are moving. Slightly oversized codes minimise retries and make staff workflows smoother.
Posters & retail signage
- Recommended size: 45–70 mm
- Minimum size: 40 mm
- Designed for scanning from one to two metres away in shops, venues, or corridors. Use clear CTAs and make sure the code is separated from dense copy.
Large-format billboards
- Recommended size: 100–250 mm
- Minimum size: 100 mm
- Only use QR codes where pedestrians can safely stop and scan. Avoid placing them on high-speed roadside billboards entirely—both safety and usability are poor.
03. Keep quiet zones and contrast non-negotiable
Print introduces variables that never show up in Figma: ink bleed, halftoning, textured stock, and unpredictable lighting. To keep your QR codes scannable across all of that, two constraints matter more than anything else: quiet zones and contrast.
Quiet zone. Leave at least four modules worth of whitespace on all sides of the code. This margin is also described in the official QR Code standard (ISO/IEC 18004) , and it helps scanners reliably detect where the code begins and ends.
A faint keyline or frame is fine, and often helpful—it signals to designers and print teams where not to place logos, copy, or trims.
Contrast. Aim for at least a 40% contrast difference between foreground and background. Dark ink on light stock remains the most reliable combination across older cameras, low light, and imperfect print.
Avoid metallic foils, very low ink densities, and busy photographic backgrounds for functional codes. If you need decorative treatments, reserve them for campaigns where users will be very close to the surface, not scanning from a distance.
04. Match error correction to the medium
Error correction gives QR codes built-in resilience against damage, distortion, and visual noise. When you move from screen to print, it becomes especially important.
- Packaging, labels, menus: Use error correction level M or Q as a baseline.
- Outdoor posters & long-lived signage: Favour level Q or H to tolerate wear and weather.
- Codes with logos or decorative frames: Use level H so the code can “lose” some modules without becoming unreadable.
If you’re placing a logo inside the code, keep it within 15–20% of the overall footprint and sit it on a clean white backing shape. That keeps both the brand mark and the code easy to recognise.
05. Test before you commit to a print run
No print project should ship without a quick, systematic scan test. Digital previews are helpful, but they can’t tell you how a QR code will behave under real-world conditions.
- Print at multiple scales. Produce at least three samples: 50%, 100%, and 150% of your intended size. This gives you a safety margin if you discover that a layout needs to shrink.
- Use real devices, not just one flagship. Test on a mix of devices—such as a low-end Android handset, a mid-range iPhone, and a recent flagship—to mimic your actual audience.
- Test for distance, angle, and glare. Check scans in low light, under harsh overhead lighting, and on any glossy or laminated finishes. Try scanning while walking past at a normal pace, not just standing directly in front.
If a code struggles under realistic conditions, adjust size, contrast, or placement before you lock the artwork. Updating a vector file is cheap; reprinting a campaign is not.
06. A quick sizing cheat-sheet
Once you’ve dialled in sizes for your environment, capture them in your brand or campaign playbooks so teams don’t have to guess from scratch. As a starting point:
| Use case | Recommended size | Minimum safe size |
|---|---|---|
| Packaging | 15–25 mm | 12 mm |
| Flyers & postcards | 30–40 mm | 25 mm |
| Menus & table tents | 25–35 mm | 20 mm |
| Event badges | 20–30 mm | 18 mm |
| Posters | 45–70 mm | 40 mm |
| Billboards (pedestrian) | 100–250 mm | 100 mm |
Treat this as a baseline. Over time, your own testing and analytics will tell you which sizes perform best for your specific venues, printers, and audiences.
Ready to export print-ready assets? Use simplEasy QR Studio to generate high-contrast PNGs with error correction baked in, ready for packaging, flyers, and signage.