QR code error correction: what it is and why it matters

QR code error correction is built-in redundancy that lets a QR code stay scannable even when part of it is damaged, dirty, or covered by a logo. There are four levels — L, M, Q, and H — each allowing more of the code to be lost while still working. Here's what you need to know.

What is error correction?

Every QR code contains more data than strictly necessary. The extra data is error correction information — essentially, backup copies of the encoded content arranged across the pattern.

If part of the QR code is unreadable (a scratch, a coffee stain, a logo in the center, a fold in the paper), the scanner uses the backup data to reconstruct the missing parts and still decode the message.

This is one of the reasons QR codes are so robust compared to older barcodes. A traditional barcode with a scratch across it is dead. A QR code with a scratch across it usually still works.

The four error correction levels

QR codes use the Reed-Solomon error correction algorithm, and it comes in four levels:

LevelNameRecovery capacityWhat it means
LLow~7%Up to 7% of the code can be damaged and it still scans
MMedium~15%Up to 15% — the standard default for most QR generators
QQuartile~25%Up to 25% — good when you expect some wear
HHigh~30%Up to 30% — best for logos or harsh environments

The percentages refer to the maximum amount of the QR code's data modules (the individual dots) that can be unreadable. At Level H, nearly a third of the code can be destroyed and a scanner will still decode it correctly.

How it works (simplified)

Without going deep into mathematics, here's the basic idea:

  1. Your data (a URL, text, contact info) is encoded into a sequence of data modules (dots)
  2. The Reed-Solomon algorithm generates additional "parity" modules from that data
  3. Both the data modules and parity modules are arranged in the QR code pattern
  4. When a scanner reads the code, it checks the data against the parity modules
  5. If some modules are unreadable, the algorithm uses the parity data to reconstruct the missing pieces

Higher error correction levels generate more parity data, which means more dots in the QR code. This makes the code physically larger (more modules) but more resilient.

The trade-off: resilience vs. density

Here's the catch: higher error correction means a denser QR code.

More parity data = more modules = smaller individual dots at the same physical size = harder to scan at very small print sizes.

Error correctionRelative code densityImpact
L (Low)Smallest, simplest codeEasiest to scan at tiny sizes
M (Medium)ModerateGood balance for most uses
Q (Quartile)LargerSlightly bigger minimum print size
H (High)Largest, most complexNeeds to be printed a bit larger

In practical terms, the difference is small. A QR code at Level H encoding a short URL might need to be printed at 2.5 cm instead of 2 cm. It's not dramatic, but it matters at the margins — particularly on business cards and small product labels where space is tight.

For sizing details at every print format, see our QR code size guide.

When each level makes sense

Level L (Low, 7%) — maximum data, minimum size

Use when:

  • You need the smallest possible QR code
  • The code will be displayed on a clean, digital screen (no physical damage risk)
  • You're encoding a lot of data and need to keep the code scannable at a given size

Real-world examples:

  • QR codes on digital screens or presentations
  • Codes displayed on clean, protected surfaces
  • High-density data like long URLs where keeping module count low matters

Level M (Medium, 15%) — the all-rounder

Use when:

  • You want a good balance between size and resilience
  • The code will be printed on paper or card in normal conditions
  • You're not adding a logo to the center

This is the default for most QR code generators, including oneclickqrcode.com.

Real-world examples:

  • Business cards
  • Flyers and brochures
  • Product packaging (protected by shrink wrap or box)
  • Restaurant menus (laminated)

Level Q (Quartile, 25%) — extra safety

Use when:

  • The code will be in a somewhat harsh environment
  • You expect moderate wear and tear
  • You want extra confidence that the code will scan even after some damage

Real-world examples:

  • Outdoor signage exposed to weather
  • Warehouse or industrial labels
  • Stickers on surfaces that get handled frequently
  • Flyers posted on outdoor bulletin boards

Level H (High, 30%) — logos and extreme conditions

Use when:

  • You're adding a logo or image to the center of the QR code
  • The code will be in harsh conditions (outdoor, industrial, high traffic)
  • Maximum resilience is more important than minimum size

Real-world examples:

  • Any QR code with a center logo
  • Outdoor banners and signs
  • Codes on floors, vehicles, or surfaces that get dirty
  • Codes printed on textured or non-ideal surfaces

Error correction and logos

This is where error correction becomes directly relevant to most people. When you add a logo to a QR code, you're covering part of the code with an opaque image. The scanner can't read the modules behind the logo.

A center logo typically covers about 15-20% of the code. At Level M (15% recovery), that's right at the limit — the code might work, might not, depending on exact logo positioning. At Level H (30% recovery), you have a comfortable margin.

This is why oneclickqrcode.com automatically switches to Level H when you upload a logo. You don't need to think about it — the tool handles it. When you remove the logo, it switches back to Level M.

The practical takeaway: if you're using a logo, print the QR code slightly larger than you would without one, because Level H adds more modules to the code. An extra 0.5 cm usually does it.

Error correction in practice

How much damage can a QR code actually survive?

In testing, QR codes at Level H can survive:

  • A corner torn off
  • Ink smudges or stains covering parts of the code
  • Fading from sun exposure
  • Creases and folds in the paper
  • Partial obstruction (a sticker, a thumb, a coffee ring)
  • A logo covering up to ~25% of the center

