Why a logo does not break the code
Every QR code contains extra error correction data, calculated with Reed-Solomon codes, the same family of error-correction methods used on CDs. When part of the code is missing or unreadable, the scanner uses that extra data to rebuild what is missing. A logo in the center is, as far as the scanner is concerned, a patch of damage. If error correction can repair the damage, the code remains scannable.
Pick error correction level H
| Level | Recovers about | Use it for |
|---|---|---|
| L | 7% | Clean digital screens, maximum data |
| M | 15% | Most plain printed codes |
| Q | 25% | Rough surfaces, small logos |
| H | 30% | Codes with a logo, outdoor or industrial use |
Higher levels leave less room for data, so the same link may require a higher QR version with more modules (the small squares). That is a fair trade for a logo, but it is another reason to keep the link short.
How big the logo can be
The 30% figure for level H refers to codewords, not visible area, and your logo should use only part of that margin. The rest is needed for real-world problems: a smudge, glare on a glossy label, a slightly curved surface.
- Safe: a centered logo whose card is about 20% to 25% of the code's width. That covers roughly 5% to 6% of the area.
- Usually fine: up to about 30% of the width, around 10% of the area, if the print is clean and the code is not tiny.
- Risky: anything larger, off-center, or touching the corner squares.
Barcode Pro places the logo on a card 22% of the code's width and checks every render with a decoder, so you can see immediately if a change goes too far.
Areas you must never cover
- The three large corner squares (finder patterns). Scanners use them to find the code and determine its angle. Error correction cannot reliably compensate for covering them.
- The smaller squares (alignment patterns) that appear on all but the smallest codes, the first one near the bottom right.
- The quiet zone: a blank margin of 4 modules on every side. Frames, text and patterned backgrounds must stay outside it.
Colors and styling
- Contrast first. The dark modules must be clearly darker than the background. A midtone brand color, such as a bright orange on white, can fail.
- Dark on light is safest. Inverted codes (light modules on a dark background) scan in most modern phone camera apps, but not in every scanner app or older device.
- Rounded modules are fine when they keep most of each square filled. Very small dots leave too little dark area.
- Avoid gradients across the code that fade the modules toward the background color. A solid color is more reliable.
- Put a solid background behind the logo. A white or light card around the logo helps keep its edges from being read as random modules.
Keep the content short
Longer content needs more capacity. A code for https://example.com/p/42 is much less dense than one carrying a long tracking link with several parameters. At a fixed print size, fewer modules make each one larger, leaving more room for a logo and allowing scans from farther away.
If you need tracking, use a short path on your own domain that redirects to the long link. Unlike a paid dynamic QR service, a redirect on your own domain keeps working as long as you keep the domain and the website running.
Size and distance
A rough starting point is that a QR code can be scanned from about ten times its width. A 25 mm code on a flyer reads from around 25 cm; a code on a poster seen from 2 m should be about 20 cm wide. Dense codes need more, so always test at the real distance. See the barcode size guide for more detail.
Test before you print
- Scan the code on a screen with at least two phones, one iPhone and one Android if you can.
- Print one copy at its intended size on the intended material.
- Scan it in poor light, at an angle, and from the distance people will actually use.
- Check that it opens the right page, and that the page works on mobile.
Frequently asked questions
How big can the logo in a QR code be?
With error correction level H, a centered logo covering about 10% or less of the code's area is a sensible target, and more is possible but riskier. Level H can restore about 30% of the codewords. That is not the same as 30% of the area, and the margin also has to cover print defects, glare and scratches.
Which QR error correction level should I use with a logo?
Level H, the highest. It lets the code recover roughly 30% of its codewords. Level Q recovers about 25%, M about 15% and L about 7%. A small logo can work at Q, but H gives the most margin.
Can a QR code be in color?
Yes, as long as the dark modules are clearly darker than the background. Dark-on-light scans most reliably. Many phone apps also read light-on-dark codes, but some older scanners do not.
Does a QR code with a logo expire?
A static QR code, including one with a logo, does not expire on its own because it contains the link or text itself. A code containing a link works while its destination and domain remain available. Dynamic QR services redirect through their own server, so the code also depends on that service, and many stop redirecting when the subscription ends.