Dropping your logo into a QR code looks polished — until customers report it won't scan. The failure usually isn't the logo itself; it's the logo at the wrong size, in the wrong position, or with too little contrast against the surrounding modules. This guide covers the specific rules that let you brand a QR code confidently without gambling on scan reliability.
Why Logos Break Scans (and Why They Sometimes Don't)
QR codes use a feature called error correction to tolerate physical damage or visual obscuring. There are four error-correction levels:
| Level | Data recovery capacity | Suitable for logos? |
|---|---|---|
| L | 7% | No |
| M | 15% | Marginal |
| Q | 25% | Yes |
| H | 30% | Best choice |
When you embed a logo, you are intentionally obscuring modules. If the obscured area exceeds the error-correction budget, the decoder fails. Level H gives you the most headroom — use it whenever you plan to include any graphic overlay.
The key point: error correction doesn't give you unlimited coverage. It gives you a hard ceiling. Cross it and no amount of software polish recovers the scan.
The 30% Rule — and Why You Should Stop at 20%
The widely cited guidance is to keep logo coverage at or below 30% of the total QR code area (matching level H capacity). In practice, treat 20% as your working limit for three reasons:
- Print tolerances. Offset and digital printing introduce ink spread. A logo that measures 28% on screen can clock in higher on paper after ink absorption.
- Finder pattern proximity. The three square "eyes" in the corners are non-negotiable for decoding. Any logo that bleeds into them degrades scan rates dramatically, even if the overall coverage percentage looks fine.
- Quiet zone intrusion. The blank border around the code is part of the specification. Logos with outer glows or drop shadows can visually eat into that space.
Set your logo at 20% of the QR code's total area, verify no edge touches a finder pattern, and you have a comfortable buffer.
Placement: Centre Is Not Always the Answer
Centre placement is standard and works well for square or circular logos. But it's worth understanding why centre is preferred: the highest-density data modules sit near the edges and corners, while the centre region (excluding the timing patterns) tends to carry redundant data that error correction can rebuild more easily.
When centre doesn't work:
- Your logo is landscape-oriented (wide rectangles centred horizontally start encroaching on timing patterns above and below)
- Your brand mark includes very thin lines that disappear when scaled down to fit the 20% area
For landscape logos, two options:
- Crop to a square version of the mark for use inside the code
- Place the full logo below the code with a generous quiet zone, rather than overlaid on it — this is cleaner and zero scan risk
Contrast and Background Colour Inside the Logo Zone
The modules surrounding your logo must still read as dark against light (or vice versa). A common mistake is using a white logo on a white background patch, which leaves an ambiguous gap the decoder has to bridge entirely through error correction. A better approach:
- Give the logo a solid, opaque background that matches or closely matches the code's light colour
- Maintain at least a 1-module-wide padding of clean light space between the logo edge and the nearest dark modules
- Avoid gradients in the logo that cause module colours to become ambiguous near the boundary
If you need a primer on contrast requirements across the whole code, the detailed breakdown in our QR code colour contrast guide covers minimum ratios, dark-on-light versus light-on-dark orientations, and colour combinations that cause camera processing errors.
Physical Size and the Minimum Pixel Budget
Logo legibility and QR reliability both depend on the code being printed or displayed large enough. A logo crammed into a 2 cm × 2 cm code at 20% coverage is roughly 4 mm across — invisible as branding, and still occupying error-correction budget.
Practical minimums:
- Print: QR code no smaller than 3 cm × 3 cm for a logo to remain identifiable
- Screen: QR code no smaller than 300 × 300 px before adding the logo layer
- Billboard / large format: Scale the logo proportionally; the 20% area rule still applies, don't oversize it just because you have room
Test Before You Commit to Print
No design rule replaces testing. Before sending to print:
- Export the finished design at final print resolution
- Test with at least three apps: the native iOS camera, the native Android camera, and one standalone scanner app
- Test under mixed lighting (bright overhead, dim ambient)
- If you're using a dynamic code — which lets you update the destination URL without reprinting — confirm the redirect still resolves correctly
Dynamic codes are especially relevant here because branded codes often appear on packaging or printed collateral with long shelf lives. If the destination changes, a dynamic QR code lets you update the link without redesigning or reprinting the physical item.
You can build these branded codes directly through the Super QR Code Generator with level H error correction already set as the default when a logo is detected.
Key Takeaways
- Use error-correction level H any time you embed a logo
- Keep logo coverage at or below 20% of total code area, not the theoretical 30% maximum
- Never let the logo overlap or crowd the three corner finder patterns
- Landscape logos work better placed below the code than centred inside it
- Give the logo an opaque background and 1-module padding to avoid contrast ambiguity
- Always test on real devices before committing to print, especially for packaging runs
- Pair a branded code with a dynamic URL so you can update destinations without a redesign
