A QR code with your logo in the middle looks far more professional than a plain black grid, and people are more likely to trust and scan it. But drop a logo in carelessly and you can stop the code working altogether. The trick is understanding error correction. Get that right and you can brand a code freely.
Why a logo does not always break a code
QR codes have error correction built in. The standard stores the data with redundancy, in a way that lets a scanner rebuild the message even if part of the code is missing or damaged. That is why a slightly torn or smudged code still scans. A centre logo simply covers some of that redundant data, and as long as you have not covered too much, the scanner fills in the gap.
Pick the right error correction level
There are four levels, from L to H:
- L recovers about 7% of the code. No room for a logo.
- M, about 15%.
- Q, about 25%. A sensible minimum for a logo.
- H, about 30%. The safest for branding.
For a code with a logo, use Q or H. The higher the level, the more of the centre you can cover, at the cost of a slightly denser code.
Keep the logo small enough
Even at level H, do not cover more than roughly a third of the code. Keep the logo central, leave a little padding around it, and never let it touch the three large squares in the corners. Those are the position markers a scanner uses to find and orient the code. Cover one of those and nothing will read it.
Test before you print
This is the rule people skip and regret. Generate the code, then scan it with two or three different phones before it goes anywhere near a print run or a sign. Print adds its own problems (low contrast, glare, small size), so test at the size you will actually use.
The QR code generator here lets you add a logo, set the error correction level, and download a high-resolution PNG or a vector SVG for print. Bump the correction to Q or H when you add the logo, keep it central and modest, test it on a couple of phones, and you get a branded code that still works.