How to add a logo to a QR Code without breaking scanning
Date Published
Putting your brand in the middle of a QR Code makes the material look more professional and increases trust for whoever scans — especially today, when QR Code scams are frequent and an anonymous code invites suspicion. But there is a physical limit, and crossing it turns the code into decoration.
Why it works
QR Codes store information with mathematical redundancy using the Reed-Solomon algorithm. That means part of the code can be destroyed and the reader still reconstructs the content — the same principle that lets a scratched CD keep playing.
There are four correction levels:
- L — recovers about 7% of damaged area.
- M — about 15%.
- Q — about 25%.
- H — about 30%.
By adding a logo you are deliberately damaging the code and relying on that headroom. This is why every serious generator switches automatically to level H when there is a logo — which is what we do here.
The real limit
Thirty per cent is the theoretical ceiling, and working at the ceiling is a terrible idea. Correction also has to absorb print imperfections, dirt, glare, creased paper and camera noise. If the logo has already eaten the entire margin, nothing is left for the real world.
- Up to 15% of the area — safe. Works well even in small print and poor conditions.
- 15% to 25% — works, but demands testing on several devices and a generous print size.
- Above 25% — risky. It may scan on screen and fail on paper.
- Above 30% — does not scan reliably in any scenario.
A practical visual reference: the logo should not exceed about one fifth of the code width. On a 5 cm QR Code, that means a logo of roughly 1 cm.
Rules that avoid trouble
- Always centre it. The centre is the region with the least critical information. The corners hold the position patterns, and covering any of them kills the code immediately.
- Use a solid background behind the logo. A white rectangle or circle separating the logo from the modules helps the reader delimit the damaged area. A transparent logo laid straight over the modules usually scans worse.
- Prefer simple shapes. A symbol, monogram or icon works better than the full logotype with text — which takes more area and becomes illegible at that size anyway.
- Keep contrast everywhere else. There is no point perfecting the logo and using light grey for the modules.
- Never add the logo afterwards in an image editor. Pasting over a code generated with low correction is a recipe for failure. The generator has to know a logo is coming so it can pick the right level.
The calculation nobody makes: density plus logo
There is a trap in combining two factors. High correction consumes space with redundancy, which increases the density of the code. Long content also increases density. Together they produce a code with tiny modules that is additionally partly covered.
That is why a full contact QR Code with a logo is the combination that fails most often. If you need a logo, shorten the content. A link QR Code with a short URL is the one that best accommodates a brand in the centre.
How to test properly
- Generate the code with the logo and scan it on the computer screen from about 30 cm.
- Print at real size, on the final paper, and scan again.
- Test with at least two devices: an iPhone and an Android.
- Test in dim light and under direct light, not only in ideal conditions.
- Test at an angle, around 30 degrees — that is how people actually hold a phone.
- If any test requires insisting for more than two seconds, shrink the logo.
One final reminder: a logo does not replace context. A line of text beside the code explaining where it leads — "menu", "connect to Wi-Fi", "download the app" — raises the scan rate more than any visual refinement.