Skip to content

QR Error Correction Levels: Which to Use & When H Hurts

Ahmad Tayyem
Founder
· Updated June 16, 2026 · 11 min read · Reviewed by QRLynx product team
QR Error Correction Levels: Which to Use & When H Hurts

Key Takeaway

L, M, Q or H? A plain-English decision guide to QR error correction — which level to pick for logos, print and outdoor, and the one case where maxing it out backfires.

Short answer: Use M (15%) for everyday printed codes, H (30%) whenever you add a logo, and Q (25%) for outdoor or industrial signage. Reach for L (7%) only on clean screens. Don't default to H — it makes the code denser and harder to scan at small sizes, so only step up when the environment or a logo actually calls for it.

L7%M15%Q25%H30%
Higher levels restore more of a damaged code but add modules and density. Use M by default, H for logos, Q outdoors — and see our scan benchmarks for how level and size affect real scan rates.

TL;DR

QR codes have four error correction levels defined in the ISO/IEC 18004 spec: L (7%), M (15%), Q (25%), and H (30%). The number is how much of the code can be damaged and still scan, using Reed-Solomon math. Default is M. Use H whenever you add a logo — the logo counts as damage. Higher levels make the QR denser, which means a larger print size for the same data.

What Is QR Code Error Correction?

QR code error correction is a built-in technology that allows QR codes to remain scannable even when part of the code is damaged, dirty, or obscured. This is one of the key reasons QR codes are so reliable — they can lose a significant portion of their data and still work.

The technology was developed by DENSO WAVE when they invented QR codes in 1994. It uses Reed-Solomon error correction, the same mathematical algorithm used in CDs, DVDs, and satellite communications. The algorithm adds redundant data to the QR code so that a scanner can reconstruct the original information even if some modules are unreadable.

Every QR code has one of four error correction levels, and choosing the right level affects both the reliability and the data capacity of your code.

The Four Error Correction Levels

The ISO/IEC 18004 standard defines four error correction levels for QR codes:

LevelNameData RecoveryUse Case
LLow~7% of data recoverableClean digital displays, screens
MMedium~15% of data recoverableGeneral purpose (default)
QQuartile~25% of data recoverableIndustrial, outdoor signage
HHigh~30% of data recoverableHarsh environments, logo overlay

Level M (15%) is the most commonly used default. It balances reliability with data density for most everyday applications. Level H is essential when you want to add a logo in the center of the QR code, because the logo effectively damages up to 30% of the code area.

How Reed-Solomon Error Correction Works

Without getting too deep into mathematics, here is how QR code error correction works in simple terms:

  1. Data encoding: Your URL, text, or data is converted into a binary sequence of 1s and 0s
  2. Redundancy addition: The Reed-Solomon algorithm calculates additional "error correction codewords" and appends them to the data. The higher the error correction level, the more redundant data is added
  3. Module placement: Both the original data and the error correction codewords are placed as dark/light modules (squares) in the QR code grid
  4. Scanning and recovery: When a scanner reads the QR code, it checks for errors. If modules are missing or damaged, the algorithm uses the redundant codewords to reconstruct the original data

Think of it like sending a message with extra copies of key words. If some words get smudged, the reader can fill in the blanks from the copies.

One nuance worth getting right: the 7%, 15%, 25%, and 30% figures are the share of total codewords (the 8-bit data units that build the code) that can be restored — not the share of the physical image. DENSO WAVE, the QR code's inventor, defines it this way in the official spec, which is why a code can survive a logo or scratch covering a similar fraction of its area.

How Error Correction Affects QR Code Size

There is a direct trade-off between error correction level and QR code density:

  • Higher error correction = more modules = larger or denser code
  • Lower error correction = fewer modules = smaller or simpler code

For the same data content, a QR code with Level H error correction will have roughly 65% more modules than one with Level L. This means:

  • The code needs to be printed larger for reliable scanning
  • Or each module becomes smaller, requiring a higher-quality printer and camera

This is why choosing the right level matters. Using Level H when Level M would suffice wastes space and makes the code harder to scan at small sizes. See our QR Code Size Guide for specific minimum dimensions.

Which Error Correction Level Should You Use?

Choose based on where your QR code will be used:

ScenarioRecommended LevelWhy
Digital screen/displayL (Low)No physical damage risk, smallest code size
Business cards, flyersM (Medium)Standard handling, good balance
Product packagingM or QMay get scuffed during shipping
QR code with logo overlayH (High)Logo covers ~7-10% of the code
Outdoor signageQ or HWeather, dirt, and UV exposure
Industrial/warehouseH (High)Harsh conditions, dust, moisture
StickersQ (Quartile)May peel, scratch, or fade

When using QR codes with logos, always use Level H. The logo effectively destroys a portion of the code, and Level H ensures the code remains scannable despite this intentional damage.

How to Choose and Set Error Correction Level

1

Assess your environment

Where will the QR code be displayed? Indoor/clean environments can use Level L or M. Outdoor, industrial, or high-wear environments need Q or H.

2

Check if you are adding a logo

If you plan to overlay a logo on the QR code center, you must use Level H (30% recovery). The logo typically covers 7-10% of the code area. Level M would not survive this.

