A QR code that doesn't scan is worse than no QR code at all — it frustrates users and wastes print budget. Fortunately, most scan failures are caused by avoidable design mistakes. This guide covers everything you need to know to create QR codes that are both visually appealing and reliably scannable.
The Golden Rule: Contrast
QR codes work by creating a contrast pattern that camera sensors can detect. The most critical design rule is maintaining sufficient contrast between the foreground (dark modules) and background (light area).
The minimum recommended contrast ratio is 4:1. In practice, this means:
- Do: Dark colour on white or very light background
- Do: Navy, dark green, dark purple on white — all work well
- Don't: Light colours on white (e.g., yellow on white)
- Don't: Reverse the colours (light foreground on dark background) without extensive testing — many older scanners struggle with this
Colour Choices That Work
Custom colour QR codes are a great way to reinforce brand identity. The key is choosing your brand colour for the foreground modules and keeping the background white or very light.
Good brand colour options for QR foregrounds:
- Deep navy (#1e3a8a) — scans reliably, looks professional
- Dark teal (#0f766e) — distinctive and scannable
- Dark purple (#581c87) — works well against white
- Deep red (#991b1b) — avoid orange-reds which can confuse cameras
Avoid gradients across the QR modules themselves — they reduce contrast in some areas and can cause scan failures in those zones.
Adding a Logo: The Error Correction Rule
QR codes have built-in error correction — they can still be scanned even if part of the pattern is obscured. There are four error correction levels:
| Level | Data Recovery | Logo Size Limit |
|---|---|---|
| L (Low) | 7% | ~5% of QR area |
| M (Medium) | 15% | ~10% of QR area |
| Q (Quartile) | 25% | ~18% of QR area |
| H (High) | 30% | ~22% of QR area |
When adding a logo, always use High (H) error correction. Keep your logo to no more than 20% of the total QR code area, centred in the middle. D-QR sets error correction to High automatically when you upload a logo.
Minimum Print Sizes
QR codes have a minimum scannable size that depends on the amount of data encoded and the scanning distance. General guidelines:
- Business card: 2 × 2 cm minimum (scan distance ~15 cm)
- Table card / A5 flyer: 3 × 3 cm minimum
- Poster / A3: 4 × 4 cm minimum
- Outdoor signage: Scale up proportionally — 1 cm per 10 cm of viewing distance
Dynamic QR codes encode a short redirect URL, which means the pattern is less dense than a static QR code encoding a long URL. This actually makes dynamic codes more reliable at small sizes.
The Quiet Zone (White Border)
Every QR code needs a clear border — called the "quiet zone" — around all four sides. This is typically 4 modules wide (about 10% of the total QR code width). When placing a QR code on a dark or coloured background, ensure the quiet zone is still white or very light. Cropping the quiet zone is one of the most common causes of scan failure.
Testing Before You Print
Always test your QR code before committing to a print run. Test with:
- At least two different devices (one iOS, one Android)
- The native camera app (not a third-party QR scanner)
- At the actual print size, not just on-screen
- Under the lighting conditions where it will actually be used (e.g., dim restaurant lighting)
Print tip: Download your QR code as SVG from D-QR. SVG files are vector-based and print crisply at any size — no pixelation, no blurring. Never scale up a low-resolution PNG for print use.
Common Mistakes to Avoid
- Using a gradient or photographic background behind the QR modules
- Making the logo too large (covering more than 22% of the QR area)
- Using low error correction with a logo overlay
- Placing the code on a reflective or textured surface without testing
- Not including a call to action ("Scan to see menu", "Scan for Wi-Fi")
A well-designed QR code doesn't just scan — it invites people to scan. Pairing reliable technical design with clear instructions and attractive branding is what separates effective QR codes from ones that get ignored.