QR Code Error Correction:
Understanding the Basics
By James Bell · Updated April 2025

QR Code error correction allows QR codes to remain readable even if they are partially damaged, distorted, or obscured. Extra data is added throughout the QR code so that scanners can reconstruct the original data even if parts of the code are missing or unreadable.
All standard QR codes have at least a low level of error correction where 7% of the code can be disrupted. But, depending on the level of error correction used when created, up to a whopping 30% of a QR code can be damaged or obstructed while remaining scannable.
The ability is achieved by adding redundant data throughout the QR code, using Reed-Solomon coding principles – which I’m not going to pretend to fully understand (but luckily, you don’t need to either).
QR Code Error Correction Levels
There are four levels of QR code error correction, each offering a trade-off between data capacity and error resilience:
Low (L) – 7% loss recovery
- Allows the most data storage because less space is used for error correction.
- Best for controlled environments or digital displays.
- Allows for smaller QR codes
Medium (M) – 15% loss recovery
- Balances data storage and error correction.
- Commonly used in general applications.
Quartile (Q) – 25% loss recovery
- More resilient to damage, useful for situations where the QR code might be scratched, blurred, or partially covered.
- Increases scanning size of QR code (more on this below)
High (H) – 30% loss recovery
- Maximum redundancy
- Ideal for harsh environments where codes may be damaged (e.g., industrial settings, and marketing materials).
- Best for custom QR codes with brand elements (more below)
- Increases scanning size of QR code (more below)
There is a guide at the bottom of this post that tells you how to know the error correction level of any QR.
Why you DON’T always want high error correction
You might naturally think “Why wouldn’t I always with the highest level of error correction for all my QR codes?” – well there can be drawbacks.
High error correction makes QR codes bigger
Adding extra data to make a QR code more resilient means the code needs more modules (black squares) to hold that data. The higher the density of the QR code, the larger it needs to be to scan properly.
See below how the density changes between low and high error correction:
| QR Data | Low | High |
|---|---|---|
| https://qrcow.net/ | 25×25 | 29 x29 |
| https://qrcow.net/find-your-qr-code-version/ | 29×29 | 41×41 |
Similarly, if a QR code is more complex low-quality printers may struggle to reproduce it accurately at small sizes, and it might need to be bigger.
Tip: you can help reduce the size of long urls to make your QR code smaller by using a link shortening service.
Error correction isn’t necessary for digital use
If the QR code is displayed on a screen (e.g., a website, an app, or email), there’s little really no chance of it being damaged.
Slower Scanning Times
A high error correction level adds more complexity to the decoding process. While this won’t be an issue for most modern phones, some older or lower-quality QR scanners may take longer to process a denser QR code at higher levels like Q or H.
When you DO want high error correction
You will want higher levels of QR Code error correction in harsh environments. If it’s printed on something that might get scratched, torn, or dirty from exposure, moisture, or rough handling (e.g., some product packaging, outdoor signs, or business cards).
But there are other reasons you might want to consider additional error correction.
Printing on an uneven or curved surface
If the QR code is on a something fabric that could bend and distort (flags, shirts, hanging banners), higher error correction could help compensate for distortions.

Similarly, there could be scenarios where it would help if wrapped around a curve – although most QR codes printed on bottles and cans are small enough to avoid being affected.
High error correction allows for QR code customization
Branding or Design Overlays Part of the QR Code – If you’re placing a logo or custom design inside the QR code, error correction helps it remain scannable despite missing data.

It’s best practice to give yourself a scanning buffer when creating these custom-designed codes. For instance, set the error correction to high (30%), but only impact 20% of the grid.
Remember, always test your custom QR codes.
Choosing the right level of error correction
Low (L): Best for a controlled environment and on digital displays.
Medium (M): A good balance between storage and resilience.
Quartile (Q): Ideal for use cases where some damage or interference is expected like outdoor marketing.
High (H): For maximum durability, for high contact uses like outdoor marketing, or custom QR codes with added brand elements.
How to know the error correction of a QR code
Not all QR code generators give you an option for the level of error correction (they aren’t as handy as the QR Cow generator). However, identification markers within each QR code can tell you the error correction level.

There are two stacked modules in a QR code that show the error correction level. They are at the bottom of the code, in the column to the right of the lower alignment square. The pattern of black and white within those modules will tell you the error correction level.
- Both black = Low
- Bottom black = Medium
- Top black = Quartile
- Both white = High

