How a QR Code Still Scans With a Logo in the Middle
2026-06-26
You've seen QR codes with a company logo sitting right in the middle, and maybe wondered how covering part of the code doesn't break it. The answer is a genuinely clever piece of engineering baked into the format: error correction. Here's how it works, and how to make a branded one that reliably scans.
QR codes are built to survive damage
A QR code doesn't just store your link — it stores it with redundancy, using Reed–Solomon error correction. The idea: encode extra data so the scanner can reconstruct the message even if part of the code is missing, dirty, or covered. This is why a QR code on a crumpled receipt or a scratched sticker still works.
There are four error-correction levels:
- L (Low) — recovers ~7% of the code
- M (Medium) — ~15%
- Q (Quartile) — ~25%
- H (High) — ~30%
At level H, roughly a third of the code can be obscured and the scanner still reads it. That's the headroom a center logo lives in.
Why the logo goes in the middle
The logo sits in the center for two reasons. First, the three big squares in the corners are the finder patterns — the scanner uses them to locate and orient the code, so those must stay clear. The center has no such job, so it's the safe place to cover. Second, keeping the covered area compact and central leaves the error correction enough intact data everywhere else to rebuild the message.
How big can the logo be?
The rule of thumb: keep the logo under about 20–25% of the code's area, and use error-correction level H. Go bigger and you eat past the ~30% budget, and scans start failing on cheaper cameras or in poor light. A little padding — a solid backing behind the logo — also helps the scanner tell logo from code.
Make one in your browser
ToolKoala's QR code generator handles this for you:
- Enter your link or text.
- Add a logo — it's placed in the center on a clean backing, sized to stay within the safe zone, and the code is generated at high error correction so it still scans.
- Pick colors if you want, and download as PNG (or SVG without the logo, for print).
It all runs locally — the code is generated in your browser, so whatever you're encoding never touches a server.
Practical tips
- Always test the finished code with a couple of phones before you print 500 flyers. Camera quality varies.
- Keep good contrast — dark code on a light background scans best. Fancy low-contrast color schemes are where "stylish" QR codes quietly stop working.
- Don't shrink it too small in print. More data (a long URL) means a denser code that needs more physical size to scan reliably. Short links make simpler, sturdier codes.
FAQ
Why does a QR code work with a logo covering part of it? QR codes include Reed–Solomon error correction, which stores redundant data so the message can be rebuilt even if part of the code is covered. At the highest level, about 30% can be obscured, which leaves room for a center logo.
How big can the logo be? Keep it under about 20–25% of the code's area and use high (H) error correction. Larger logos start to exceed the recoverable area and scans become unreliable.
Where should the logo go? In the center. The three corner squares are finder patterns the scanner needs to locate the code, so those must stay clear — the middle is the safe place to cover.
Does making a QR code online expose my link? On ToolKoala it doesn't — the code is generated entirely in your browser, so whatever you encode never leaves your device.
Should I download PNG or SVG? PNG for on-screen and easy sharing (and it keeps the logo). SVG is best for print because it scales without blurring; the SVG export is the clean code without the embedded logo.
— Milo 🐨