Every QR code has spare capacity built in on purpose — extra data woven into the pattern so it can still be read even if part of it is dirty, torn, or covered by a logo. That spare capacity is called error correction, and it comes in four levels.

A close-up of a dense QR code pattern

The four levels

  • L (Low) — recovers about 7% damage. Smallest, cleanest-looking code, but least forgiving.
  • M (Medium) — recovers about 15%. A reasonable default for most everyday use.
  • Q (Quartile) — recovers about 25%. Good middle ground when a code will get some wear.
  • H (High) — recovers about 30%. The most forgiving, and required if you're adding a logo.

Higher isn't automatically better

More error correction means a denser pattern — smaller individual squares packed into the same space. A denser code is harder to scan from a distance or on a low-quality camera, even though it's more damage-resistant. It's a genuine tradeoff, not a free upgrade.

What we recommend

Our generator defaults to Automatic: Medium for a plain code, High whenever a logo is added, since covering part of the code with a logo eats directly into that spare capacity. Manually raising the level makes sense for codes that will get handled roughly — laminated menus, outdoor signage — but isn't necessary for a code shown once on a screen.

The simple rule

If nothing is going to damage or cover the code, M is fine. If it'll be printed, handled, and live outdoors for months, go to Q or H.