Troubleshooting
QR code with a logo not scanning
A logo works up to roughly 20–25% of the code area at error-correction level H, and only in the centre. Covering a finder pattern, the timing patterns, or the format information beside the finders breaks the code regardless of error-correction level.
What error correction actually buys you
| Level | Damage tolerated | Practical centre logo |
|---|---|---|
| L | ~7% | none |
| M | ~15% | up to ~10% area |
| Q | ~25% | up to ~18% area |
| H | ~30% | up to ~25% area |
Those are theoretical ceilings for the whole code. Real coverage should stay below them, because print imperfection, glare and camera angle consume some of the same budget.
The regions you must not cover
Error correction protects data. It does not protect the structural regions:
- Finder patterns — the three corner squares. Cover any part and the scanner cannot locate the code at all.
- The quiet zone — four modules of blank margin.
- Format information — the strip immediately beside each finder pattern, holding the mask and error-correction level. Damage here and the decoder unmasks incorrectly and the payload is irrecoverable even though every data module is perfect.
- Timing patterns — row 6 and column 6, the alternating lines between the finders.
A centre logo is safe because the centre is data. A logo drifting toward a corner is not.
Why raising to H can backfire
Level H uses more of the code for redundancy, so the same payload needs a higher version — more modules, each smaller at the same printed size. If the code is already near the limit of what your printed size supports, moving M → H can make it fail even before you add the logo.
The correct order is: shorten the payload → raise error correction → add the logo → verify.
Give the logo a quiet zone
Place the logo on a solid light panel with two or three modules of clear space around it. A logo sitting directly on the pattern produces ambiguous partial modules at its edge, which are worse for the decoder than cleanly missing ones.
Verify, do not assume
Every code UseQR generates is rasterised and read back with a real decoder before you download it. If a logo pushes it past the limit, you find out immediately rather than after the print run. Our validator does the same on demand and reports the margin you have left.
FAQ
How big can a logo in a QR code be?
Up to roughly 25% of the code area at error-correction level H, placed centrally. Below level Q, a logo of any meaningful size is risky.
Can I put a logo over a corner square?
No. The corner squares are finder patterns and are not protected by error correction. Covering any part of one prevents the scanner from locating the code.
Should I always use error-correction level H when adding a logo?
Use Q or H, but be aware that H increases the code's version, making every module smaller at the same printed size. Shorten the payload first so the version stays low.
Why does my logo QR code scan on my phone but not on others?
You are at the edge of the margin. Different cameras, lighting and distances consume the remaining error-correction budget differently. Reduce logo coverage until there is real headroom.
Try it — free, no signup
Related
- QR code not scanning: the checklist — Work through these in order, because they are ranked by how often they are the actual cause: quiet zone, contrast, size for distance, glare, blur from…