A QR code with a smudge, a scratch or a logo in the middle still scans because of error correction. You choose how much of it the code carries, and every level has a price. This guide explains the four levels, why a logo needs the highest one, what the QRnaka generator does for you, and which level to pick when.
How error correction works
When a code is made, extra recovery data is calculated from your content (Reed-Solomon coding, as defined in the QR standard ISO/IEC 18004) and stored alongside it. If part of the printed code is dirty or missing, the reader uses that extra data to rebuild what was lost. The higher the level, the more recovery data, and the more damage the code survives.
| Level | Recovers about | The generator calls it |
|---|---|---|
| L | 7% | smallest |
| M | 15% | standard |
| Q | 25% | strong |
| H | 30% | strongest |
The site adds two points worth remembering:
- The percentage is the share of data that can be restored, not of the area. Two stains of the same size can do different amounts of harm depending on where they fall.
- Covering one of the three large corner squares stops the code reading at any level, because readers use those squares to find the code.
The trade-off: denser dots
Recovery data needs room. For the same content, a higher level usually needs more modules, so at the same printed size each module is smaller: phones must come closer, or you print bigger. That is why the generator's note says that for very small prints you should use L or M.
You can watch this happen. Under the preview, "Size" shows the version and modules per side, and "Recovery" shows the level actually in use. Switch levels and see the module count change.
If the content is too long to fit, the page says so and suggests shortening it, choosing a lower level, or using a tracked link. Tracked QR codes are a member feature with a 30-day free trial; prices are on the pricing page, and dynamic QR codes explained shows how they work.
Can you put a logo in a QR code?
Yes, if the logo is modest and the level is high. A logo placed over the middle hides the modules beneath it, and the reader has to recover them, so H, with the most spare capacity, is the right level.
On QRnaka, adding a logo, choosing one of the built-in icons or using "Picture QR" switches the code to level H automatically, and a warning appears if the logo is large enough to risk the scan.
What people often forget: capacity used up by the logo is no longer available for real-world damage. A code with a big logo survives fewer stains than a plain code at the same level. After adding a logo, move the "Try damaging it" slider to see how much margin is left.
What the generator does for you
- It starts at M, the standard level, which suits most jobs.
- "Raise the level for free when the size stays the same" is on by default. If a higher level fits in the same number of modules, the generator uses it, and the "Recovery" line adds "(raised for free)". You gain robustness without a bigger code.
- A logo or picture always means H.
- Every change is checked, with a "Scans" or "May not scan" badge on the preview.
- The "Try damaging it" slider simulates stains and tears. If the code stops reading, the page suggests a higher level; if it is already at H, it suggests a smaller logo or picture, or a tracked link so the code holds less data.
Which level should you choose?
| Your job | Level |
|---|---|
| Everyday use, shop signs, documents | M (the default) |
| Very small prints or long content | L or M |
| Stickers on products handled often, outdoor signs | Q or H, printed larger |
| A logo or picture | H (set for you) |
Whatever you choose, error correction does not make a code scan from further away. Distance depends on printed size and module density; see why a printed QR won't scan.
FAQ
Is H always best?
No. H is the toughest but also the densest, so a small H code can be harder to read than a lower level. Choose for the conditions.
I picked M, so why does the page say Q or H?
Either the generator raised the level because the size stayed the same ("(raised for free)"), or you added a logo or picture, which forces H. Without a logo, untick the automatic raise if you want exactly the level you chose.
How big can a logo be?
No single figure fits every code. Follow the page's warning, the "Scans" badge and the damage slider, then test with real phones.
Does a higher level help scanning from further away?
No. It can even make the modules smaller. Distance depends on printed size.
Try it on the QR generator: open "Error correction", switch between levels, and slide "Try damaging it" to see what your code can survive.