How to Add a Logo to a QR Code and Keep It Scannable
· DexURL Guides · 6 min read
A QR code can carry a logo and still scan reliably if you set error correction to High (30 percent), keep the logo to 15–20 percent of the symbol area, center it with a small clear margin, and never let it touch the three corner finder squares or the alignment pattern.
A logo works because a QR code is built to survive damage. Error correction adds redundant data across the pattern, and a scanner rebuilds whatever a logo, a scratch, or a smudge covers, up to a limit set by the error correction level.
Error correction is what makes this possible
There are four levels, and each one states how much of the code can be missing and still decode: L recovers about 7 percent, M about 15 percent, Q about 25 percent, and H about 30 percent. A logo covering part of the pattern is exactly the kind of damage error correction exists for, so set the level to H whenever a logo is involved — anything lower leaves too little headroom once ink spread and print imperfections take their share too.
Sizing and placing the logo
- Keep the logo to 15–20 percent of the symbol’s total area. Past that, even H-level error correction runs out of redundancy to reconstruct the covered modules.
- Center the logo. That is the one place a QR reader expects to find noise, and it is the position furthest from the finder squares that anchor the scan.
- Give the logo a small clear margin — a plain background behind it, not modules crowding right up to its edge — so the code and the mark read as two distinct layers rather than one smeared pattern.
- Never let the logo touch the three large squares in the corners or the smaller alignment pattern (on larger codes, off-center). Those are what a scanner uses to find and orient the code before it even starts reading data, and covering them stops the scan before error correction gets a chance to help.
Contrast still decides whether it scans
Error correction fixes coverage, not contrast. A camera still needs to tell modules apart, so keep at least a 3:1 contrast ratio between the dark and light areas, and keep it dark-on-light. Inverting a code to light-on-dark looks striking but fails on older phones and some third-party scanner apps that assume the traditional polarity — it is a real reliability cost for a look, not a safe stylistic choice.
The same logic applies to the logo itself: a flat, single-color mark holds up at small print sizes far better than a detailed photo or a gradient, which turns to noise once it is shrunk to 15–20 percent of a code the size of a business card.
Before you commit to a print run
- Export as SVG rather than a raster format. SVG stays sharp at any print size, which matters more once a logo has already used up some of the code’s error-correction headroom.
- Scan the exported code with two different phones, ideally one iPhone and one Android, since camera and scanner-app behavior varies enough that one device passing is not proof the other will.
- Test on the actual stock the piece will print on, not a screen or a laser proof — matte paper, glossy laminate, and fabric all reflect light differently.
- If it fails on either phone, drop the logo size before you drop the error correction level; a smaller logo at H holds up better than a larger one at Q.
This applies just as well to a code that is not a plain URL. Wi-Fi and contact-card codes on the free QR code generator and vCard generator support the same logo upload, with no watermark and no account required.
Every type on the free QR code generator includes logo upload at no cost, along with a live density readout so you can see how much headroom a given logo size leaves before you export.