Can You Put a Logo in a QR Code Without Breaking It?

Your designer drops the brand mark into the middle of a QR code, and it looks good on screen. Then someone asks the question nobody can answer: will it still scan?
Yes, a QR code with a logo can still scan — if the logo is small, sits in the middle, and never touches the corners. The reason everyone gives for why it works is wrong, though.
You have heard it a hundred times. Set error correction to level H, and 30% of the code can be covered. That is not what the standard says.
Where does the 30% figure come from?
QR codes use Reed-Solomon error correction. That is maths that lets a scanner rebuild data it could not read.
The rules live in a standard, ISO/IEC 18004. Its list of basic features says the four levels allow "the symbol codeword recovery of — L: 7 %; — M: 15 %; — Q: 25 %; — H: 30 %".
Read those three words again: symbol codeword recovery. Not area. Not image. Codewords.
A codeword is a chunk of data inside the code. Denso Wave, which invented the QR code, defines it plainly: one codeword is 8 bits. On paper that is 8 tiny black and white squares, called modules.
So level H means this: roughly 30% of the code's data chunks can be wrong, and a scanner can still rebuild them. It says nothing about how much of the picture you may cover.
Why "30% of the image" is wrong four times over
This is not loose wording. The claim fails in four separate ways, and each one alone is enough to sink it.
- It counts data, not space. A code also holds corner squares, timing lines, spacers and format bits. None are codewords, so the 30% does not cover them.
- Some parts have no error correction at all. ISO/IEC 18004 is blunt: "Function patterns do not encode data." The corner squares, the timing lines and the alignment squares are structure. Reed-Solomon cannot repair any of them. The format bits get a different guard — a BCH code, not Reed-Solomon.
- One bad square kills a whole codeword. A codeword is 8 modules, so damage one and all 8 count as lost. A logo with soft edges clips many codewords at once, so it spends far more budget than its size suggests.
- The budget is shared. It is not your logo's budget. Ink spread, glare, a crease in the menu, a scuff on the table tent — they all draw from the same pot. Spend it on the logo and the real world gets nothing.

The print standard expects you to keep most of it spare
A second standard, ISO/IEC 15415, grades printed codes. It measures a value called Unused Error Correction: how much of the budget is still free.
A code with less than 25% of its budget spare scores an F. A fail — the top grade needs most of the budget untouched.
A code that has spent most of its budget has nothing left for wear. So spending the 30% on a logo means shipping a code the graders would fail.
Why the corners are not like the middle
The middle of a QR code is data, and data can be rebuilt. The corners are scaffolding, and scaffolding cannot.
A QR code has three corner squares, not four: top left, top right and bottom left. The gap where a fourth would sit tells the scanner which way up the code is.
The scanner hunts for those three squares before it reads a single bit. Cover one and it never finds the code. You do not get a weak scan, you get nothing — on every phone, at every error correction level. The same goes for the timing lines that run between the corners.
The bottom right usually holds a smaller square, the alignment pattern. It helps the scanner cope with a bent surface, and version 1 codes — the smallest, at 21 squares a side — have none. Larger codes have several, and in some sizes one sits near the middle. Check your own code before you cover the centre.
Should you just pick level H and stop worrying?
No — more error correction is not a free upgrade.
Extra correction needs extra codewords, and more codewords push the code up a version, so it holds more squares. At the same printed width, more squares means each one is smaller. Smaller squares are harder for a camera to resolve.
So an H code with a logo can scan worse than a plain M code at the same size. Denso Wave says level M is the one most people choose. Reach for H when there is a logo or a rough surface, not out of habit. Give the code more room on the page too — our QR code size guide has the widths.

How do I make a QR code with a logo that actually scans?
- Keep it small. No standard gives a maximum, so anyone quoting a number invented it. Small enough to look modest is the honest guide.
- Keep it centred. The logo, its plate and its shadow must never touch the three corner squares, the timing lines or an alignment square.
- Keep the edges hard. Put the logo on a solid light plate, and do not fade or blend it over the squares.
- Use level H. It is the only level with real room to spare once a logo is in.
- Leave the margin alone. The clear border round the code is part of the code. It needs four squares' width on all four sides.
- Print it and test it. Real size, real paper, real light, and the angle people will stand at.
That last one is not optional: test on at least one iPhone and one Android. A code that works on a bright monitor can still fail on a greasy laminated card. If yours fails, the ranked list of reasons a QR code will not scan usually names it.
One more thing before you print. A dynamic QR code lets you change where a code points, but never the printed pattern. A code that scans badly stays that way until you reprint.
Questions people ask
Does a logo need error correction level H?
Not strictly. The binding rules are simpler: stay off the corner squares and inside the budget. H is still the sensible pick, because it leaves the most room for a logo plus normal wear. Just remember it makes the code denser, so print it larger.
Can I put the logo over a corner instead?
No. The three corner squares are how a scanner finds and orients the code, and they carry no error correction. Cover one and the code is not weak, it is invisible. The same is true of the timing lines and the alignment squares.
How big can the logo be, exactly?
Nobody can tell you, and anyone who gives a number is guessing. It depends on the code's size, the pattern inside it, where the logo lands and how it prints. Start small, keep it centred, then print it and scan it. The test is the answer.
Can a logo make a code stop working months later?
It can. The logo already spends part of the error correction budget. Every scuff, crease and faded patch spends a little more. A code that just scrapes through on day one may fail after a month on a busy counter.
Try it before you print 200 of them
clik.so's QR code generator is free and needs no account, and the full customizer sits on the free plan, not behind a paywall. Build the code, add your logo, print one at the real size, and scan it before ordering the rest.

