What is a QR code?
A QR code (Quick Response code) is a two-dimensional barcode invented by Denso Wave in 1994 to track vehicle parts at Toyota. Unlike a one-dimensional barcode (UPC, EAN) that encodes a number, a QR code encodes arbitrary data — text, URLs, WiFi credentials, contact info, payment instructions — and can hold up to ~2,953 bytes or ~4,296 alphanumeric characters.
Modern smartphones have scanned QR codes natively since iOS 11 (2017) and Android 8 (2017), meaning the technology is essentially universal today. Every QR code follows the ISO/IEC 18004 standard.
Static vs dynamic QR codes
The single most important choice you'll make when creating a QR code is whether it should be static or dynamic.
- Static codes encode the destination (URL, text, WiFi credentials) directly in the pattern. Once printed, the destination is permanent. You get no analytics.
- Dynamic codes encode a short redirect URL you control. The printed pattern never changes — but you can update the destination, A/B test, expire codes, and track every scan.
Rule of thumb: use static for things that will never change (your WiFi password on a wallet card, your vCard for business cards), and use dynamic for anything you might update or want to measure (menus, campaigns, signage, product labels).
Read our dedicated deep-dive: Static vs dynamic QR codes — which should you use?
Error correction levels
Every QR code uses Reed-Solomon error correction — meaning the code can still be read even if part of it is dirty, scratched, or obscured. The trade-off is that higher error correction = more modules = a physically denser code.
| Level | Damage recovered | Use when |
|---|---|---|
| L | ~7% | Digital-only, pristine printing |
| M | ~15% | Most print use cases (default) |
| Q | ~25% | Embedded logo or moderate wear |
| H | ~30% | Outdoor, reflective, or large logo |
For most marketing uses, M is fine. If you plan to embed a logo in the center of the code, upgrade to Q or Hto ensure the code still scans after the logo covers some modules.
How big should a QR code be?
The industry rule of thumb is the 10:1 ratio — the scan distance should be no more than 10× the side length of the QR code.
Business card
Scan from 300 mm
Min size 30 mm
Poster at arm's length
Scan from 1 m
Min size 100 mm
Shelf / packaging
Scan from 2 m
Min size 200 mm
Retail signage
Scan from 5 m
Min size 500 mm
Billboard (highway)
Scan from 20 m
Min size 2 m
Stadium / large venue
Scan from 50 m
Min size 5 m
Use our free QR size calculator to compute the exact minimum size for any scan distance, with adjustments for error correction and a 25% safety margin.
Design & branding
QR codes don't have to look like boring black-and-white squares. Modern QR generators — including QRMax — let you customize nearly every aspect of the design while remaining scannable.
Safe design choices
- High contrast: Dark foreground on light background. Never invert (light on dark) — many older scanners fail.
- Rounded or custom modules: Change the dot shapes for aesthetic appeal. Keep shapes solid; don't introduce gaps.
- Embedded logo: Up to 30% of the QR area at error correction level H. Center it; leave a small white gap around it.
- Quiet zone: Always leave a 4-module white border around the QR. Many failed scans come from a missing quiet zone.
- Call-to-action: Add a “Scan me” label next to the QR — studies show it boosts scan rates by 40-200%.
Placement & printing
Where you put the code matters as much as the code itself.
- Matte over glossy: Glossy surfaces reflect light and reduce scan reliability. Use matte or satin laminates.
- Avoid curved surfaces: Cylindrical bottles or small curved packaging distort the pattern. Use flat label areas.
- Lighting: Test scanning under the actual lighting conditions. Dim bars and fluorescent warehouses cause scan failures.
- Height: Place the code between waist and eye level for quick access — not above 2m or below 50cm.
- Context: Add a one-line explanation of what scanning does (“Scan for menu”, “WiFi here”). Users who don't know won't bother.
Analytics & optimization
Dynamic QR codes unlock a wealth of data. At minimum, QRMax tracks:
- Total scans and unique scanners over any date range
- Device and OS breakdown (iOS, Android, desktop, tablet)
- Geo-location at city / country level (from IP; opt-out respected)
- Time-of-day heatmaps so you can see peak scan hours
- Referrer / campaign tags when your short URL includes UTM parameters
Use these numbers to tune placement, redesign under-performing signage, or A/B test two landing pages. We cover this in depth in Understanding QR code analytics.
Common mistakes to avoid
Using a static QR for a campaign that will end
Dynamic codes let you retire or redirect the URL later without reprinting.
No call-to-action next to the code
Add “Scan for X” — it can triple your scan rate.
Printing the QR too small for the scan distance
Use the 10:1 rule or our free calculator.
Inverting colors (white on dark)
Keep dark foreground on light background. Inversion fails on many scanners.
Using a low error correction level with a logo
Upgrade to Q or H if embedding a logo over 15% of the area.
Forgetting the quiet zone
Always leave a 4-module white border around the code.
Next steps
Ready to build? Open the generator — it's free and no signup is required for static codes. Or explore by use case in the templates gallery.