How to Add a Logo to a QR Code Without Breaking the Scan
A logo in the center of a QR code looks great until it stops scanning. Here is how error correction works and how to brand a code that still reads reliably.
A logo in the middle of a QR code looks sharp and makes the code yours. It also covers up part of the data, and if you cover too much, the code reads fine on your phone in good light and fails on a customer’s older phone in a dim room. The difference between a branded code that works and one that quietly fails is understanding one feature: error correction.
Why you can cover a QR code at all
QR codes are built with redundancy. The standard includes error correction, which stores backup copies of the data so the code can still be read even when part of it is missing, dirty, or covered. This is the same property that lets a scuffed or slightly torn code still scan.
That redundancy is your room to add a logo. The logo covers some modules (the little squares), and error correction reconstructs the covered data from the redundant copies. As long as you stay inside the recovery budget, the scan still works.
The four error-correction levels
QR codes come in four levels, each able to recover a different share of the code if it is obscured:
- L (Low) recovers about 7%
- M (Medium) recovers about 15%
- Q (Quartile) recovers about 25%
- H (High) recovers about 30%
Higher levels pack in more redundancy, which means the code can survive more coverage but also looks denser because it holds more total data. For a logo, density is a fair trade for reliability.
The rules for a logo that scans
Use a high error-correction level. For a code with a center logo, level H (around 30% recovery) gives you the most headroom. This is the most important setting and the one most casual generators do not let you control.
Keep the logo small. Even at level H, you have a budget of roughly 30%, and you do not want to spend all of it. Aim for the logo to cover well under that, ideally in the range of 15 to 20% of the code’s area. The center is the safest place because it is furthest from the three position-detection squares in the corners, which scanners absolutely need intact.
Never cover the corners. The three large squares in the corners are how a scanner finds and orients the code. Error correction does not protect those. A logo or decoration that touches them breaks the scan regardless of your recovery level.
Keep strong contrast. A logo with colors close to the background, or a code with low contrast overall, fights the scanner even when the data is intact. Dark code, light background, clear logo.
Test before you commit
This is the step people skip, and it is the one that saves you from a thousand dead flyers. A branded code that scans on your newest phone, held still, in good light, can still fail in the real world.
Before you print anything, scan the final code with at least two different phones, including an older one if you can find it, in normal indoor lighting, from the distance people will actually use. If it reads instantly every time, you are safe. If it hesitates or needs perfect conditions, pull the logo smaller or bump the error correction up.
The takeaway
Branding a QR code is not risky if you respect the error-correction budget. Use level H, keep the logo small and centered, leave the corners alone, hold your contrast, and test on real phones. The codes that fail are the ones made in tools that drop a logo on top without letting you control the recovery level underneath it.
QR Forge lets you add a logo with the right error-correction level built in, so you get a branded code that still scans reliably, not just one that looks good on screen.