QR Code Error Correction Levels Explained

QR Code Error Correction Levels Explained

Try the QR Code Generator

Every QR code carries a hidden safety net called error correction. It is the reason a code still scans after it picks up a coffee stain, a scratch, or a logo dropped in the middle. Choosing the right level is one of the most important decisions when you generate a code, yet it is the setting people understand least. This guide explains what the four levels mean and how to pick one with confidence.

You can set the error correction level directly in the QR Code Generator under the customization options. By default it is set to M, which suits most situations, but knowing when to change it will save you from codes that fail in the field.

What Is Error Correction?

QR codes use a mathematical technique called Reed-Solomon error correction. In plain terms, the code stores your real data plus extra redundant data. If part of the code becomes unreadable — covered, torn, faded, or smudged — a scanner can use the redundant data to reconstruct the missing pieces and still recover the original content.

This is why a QR code with a hole punched in it, or a logo sitting on top, can still scan perfectly. The trade-off is simple: more error correction means more redundant data, which means a denser pattern with more squares packed into the same space.

The Four Levels: L, M, Q, H

QR codes define exactly four error correction levels. Each one can recover a different percentage of the code if it is damaged:

  • Level L (Low) — recovers about 7% of the code. The least redundancy, the cleanest and least dense pattern.
  • Level M (Medium) — recovers about 15%. The default and the best all-round balance.
  • Level Q (Quartile) — recovers about 25%. A step up in resilience for tougher conditions.
  • Level H (High) — recovers about 30%. Maximum protection, densest pattern, essential when adding a logo.

The percentages refer to how much of the code's modules (the black and white squares) can be destroyed while the data remains fully recoverable.

How Each Level Affects the Code

Raising the error correction level has two visible effects:

  1. The pattern gets denser. Higher levels add more modules, so the squares become smaller for a given physical size. A level H code packs noticeably more detail than a level L code holding the same data.
  2. The minimum readable size goes up. Because the modules are smaller, a dense code needs to be printed or displayed larger to stay scannable. A level H business-card code that is printed too small can actually scan worse than a level M one.

In other words, error correction is not free. You are trading visual simplicity and minimum size for durability.

Which Level Should You Choose?

Here is a practical guide based on where the code will live:

Use Level L when

  • The code is shown on a clean digital screen (a website, an app, a slide).
  • Space is extremely tight and the data is short.
  • There is zero risk of damage and no logo.

Level L keeps the pattern as simple as possible, which can help when encoding a long URL into a small area.

Use Level M (default) when

  • You are printing on paper that stays indoors — flyers, menus, business cards, packaging.
  • You want a reliable, all-purpose code without a logo.

M is the sweet spot for the vast majority of QR codes and is why it is the generator's default.

Use Level Q when

  • The code lives somewhere it might get dirty or lightly scuffed — a receipt, a shipping label, a product in a warehouse.
  • You expect moderate wear but are not adding a large logo.

Use Level H when

  • You are adding a logo or image to the center of the code.
  • The code goes outdoors and may face rain, sun fading, or dirt.
  • It will be applied to a curved or textured surface where parts may distort.

Level H is mandatory for branded codes. When a logo covers the center, those hidden modules count as "damage," and only level H reliably recovers enough to keep the code working. If you are going this route, see how to add a logo to a QR code for the full method.

Error Correction and Logos: The Key Relationship

The most common real-world reason to change error correction is to fit a logo. A logo placed in the middle of a code blocks the modules underneath it. The scanner treats those blocked modules exactly like damage and relies on error correction to rebuild them.

A safe rule of thumb: with level H, you can cover up to roughly 25-30% of the code's area with a logo and still scan reliably. Go beyond that, or use a lower level, and the recovery margin runs out. Always keep the logo centered, keep it under that threshold, and test the finished code on a real phone.

Does Higher Error Correction Make Scanning Faster?

A common myth is that level H always scans faster or better. It does not. On a clean, undamaged code, a lower level can actually scan more easily because the pattern is simpler and the modules are larger. Higher levels only help when there is real damage or obstruction to recover from. Match the level to the conditions rather than maxing it out by default.

Quick Decision Cheat Sheet

  • Digital screen, no logo → L or M
  • Indoor print, no logo → M
  • Receipts, labels, light wear → Q
  • Logo in the center → H
  • Outdoor, harsh, or curved surfaces → H

When in doubt, start with M, and only move up if the code will face damage or carry a logo. You can experiment instantly in the QR Code Generator by switching levels and watching how the pattern density changes.

FAQ

What does error correction level mean on a QR code?

It is the amount of redundant data built into the code so it can still be read if part of it is damaged or covered. The four levels — L, M, Q, and H — recover roughly 7%, 15%, 25%, and 30% of the code respectively.

Which error correction level is best for a logo?

Level H. A logo blocks the modules beneath it, and only the highest level reliably reconstructs enough of the code to keep it scannable. Keep the logo under about 30% of the code area.

Does a higher level make the QR code bigger?

It makes the pattern denser, not necessarily larger in dimensions, but a denser code needs to be displayed or printed at a larger physical size to stay readable. There is a practical trade-off between durability and minimum size.

Should I always use level H to be safe?

No. On a clean, undamaged code a lower level scans just as well and keeps the pattern simpler. Use H only when you add a logo or expect damage. For ordinary indoor printing, M is the better choice.

What is the default error correction level?

Most generators, including the QR Code Generator on this site, default to level M because it balances reliability and pattern simplicity for the majority of uses.

Can error correction repair a torn QR code?

Up to a point. If the damaged area is within the level's recovery percentage — for example under 30% for level H — the scanner can rebuild the missing data. Beyond that threshold the code becomes unreadable, so larger damage still requires a fresh code.

Create a QR Code Instantly

Generate QR codes for URLs, text, WiFi, vCard, email, phone, and SMS — free, no signup, with PNG or SVG downloads.

Open QR Code Generator

Related Articles