3

Consider the data size

Longer URLs or more data require more modules. Higher error correction adds even more. If your QR code is getting too dense, shorten the URL (use a dynamic QR code) or reduce the error correction level.

4

Test before mass production

Print a sample QR code and scan it from the expected distance, in the expected lighting, with multiple phone models. If it scans reliably, your error correction level is appropriate.

Error Correction and QR Code Design

Error correction is what makes creative QR code design possible. Without it, any modification to the standard black-and-white grid would break the code. With Level H error correction, you can:

  • Add logos: Place a small image in the center covering up to ~10% of the code
  • Use custom colors: As long as there is sufficient contrast between foreground and background
  • Use rounded dots: The shape of individual modules can be changed without affecting scannability
  • Add gradient effects: Subtle gradients work if contrast is maintained

The key rule: high error correction enables more creative freedom (at the cost of capacity — see how versions and capacity interact), but always test the final design before printing. Creative designs that reduce contrast or obscure too many modules will still fail. The fastest way to verify your chosen error correction level is actually sufficient for your final design is to scan the exported file with our free online QR code scanner — if it decodes cleanly with your logo overlay, the ECC level holds; if not, bump up one level (M to Q, or Q to H) and re-export.

Common Error Correction Mistakes

Avoid these pitfalls that cause QR codes to become unscannable:

  • Using Level L with a logo: Level L can only recover 7% of data — a centered logo destroys more than that
  • Ignoring the quiet zone: The white border around a QR code is not optional. Without it, scanners cannot detect the code boundaries
  • Low contrast with Level L: Light gray on white might scan with Level H but will fail with Level L
  • Printing too small: High error correction adds more modules. If you then print the code too small, individual modules become unresolvable by cameras
  • Compressing as JPG: JPEG compression blurs module edges. Always use PNG or SVG for QR codes

If your QR code is not scanning, check our 12 Common Fixes guide. For the Reed-Solomon mechanism Hara designed in 1994 and the full origin story, see our history of QR codes.

How Big Should a QR Code's Quiet Zone Be?

A QR code's quiet zone is the blank margin around the symbol. The ISO/IEC 18004 standard — created by Denso Wave, the QR code's inventor — requires a quiet zone of at least 4 modules on all four sides, where one module is the width of a single dot in the code. Without that 4-module margin, scanners often cannot tell where the code ends and frequently fail to read it.

Micro QR codes are the exception — they need only a 2-module margin — but every standard QR code needs the full four. Because the quiet zone is measured in modules, it scales with the code: when you shrink a QR code for print, the white border shrinks with it, so keep the margin at four module-widths rather than a fixed number of millimetres. For the complete symbology specification, see our ISO/IEC 18004 standard guide.

What error correction means when picking a generator

Two practical consequences. Higher correction levels add density, so pair level H with a larger print — the free size calculator does the math. And dynamic codes always encode a short redirect, keeping density low no matter how long the destination URL is — which is why the large majority of codes created on QRLynx are dynamic. Before any print run, verify the finished design with the free readability checker.

Sources

  1. DENSO WAVE — Error correction feature — the QR code's inventor, on the L/M/Q/H levels and Reed-Solomon recovery.
  2. QRLynx Scan Benchmarks 2026 — first-party data on how level and size affect real-world scan rates.
  3. ISO/IEC 18004:2015 — the international QR code standard.

Frequently Asked Questions

What is QR code error correction?

Error correction is a built-in feature of QR codes that allows them to remain scannable even when part of the code is damaged, dirty, or obscured. It uses Reed-Solomon encoding to add redundant data, enabling recovery of 7% to 30% of the code depending on the level chosen.

What are the four error correction levels?

Level L (Low, ~7% recovery), Level M (Medium, ~15%), Level Q (Quartile, ~25%), and Level H (High, ~30%). Level M is the most common default. Level H is required when adding a logo overlay.

Which error correction level should I use for a logo QR code?

Always use Level H (High) when adding a logo to your QR code. A centered logo typically covers 7-10% of the code area. Level H can recover up to 30% of data, providing enough margin for the logo plus any additional wear or damage.

Does higher error correction make a QR code bigger?

Yes. Higher error correction adds more redundant data modules. A Level H code has roughly 65% more modules than a Level L code for the same data. This means the code is denser and needs to be printed larger for reliable scanning.

What is Reed-Solomon error correction (defined in ISO/IEC 18004)?

Reed-Solomon is a mathematical algorithm that creates redundant data from the original data. If some of the data is lost, the algorithm can reconstruct it from the redundant portion. It is used in QR codes, CDs, DVDs, satellite communications, and data storage systems.

Can a damaged QR code still work?

Yes, thanks to error correction. A QR code with Level H can lose up to 30% of its modules and still be scannable. This means scratches, dirt, partial tears, or even intentional design elements like logos will not prevent scanning.

What is the default error correction level?

Most QR code generators use Level M (Medium, ~15% recovery) as the default. This provides a good balance between reliability and code size for standard use cases like business cards, flyers, and digital displays.

Does error correction level affect scan speed?

