free qr generator

QR Code Error Correction Levels Explained

Error correction is one of the most important — and most misunderstood — settings when creating a QR code. Choosing the right level determines whether your code scans reliably in the real world.

1960
Reed-Solomon codes first described; adapted for QR error correction when Denso Wave invented QR codes in 1994
Reed & Solomon / Denso Wave
4
Error correction levels: L (7%), M (15%), Q (25%), H (30%)
ISO/IEC 18004:2015
30%
Surface damage Level H codes can absorb and still scan
QR Tiger Testing

What Is Error Correction in a QR Code?

QR codes use a mathematical technique called Reed-Solomon error correction to encode redundant data within the code itself. This means that even if part of the QR code is physically damaged, obscured, or dirty, the scanner can reconstruct the missing data from the redundant copies. Reed-Solomon error correction was first described by mathematicians Irving Reed and Gustave Solomon in 1960 — and was later adapted by Denso Wave engineers when they invented QR codes in 1994.

Think of it like a RAID disk array: even if one disk fails, the data can be recovered from the others. QR codes work on the same principle — the more redundancy built in, the higher the percentage of damage the code can absorb and still scan correctly.

According to ISO/IEC 18004:2015, QR codes support four error correction levels, each recovering a different maximum percentage of data loss. The trade-off: higher correction means more data modules in the code, which makes the QR code physically larger and more visually dense for the same amount of encoded data.

The 4 Error Correction Levels

L
Low
Recovers up to 7% damage

Smallest code size. Suitable for controlled environments where the QR code will be displayed cleanly and scanned at close range on a stable surface.

M
Medium
Recovers up to 15% damage

The most common default level. Good balance of size and reliability for general print use — brochures, posters, cards. Not enough for logo overlays.

Q
Quartile
Recovers up to 25% damage

Higher redundancy for outdoor signage, mildly dirty environments, or small logo overlays. Code is noticeably more dense than M level.

H
High
Recovers up to 30% damage

Maximum redundancy. Required for logo-overlaid QR codes, outdoor contexts, product packaging, and anywhere damage or partial obscuration is likely.

The percentage figures (7%, 15%, 25%, 30%) refer to the maximum percentage of codeword data that can be corrupted or missing and still be fully reconstructed. According to QR Tiger testing, QR codes printed at Level H remain scannable even when up to 30% of the code surface is obscured or damaged — a finding consistent with the ISO/IEC 18004:2015 specification.

Full Comparison Table

Level Recovery Code Size Logo Overlay Best For
L Low 7% Smallest No Digital displays, screens, apps
M Medium 15% Small Very small only Standard print: brochures, flyers
Q Quartile 25% Medium Small–medium Outdoor signage, light logo use
H High 30% Largest Yes (up to ~30%) Logos overlaid, outdoor, packaging

When to Use Each Level

Level L — Digital screens only

Use Level L when your QR code will only ever be displayed on a clean, high-resolution digital screen and scanned at close range: a presentation slide, a website, a digital signage display in ideal lighting. The code will be as compact as possible, which matters when space is tight on screen.

Never use Level L for print. Real-world printing introduces subtle imperfections, paper grain, and wear that can push a 7% tolerance code into failure territory quickly.

Level M — Standard print (flyers, brochures, cards)

Level M is the appropriate default for everyday print materials in clean, indoor environments: business cards, flyers, product inserts, and table cards. The 15% recovery tolerance handles typical print quality variation and minor wear without inflating the code's physical size too much.

If you're unsure whether you need M or Q, go with Q — the size increase is modest and the extra resilience is worth it in almost every print context.

Level Q — Outdoor signage and light logo use

Use Level Q for QR codes placed outdoors on signage, A-frames, or window stickers, where exposure to rain, dirt, direct sunlight, and physical contact will degrade the code surface over time. It's also the minimum for placing a very small logo (under 10% of the QR area) in the centre of the code.

Level H — Logos, outdoor, product packaging

Level H is the right choice whenever:

With Level H, a centred logo covering up to roughly 25–30% of the code's area can still be fully scanned. The logo does not need to be perfectly centred, but it should not touch the three finder pattern squares in the corners.

How Error Correction Affects QR Code Size and Complexity

Higher error correction means more modules (the small squares) in the QR code. For the same data payload, a Level H code will be larger and visually denser than a Level L code. Specifically:

In practice for print use, this difference is small and rarely visible to the naked eye. The codes look similarly dense. The minimum print size changes slightly — see our QR code size guide for exact print specifications.

For digital displays where space is truly at a premium (e.g., a small QR code in a mobile app UI), Level L is worth using to keep the code compact and render crisply at smaller pixel sizes. For everything else, err on the side of more error correction.

QRMake uses Level H by default — here's why

We generate all QR codes at Error Correction Level H. This means your codes can withstand up to 30% surface damage and fully support logo overlays in the centre. Most users are creating codes for print use — business cards, marketing materials, signage — where resilience and logo compatibility matter far more than the marginal size difference. Level H is the right default for real-world QR codes. Download as a high-res PNG (at least 1000px) for the cleanest print output — see our PNG download guide for best practices.

Common Questions About Error Correction

What is QR code error correction?

QR code error correction is a built-in mechanism that allows a QR code to be read correctly even when part of it is physically damaged, obscured, or dirty. It uses Reed-Solomon error correction — a mathematical algorithm first described by Irving Reed and Gustave Solomon in 1960 — to encode redundant data within the code. Even if a portion of the QR code is missing, a scanner can reconstruct the full data from the redundant copies.

What are the four error correction levels in QR codes?

According to ISO/IEC 18004:2015, QR codes support four error correction levels: L (Low) recovers up to 7% of damaged data and produces the smallest code; M (Medium) recovers up to 15% and is the most common default; Q (Quartile) recovers up to 25% and is suitable for outdoor use and small logo overlays; H (High) recovers up to 30% and is required for logo-overlaid codes, outdoor signage, and product packaging.

Which error correction level should I choose?

For most print use cases — business cards, flyers, posters, and packaging — choose Level H. It provides maximum damage tolerance and supports logo overlays up to approximately 25–30% of the code area. Level L is only suitable for clean digital screens where damage is impossible. When in doubt, H is always the safe choice — the size difference compared to Level M is negligible in real print applications.

Can a damaged QR code still be scanned?

Yes. QR Tiger testing found that QR codes printed at Level H remain scannable even when up to 30% of the code surface is obscured or damaged. A small tear, fold crease, or partial smudge that covers less than this threshold will typically still scan successfully. However, damage to the three square finder patterns in the corners is more critical — these orient the scanner and losing all three makes reading very difficult.

Why does a higher error correction level make the QR code more complex?

Higher error correction means more redundant data modules must be packed into the code grid. For the same encoded data, a Level H code requires more squares (modules) than a Level L code — making it physically larger or more visually dense. For a short URL at Level L, a 25×25 module grid may suffice; the same URL at Level H may require a 29×29 or larger grid. In practice for print use, this difference is barely visible to the naked eye.

What error correction level does QRMake use?

QRMake generates all QR codes at Error Correction Level H by default. This ensures maximum damage tolerance (up to 30% of the code surface) and full support for logo overlays. Since most users create codes for print use — business cards, marketing materials, outdoor signage — Level H is the right default. The marginal size increase compared to lower levels is negligible in real-world print applications.

Generate a Level H QR Code for Free

All QRMake codes use maximum error correction by default — perfect for print, logos, and outdoor use.