QR Code Error Correction: What It Means and Which Level to Use

qrcodes.gg··4 min read

One of the most remarkable features of QR codes is their ability to function even when they are partially damaged, dirty, or obscured. This is possible because of Reed-Solomon error correction — a mathematical algorithm built into every QR code that adds redundant data, allowing the scanner to reconstruct missing information. QR codes offer four error correction levels, and choosing the right one affects both the reliability and the physical size of your code.

What Are the Four Error Correction Levels?

Level L (Low) recovers up to 7% of damaged data. It produces the smallest, simplest QR code and is best for clean digital environments where damage is unlikely. Level M (Medium) recovers up to 15% of data and is the default for most generators. It strikes a good balance between size and resilience. Level Q (Quartile) recovers up to 25% of data and is recommended when the QR code may be exposed to wear, dirt, or partial covering. Level H (High) recovers up to 30% of data and is required when you want to place a logo or graphic over the center of the code.

How Does Error Correction Affect QR Code Size?

Higher error correction levels require more data modules in the code, which makes the QR code physically denser. A QR code with Level H error correction has roughly twice as many modules as the same content with Level L. This means the individual squares are smaller, which requires the overall QR code to be printed larger for reliable scanning. If space is tight — on a business card or small product label — using Level L or M keeps the code compact. If you have plenty of space, Level Q or H gives you extra insurance against scanning problems.

Can You Add a Logo to a QR Code?

Yes — this is one of the most popular uses of error correction. When you place a logo in the center of a QR code, you are deliberately covering a portion of the code. Error correction fills in the missing data. For a logo to work reliably, use Level H (30% recovery) and keep the logo no larger than 20-25% of the total code area. The logo should have clean edges and high contrast against the code. Avoid logos with fine details or transparent backgrounds, as they can interfere with the surrounding modules. Always test a QR code with a logo on multiple devices — some codes that look good to the eye may not scan reliably.

Which Error Correction Level Should You Choose?

For digital use only (screens, websites, presentations), Level L is sufficient because the code will not be physically damaged. For general print use (flyers, business cards, posters), Level M provides a good safety margin with minimal size increase. For outdoor use, product packaging, or any environment where the code might get dirty, scratched, or partially covered, use Level Q. For QR codes with a center logo or in harsh environments, use Level H. When in doubt, Level M is the safest default — it adds minimal size overhead while recovering from minor print imperfections and everyday wear.

Conclusion

Error correction is what makes QR codes so resilient in the real world. For most use cases, Level M (the default) works perfectly. Only go higher if you are adding a logo or expect physical damage, and only go lower if you need the smallest possible code for digital-only use. Generate your QR code at qrcodes.gg — error correction is applied automatically at the optimal level for your content.