Technical

QR Code Error Correction Levels Explained (L, M, Q, H)

QRbuild Team·

What Is Error Correction?

QR codes include redundant data so they can still be read even if part of the code is damaged, dirty, or obscured. This is called error correction, and it's one of the reasons QR codes are so reliable.

There are four levels:

Level Recovery Capacity Best For
L (Low) ~7% damage Clean digital displays
M (Medium) ~15% damage Standard print materials
Q (Quartile) ~25% damage Outdoor/warehouse use
H (High) ~30% damage Codes with logos, rough environments

How It Works

QR codes use Reed-Solomon error correction — the same math used in CDs, DVDs, and satellite communications. The encoder adds extra data modules that allow the decoder to reconstruct missing information.

Higher error correction = more redundant data = denser QR code pattern = needs to be printed larger.

Which Level Should You Use?

Level L (7%) — Digital Only

Use for QR codes displayed on screens where damage is impossible. Produces the simplest (least dense) code.

  • Website embeds
  • App displays
  • Digital signage (indoor, controlled)

Level M (15%) — Default/Standard

The best balance for most use cases. QRbuild uses M as the default.

  • Flyers and brochures
  • Business cards
  • Product packaging (indoor)
  • Menus

Level Q (25%) — Outdoor/Industrial

Use when codes face moderate wear.

Level H (30%) — Logos and Harsh Conditions

Required when you embed a logo (which physically covers part of the code). Also good for extreme environments.

  • QR codes with logos (QRbuild auto-switches to H)
  • Real estate yard signs (weather exposure)
  • Factory floor labels
  • Codes on textured surfaces

The Trade-Off

Higher error correction makes the QR code denser (more modules in the same space). This means:

  • The code needs to be printed larger to remain scannable
  • More data modules = more complex pattern
  • Level H codes with long URLs can become very dense

Rule of thumb: Use the lowest level that's safe for your environment. Don't use H everywhere "just in case" — it makes codes unnecessarily complex.

Logo Impact

When you add a logo to a QR code, you're physically covering ~15-22% of the data area. That's why Level H (30% recovery) is essential — it gives enough headroom for the logo plus some additional damage tolerance.

QRbuild automatically switches to Level H when you upload a logo. You don't need to configure this manually.

Testing Matters

Regardless of error correction level, always test your printed QR codes:

  1. Scan with iPhone and Android
  2. Scan from the intended distance
  3. Scan in the actual lighting conditions
  4. Scan after any finishing (lamination, UV coating)

Create your QR code with the right error correction. Free generator — auto-optimizes for logos and content length.

Create your QR code now

Free. No sign-up. Full customization.

Create Free QR Code

About the author

QRbuild Team

The QRbuild team writes practical guides on QR codes, scan tracking, and print marketing. We build free tools that help businesses connect physical materials to digital experiences.