Why can a QR code survive a logo at all?
Because QR codes are built with redundancy. Every symbol carries error correction data that lets a scanner reconstruct modules it cannot read — damage, dirt, or in this case a logo you put there on purpose.
That reframes the whole job. A logo is not “allowed” by some special feature; it is spending a budget that exists for damage. The question is never “can I add a logo” but “how much of the budget am I spending, and on what”. The error correction guide covers how that budget is actually measured — in codewords, not in area, which is why the usual size advice is more conservative than people expect.
How big can the logo be?
Keep it under about 20–25% of the code’s total area. On a square code, that is a logo roughly a fifth of the width of the symbol.
Be clear about the status of that number: it is a convention. No standard addresses logo overlay at all — ISO/IEC 18004 describes a symbology, not a branding practice. The figure is the conservative end of what tool vendors recommend, and it sits deliberately below the 30% headline figure for level H, because that 30% counts codewords rather than picture area.
| Logo area | Error correction | Realistic outcome |
|---|---|---|
| Up to 10% | M or H | Safe. Scans reliably on almost anything. |
| 10–20% | H | The normal branded-code range. Test, but expect it to work. |
| 20–25% | H | The practical ceiling. Test on several phones before printing. |
| 25–30% | H | Unreliable. Works on good cameras in good light, fails elsewhere. |
| Over 30% | H | Do not. You are past the budget regardless of level. |
The three areas you must never cover
Error correction protects the data region. Parts of a QR code are structural, and no amount of redundancy recovers them — a scanner needs them before it can begin decoding.
- The three finder patterns. The large concentric squares in the top-left, top-right and bottom-left corners. They are how a scanner locates the code in a camera frame and works out its orientation and perspective. Cover one and the code stops being findable, not just unreadable.
- The timing patterns. The alternating dark-light lines running between the finder patterns, which tell the scanner the module grid size. Short and easy to clip with a wide logo.
- The format information. The band immediately beside the finder patterns, which encodes the error correction level and mask pattern. Ironically, it is the part that tells the scanner how much error correction is available — and it is not itself protected by it.
All three are at the edges, which is exactly why the centre is the conventional place for a logo: it is the only large contiguous region that is purely data.
Settings that make it work
- Generate at error correction level H, with the logo in place. This is the part people skip — see the warning below.
- Put the logo in the centre, square to the grid, not rotated or offset.
- Give it a solid background panel in the code’s background colour, with a small margin. A clean edge decodes better than a logo blended into the modules.
- Print it larger than you otherwise would. Level H adds data, so the grid is denser and the modules smaller — a logo code needs more physical size than the same content without one. See the sizing guide.
- Keep the logo high-contrast against its panel, and the panel high-contrast against the modules.
Styling the finder eyes instead
If the goal is a code that looks like yours rather than a code with your logo in it, there is a cheaper option that costs no error correction at all: style the three finder patterns.
Giving the corner eyes their own colour or shape is often more distinctive than a small logo in the middle, and because you are restyling structure rather than covering data, it spends none of the correction budget. The constraint is that the structure must stay legible — a ring with a solid centre, in high contrast. Round the corners, recolour them, but do not break the concentric relationship.
Done well, finder-eye styling plus a brand colour reads as branded without any overlay.
Testing before you print
A logo code needs more testing than a plain one, because you deliberately damaged it.
- Scan from at least two phones — one iPhone, one Android.
- Include one older device. A code that only works on a current flagship will fail in the field.
- Test at the real distance and real size, printed, not on screen. Screens are backlit and perfectly sharp; paper is neither.
- Test in dim light and at an angle, which is how codes get scanned in restaurants and shops.
If any of those fail, the fix order is: shrink the logo, then enlarge the code, then shorten the encoded content. Raising error correction further is not available — you are already at H.
See also the print guide for everything else that decides whether the finished code survives the press.