Skip to content
Y
YAS.SH
QR Codes

QR Logo Overlay: Branding Without Breaking Scans

How to embed a logo in a QR code safely — size, error correction, placement, and testing rules that keep scan rates high.

yas-team3 min readqrbrandingdesign
QR Logo Overlay: Branding Without Breaking Scans
Featured imageQR Logo Overlay: Branding Without Breaking Scans

A logo in the center of a QR code is the classic branding move — and the classic scan-killer when done wrong. The good news: the math is well understood. Error correction is deliberately designed to tolerate damage, and a centered overlay is exactly the damage pattern it can survive — if you respect the size, correction, and contrast rules.

How it works: error correction as insurance

QR codes store redundant data so scanners can reconstruct damaged patterns. At error correction level H, a scanner can recover up to 30% of the code's modules. A centered logo covers a contiguous region — which error correction handles surprisingly well, because QR's Reed–Solomon coding distributes redundancy across the whole pattern. The rules below keep the covered region inside the recoverable budget.

The three rules

1. Size: ≤15% of code width. The logo should cover at most ~15% of the code's width — roughly a quarter of the central area. Bigger logos push the covered region past what level H can reconstruct:

code width 100px → logo ≤ 15px
code width 512px → logo ≤ 76px
code width 1024px → logo ≤ 153px

2. Correction: level H. With an overlay, error correction jumps to H (30%). This makes the pattern denser — which means the minimum print size grows. A logo'd code at 2cm won't scan like a clean code at 2cm; test the actual print.

3. Contrast: light plate behind the logo. The logo's own colors will collide with module colors. A white (or brand-tinted light) circular or rounded plate behind the logo keeps the boundary legible and gives scanners a clean edge to read around.

What to avoid

Anti-pattern Failure mode
Logo > 20% of width Modules unrecoverable; code fails on older scanners
Level M or L with logo Recovery budget too small for the overlay
Logo without plate Logo edges merge with modules; boundary unreadable
Colored modules (light blue, yellow) Contrast falls below scanner threshold
Cropping the quiet zone Scanner can't find the code at all

The workflow that never ships a broken code

  1. Generate the code at the final size with the QR API (level H where available).
  2. Overlay the logo + plate in the design tool, respecting the 15% rule.
  3. Print it for real — screen proofs lie; ink and paper don't.
  4. Test with 2–3 phones, including an older Android camera app, at the real viewing distance.
  5. Keep a clean (no-logo) variant in the asset library as the fallback.
# base code at print size
curl "https://yas.sh/api/v1/qr?url=https://go.yourbrand.com/launch&size=1024&format=png" -o code-clean.png

When to skip the logo entirely

  • Tiny formats (business cards, stickers < 2cm) — the logo eats too much of the budget.
  • High-volume print with inconsistent quality (newspapers, uncoated stock).
  • Codes expected to last years — the more damage tolerance, the better.

In those cases, put the brand mark next to the code instead of inside it — the business QR guide shows the layout pattern.

Conclusion

Logo overlays are safe when they respect three numbers: ~15% of width, level H correction, and a light plate behind the mark. Respect the print test and the scan test, and the branded code works everywhere a clean code does. Generate the base at the QR endpoint, overlay in your design tool, and verify on paper before you print the run.

Frequently asked questions

How large can the logo be?

Up to ~15% of the code's width (roughly 25–30% of the center area). Beyond that, error correction can't reliably reconstruct the covered modules.

Which error correction level do I need for a logo?

Level H (30% recovery) is the safe choice with an overlay. Level M can work with small logos; always test on real devices.

Do logos in QR codes hurt scan rates?

Done to spec — small, centered, high-contrast background behind the logo — the effect on scan rate is negligible. Done badly, it's the #1 cause of scan failures.

Should the logo have a background plate?

Yes — a white (or light) plate behind the logo keeps its edges legible and prevents the logo's colors from merging with nearby modules.

Was this helpful? Share
🍪 Cookies & privacy. yas.sh uses only essential cookies to keep you signed in and remember your preferences. We do not run third-party trackers. See our cookie policy and privacy policy.
Settings