QR codes look simple. Black squares on a white background. But the difference between a QR code that gets scanned and one that gets ignored comes down to a handful of decisions made before the code ever hits paper or screen.
This is where most QR code failures start. A code that's too small won't scan. A code that's too large wastes space.
Divide the expected scanning distance by 10. That's your minimum code dimension:
| Placement | Scan Distance | Minimum Size |
|---|---|---|
| Business card | 15-20 cm | 2 cm (0.8 in) |
| Product packaging | 20-30 cm | 2.5 cm (1 in) |
| Table tent / flyer | 30-50 cm | 3-5 cm (1.2-2 in) |
| Poster (indoor) | 1-2 meters | 10-20 cm (4-8 in) |
| Billboard / banner | 5+ meters | 50+ cm (20+ in) |
Going 20-30% larger gives you a safety margin for less-than-ideal lighting or older phone cameras. A QR code encoding a long URL has more modules packed into the same space, making each one smaller and harder to read. Short URLs produce cleaner, more forgiving codes.
For anything going to a printer, export at 300 DPI minimum. SVG or PDF formats are ideal since they scale without pixelation. A QR code that looks sharp on screen can turn into a blurry mess on a printed business card if the source file was only 200 pixels wide.
Every QR code includes built-in redundancy using Reed-Solomon error correction. If part of the code gets scratched, smudged, or covered, the scanner can still reconstruct the data.
| Level | Data Recovery | Best For |
|---|---|---|
| L (Low) | ~7% | Digital screens, controlled environments |
| M (Medium) | ~15% | Business cards, flyers, most print |
| Q (Quartile) | ~25% | Product labels, moderate wear expected |
| H (High) | ~30% | Logo overlays, outdoor signage, warehouses |
A perfectly sized, well-generated QR code still fails if nobody notices it or can't physically reach it with their phone.
People scan QR codes by holding a phone steady, pointing the camera, and waiting a beat. If the code is on the floor, above a doorframe, or behind glass with glare, the scan rate drops to near zero. Place codes between chest and eye height — roughly 100-170 cm off the ground.
A bare QR code with no explanation gets ignored. Always include a short call-to-action near the code. Not just "Scan me" — tell people what they'll get:
A Juniper Research study found that QR codes with a clear value proposition had 2-3x higher scan rates than codes with generic "Scan here" labels.
Append UTM tags to the destination URL before encoding it:
https://yoursite.com/landing?utm_source=flyer&utm_medium=qr&utm_campaign=spring2026
Your analytics platform picks up these parameters automatically. Create a unique utm_campaign value for each physical placement so you can compare scan rates across locations.
A dynamic QR code points to a redirect URL that logs every scan and lets you change the destination without reprinting. Useful for A/B testing landing pages or rotating seasonal offers. The tradeoff is dependency — if the redirect service goes down, your printed codes break. For anything with a lifespan beyond a few months, encode the final URL directly. See our guide on static vs dynamic QR codes for the full comparison.
Generate QR codes for free — no signup, no watermarks, no limits.
Generate a QR Code