Negligibly. Modern smartphone cameras decode QR codes in milliseconds regardless of the error correction level. The difference is in reliability — higher levels are more likely to scan on the first attempt in challenging conditions.

Why does my QR code with a logo not scan?

The logo may be too large (covering more than 10% of the code), the error correction level may be too low (use Level H), or the logo may obscure critical alignment patterns. Reduce the logo size or increase the error correction level.

Can I change the error correction level after creating a QR code?

No. The error correction level is embedded in the QR code during generation. To change it, you must regenerate the QR code. With a dynamic QR code, the visual code changes but the destination URL stays the same.

Is Level H always the best choice?

No. Level H creates the densest, largest codes. For clean digital displays or short URLs on high-quality prints, Level L or M produces a simpler, easier-to-scan code. Use Level H only when you need the extra reliability (harsh environments, logo overlay).

How do I test if my error correction level is sufficient?

Print a test QR code and scan it from the expected distance with 3-5 different phones. Try covering parts of the code with your finger to simulate damage. If it still scans, your error correction level is adequate.

Is there a downside to using high error correction (Level H)?

Yes. Level H adds the most redundant data, so for the same content a Level H code has roughly 65% more modules than Level L. That makes the code denser, which means it must be printed larger — or each module shrinks and becomes harder for cameras to resolve. On small prints or low-quality printers, an unnecessary Level H code can actually scan worse than a Level M one. Use H when you add a logo or face harsh conditions; otherwise M is the safer default.

What error correction level should I use for printing and outdoor QR codes?

For standard indoor print (business cards, flyers, menus), Level M (15%) is enough. Step up to Level Q (25%) for product packaging, stickers, or anything exposed to scuffing. Use Level H (30%) for outdoor signage facing sun, rain, and dirt, and for any code with a centered logo. Whatever you choose, keep the 4-module quiet zone and print large enough that each module stays sharp.

Enjoyed this article? Share it!

Ahmad Tayyem

About the author

Founder of QRLynx, built through Jorbox LLC

Ahmad builds and runs QRLynx end to end — product, engineering, and the original QR research behind these guides. Every competitor claim here is tested hands-on; see our testing methodology and editorial policy.

Rated Excellent by Businesses Worldwide

Real Trustpilot reviews from QRLynx users.

"It's been a great experience with the free plan. Able to dynamically change the links in the QR code and look at the analytics, and these have been really useful."
★★★★★

Verified Customer

"Easy to navigate and implement. Can't wait to get real data from my event and check the analytics."
★★★★★

Cristina

"Messed up a QR code already sent to print on promotional materials. Support helped me the very same day to fix it and get the printed QR codes working again..."
★★★★★

Snežana B.

Ready to Create Your Own QR Codes?

Start for free and upgrade as you grow. All plans include dynamic QR codes, analytics, and custom branding.

Rated 4.6/5 on Trustpilot (21 reviews) 5M+ QR scans processed Start free — no credit card required

QRLynx pricing plans

Starter

For personal projects
Free
Free forever
  • 5 Dynamic QR Codes Editable QR codes — change the destination URL anytime.
  • 1 Folder
  • 5 MB per PDF upload

Starter+

For professionals & creators
$7 /month
Billed monthly
  • 50 Dynamic QR Codes Editable QR codes — change the destination URL anytime.
  • 10 Folders
  • 10 MB per PDF upload
  • Full AI Insights Anomaly, trend & recommendation detail plus manual refresh — on top of the AI summaries every plan gets.
  • SVG / PDF Vector Downloads Print-ready vector formats — infinite scalability.
Most Popular

Pro

Best value for campaigns
$14 /month
Billed monthly
  • 300 Dynamic QR Codes Editable QR codes — change the destination URL anytime.
  • 25 Folders
  • 15 MB per PDF upload
  • Country Analytics See which countries your scans come from.
  • Password Protection Require a password before showing QR content.
  • Smart Redirect Rules Redirect by device, country, or time.
  • Access Consent Screens Show a consent / disclaimer screen before the QR destination loads.
  • Expiry Rules Auto-expire a QR code by date or after a set number of scans.
  • QR Scheduling Schedule when a QR code is active with start and end time windows.
  • Full AI Insights Anomaly, trend & recommendation detail plus manual refresh — on top of the AI summaries every plan gets.
  • SVG / PDF Vector Downloads Print-ready vector formats — infinite scalability.

Core features included in every plan

— free and paid, no exceptions
  • Unlimited Static QR Codes
  • QR Pause & Activate
  • Unlimited Scans
  • Codes Never Expire
  • 60 QR Code Types
  • Apple & Google Wallet Passes
  • 90-Day Scan History
  • AI Insight Summaries
  • Custom Logo Upload
  • QR Code Frames
  • No Watermark
  • No Scan Ads
  • JPG, PNG, WEBP & HD Downloads
  • Bulk Static QR (up to 100/batch)

50% off for verified nonprofits, schools & open-source projects — contact us to apply.

Ready to Transform Your QR Code Experience?

Create, customize, and track QR codes with a platform built for businesses, creators, restaurants, agencies, and teams worldwide.

Talk to Sales
No credit card
Free forever
Cancel anytime