What they generally can't survive:

  • Losing one or more of the three large position markers (the big squares in three corners)
  • Damage to more than 30% of the modules (at Level H)
  • Complete fading where no contrast remains
  • Physical distortion (stretching the code from square to rectangle)

Real-world damage scenarios

Coffee ring on a table tent: A QR code on a restaurant table tent gets a coffee ring across one corner. At Level M or higher, it still scans — the error correction fills in the damaged section. At Level L, it might fail if the ring covers more than 7% of the modules.

Weathered outdoor poster: A poster on a utility pole fades in the sun over a few weeks. The contrast decreases, and some modules become hard to read. Higher error correction means the scanner has more redundancy to work with, improving the odds of a successful scan.

Scratched product label: A product label gets scratched during shipping. The barcode is destroyed (traditional barcodes have zero error correction for horizontal scratches). The QR code, with its two-dimensional error correction, likely still works.

Error correction and data capacity

There's a maximum amount of data a QR code can hold, and higher error correction reduces that capacity because more space is used for parity data.

Error correctionMax alphanumeric charactersMax numeric digits
L4,2967,089
M3,3915,596
Q2,4203,993
H1,8523,057

For typical QR code content — URLs, short text, contact cards — you're nowhere near these limits. A typical URL is 30-80 characters. Even at Level H, you have room for thousands of characters.

The capacity matters only for edge cases: very long text, embedded data, or specialized applications. For everyday use, pick the error correction level based on resilience needs, not capacity.

How oneclickqrcode.com handles error correction

The tool uses a smart default approach:

  • No logo: Level M (Medium, 15% recovery) — the standard for most printed QR codes
  • With logo: Level H (High, 30% recovery) — automatically applied when you upload a center image

You don't need to manually select an error correction level. The tool picks the right one based on whether you're using a logo. This keeps things simple while ensuring your QR code works reliably.

The error correction level is applied when the QR code is generated in your browser. It affects the internal structure of the code (how many modules are allocated to parity data) but not the visual style or colors you've chosen.

Tips for maximum reliability

Regardless of error correction level, these practices help ensure your QR code scans every time:

  1. High contrast — dark dots on a light background. The tool warns you when contrast drops below 3:1
  2. Adequate size — follow the size recommendations for your use case
  3. Quiet zone — leave blank space around the QR code (at least 3-4 mm)
  4. Matte finish — glossy surfaces create glare that interferes with scanning
  5. Test after printing — always scan a printed copy before a full print run
  6. Keep it square — never stretch or skew a QR code
  7. Clean surfaces — if the code is displayed on a reusable surface, keep it clean

FAQ

Does higher error correction make the QR code harder to scan?

No — it makes it slightly denser (more modules), which means each module is smaller at the same print size. As long as you print it large enough, scannability is the same or better because the scanner has more data to work with.

Can I choose the error correction level at oneclickqrcode.com?

The tool automatically uses Medium (M) by default and switches to High (H) when you add a logo. You don't need to choose manually — it's handled for you.

Does error correction affect the QR code's appearance?

Higher error correction levels produce more modules (dots), making the code appear denser. The visual style (colors, dot shape, corners) stays the same regardless of level.

Is Level H always the best choice?

Not necessarily. Level H produces the densest code, which can be harder to scan at very small sizes. If you're printing a tiny QR code on a product label with no logo, Level M gives you a cleaner, simpler code that's easier for cameras to resolve. Level H is best when you need a logo or expect physical damage.

Do all QR code scanners support error correction?

Yes. Error correction is part of the QR code standard (ISO/IEC 18004). Every compliant scanner — including the built-in camera apps on iPhone and Android — handles it automatically. There's nothing special the user needs to do.


Create a reliable QR code at oneclickqrcode.com — error correction is handled automatically. Add a logo and it switches to High for maximum resilience. Free, no sign-up needed.

Teemu
Teemu

Founder of oneclickqrcode.com

Ready to create your QR code?

Free, private, no sign-up. Customize colors, styles, and download in high resolution.

Create a QR code

More articles

Free QR code generator: no sign-up, no ads, no catch

Why most QR code generators aren't really free — and how oneclickqrcode.com is different. No accounts, no watermarks, no limits, fully private.

How to make a QR code for a flyer or poster

Create a scannable QR code for your flyer, poster, or brochure. Covers sizing, placement, printing formats, and design tips for maximum scans.

How to create a QR code for an email address

Create a free QR code that opens a pre-filled email when scanned. Includes subject lines, body text, and practical use cases for business and events.

How to make a QR code for your business card

Create a free QR code for your business card that saves your contact info to any phone. Step-by-step vCard QR code guide with design and printing tips.

QR code size guide: how big should your QR code be?

The complete guide to QR code sizes for printing on business cards, flyers, posters, and banners. Includes minimum sizes, scanning distances, and format recommendations.

How to add a logo to a QR code (free, no sign-up)

Add your brand logo to the center of any QR code in seconds. Free step-by-step guide — no account, no watermarks. Works with PNG, SVG, and more.

How to create a Wi-Fi QR code (so guests connect instantly)

Create a free Wi-Fi QR code that lets guests join your network by scanning — no typing passwords. Step-by-step guide with tips for printing and placement.

PNG vs SVG QR codes: which format should you use?

A clear comparison of PNG and SVG QR code formats. When to use each, how they differ for print and digital, and which gives the best quality.

How to create a QR code for your restaurant menu

Create a free QR code that links to your restaurant's digital menu. Step-by-step guide with tips for placement, printing, and design.