Explainer

QR Code With a Logo

How error correction pays for a centre logo, how much you can really cover, why the corners break the scan outright, and how to test before print.

Daniel VSeptember 7, 20265 min read

Add a logo and frame to a dynamic QR code so the artwork survives a change of destination.

The middle is not empty

QR codes use Reed-Solomon error correction: the message is stored with redundant information spread across the whole pattern, so a scanner can reconstruct it from a partial read. That is why a scuffed code still works, and it is the same mechanism a logo relies on.

So a centre logo is not decoration in a blank area. It is deliberate damage, paid for out of a fixed repair allowance. The question is never “can I add a logo”, it is “how much of the allowance is left afterwards”.

The budget, and why you should not spend it all

The four correction levels recover roughly 7% (L), 15% (M), 25% (Q) and 30% (H) of the code. Designers read that as “H means I can cover 30%”, and that is the mistake.

That percentage is the total damage the code can absorb, from every source at once: the logo, plus ink spread on absorbent card, plus a fold, plus glare on a gloss finish, plus a scanner reading at an angle in bad light. Spend the whole budget on the logo and the first scuff takes the code below the line. A practical limit is to keep a centre logo under about a fifth of the area even at H, and leave the rest for reality.

The other cost is size. Higher correction stores more redundant data, which means more modules, which means each module is physically smaller at the same printed size. On packaging, where you may only have two centimetres, a logo at H can push the pattern past what the printing process can hold. Fewer characters in the encoded URL buys that space back, which is a quiet argument for a short redirect link over a long tracked URL.

Why the corners are off limits

The three large squares in the corners are finder patterns. A scanner uses them to detect that a QR code exists at all and to work out its orientation and perspective. Smaller alignment patterns help it correct for the code being photographed at an angle or on a curve.

None of that is error-corrected data. Cover a finder pattern and the scanner does not repair the damage, it fails to recognise a code in the first place. This is why a logo placed in a corner “to keep the middle clean” is far riskier than one in the centre, and it is worth saying out loud to whoever is doing the layout.

Colour, contrast and the quiet zone

Colour is fine; low contrast is not. A scanner separates dark modules from a light background, so a brand mid-tone on another mid-tone can look elegant on screen and fail on a shelf. Inverted codes, light modules on dark, are not read reliably by every scanner app, so treat them as a deliberate risk rather than a style choice.

Keep the quiet zone: about four modules of clear space on all four sides. Layouts crowd it constantly, and a code with a border touching it fails intermittently, which is the worst failure mode because nobody reports it and you never find out.

Test it the way it will be used

Scanning the artwork on your monitor proves almost nothing: a bright backlit screen at 20cm is the easiest condition a QR code will ever face. Print it at final size, on the real material, and scan it with an old cheap phone, at an angle, under shop lighting.

Do that before the logo is signed off, not after the run is approved. If the code is dynamic you can at least fix a wrong destination later; you cannot fix a pattern that was too damaged to read.

One thing a logo does not give you

A branded code looks trustworthy, and that is exactly why it is not evidence. A QR code is unreadable to a human either way, so a logo is a claim about the destination that the reader cannot check. Placing a sticker over a real code in public works for the same reason.

Nothing to do about it in the artwork, but worth knowing when deciding how much to lean on a branded code as a trust signal for the person scanning it.

Frequently Asked Questions

How does a QR code still scan with a logo covering the middle?▾
QR codes carry Reed-Solomon error correction, which stores redundant copies of the data spread across the pattern. A scanner can rebuild the message from what it can still see. A centre logo works because it destroys some of those modules and the redundancy covers the loss, not because the middle is empty space.
How much of a QR code can a logo cover?▾
The four levels correct roughly 7% (L), 15% (M), 25% (Q) and 30% (H) of the code. Treat those as the ceiling, not the target: they are the total damage budget, and print wear, glare and a bad camera angle all draw on the same budget. A common working limit is to keep a centre logo under about a fifth of the area even at H, so there is correction left for the real world.
Which error correction level should I use with a logo?▾
H if the logo is anything more than a small mark, Q if it is small and the print is good. H adds redundancy by adding modules, so the pattern gets denser at the same physical size, which is a real cost when the code is small on packaging. You are trading print size for tolerance.
Where should the logo go?▾
Centred. The three big squares in the corners are the finder patterns a scanner uses to locate and orient the code, and the smaller alignment patterns matter too. Covering any of them tends to break the scan outright rather than degrade it gracefully, which is why a logo tucked into a corner is riskier than one in the middle.
Will colours or a gradient stop it scanning?▾
Contrast decides it, not colour. Scanners need the dark modules clearly darker than the light background, so a mid-tone on a mid-tone fails even when it looks fine on screen. Inverted codes, light modules on a dark background, are not read reliably by every scanner app. Keep the quiet zone, about four modules of clear space, whatever the palette.
Does adding a logo make the code less secure?▾
No, but it changes what a person can verify. A QR code is unreadable to humans either way, and a logo makes a code look endorsed by whoever it depicts. That is a social risk rather than a technical one: it is the reason a sticker placed over a real code in public is effective, and a branded code is not proof of anything.
Do I need a dynamic code to add a logo?▾
No. A logo is a rendering choice and works on any code. What a dynamic code adds is the ability to fix the destination later without redoing the artwork, which matters more once a designer has spent time on the code.