Glossary

What Is QR Code Error Correction?

Error correction is built-in redundancy in a QR code's data pattern that lets it still scan correctly even when part of the code is dirty, damaged, glared-on, or covered — for example, by a logo placed in the center.

Why a QR code needs redundancy at all

A QR code is meant to work in the real world — printed on a poster that gets rained on, displayed on a phone screen with glare, or stuck on a package that gets scuffed in transit. Without any built-in redundancy, a small smudge or a torn corner could make the whole code unreadable. Error correction encodes the underlying data with extra redundant information so a scanner can reconstruct the original content even if a portion of the pattern is unreadable.

The four standard levels

QR codes support four error correction levels, each trading data efficiency for damage tolerance: L (Low) can recover from about 7% of the code being damaged or obscured, M (Medium) around 15%, Q (Quartile) around 25%, and H (High) around 30%. These percentages are part of the official QR code specification, not something any single generator invents — every properly implemented QR code, regardless of who makes it, follows the same four levels.

The tradeoff: more resilience means more visual density

Higher error correction isn't free — encoding more redundancy means the resulting code is denser and, at a fixed data size, takes up more visual space or requires a larger module (pixel block) size to stay reliably scannable. A QR code set to the highest correction level for the same destination URL will generally look busier than the same URL encoded at the lowest level.

Why this matters specifically for adding a logo

Placing a logo in the center of a QR code covers part of the underlying pattern, which is only safe to do because error correction can reconstruct the covered portion from the redundant data elsewhere in the code. This is exactly why QR generators that support logo embedding — including Shorter.gg's — automatically bump the error correction level up to Quartile or High when a logo is added, rather than leaving it at a lower level that wouldn't tolerate the coverage.

Choosing a level for common situations

For a clean, undecorated code that will be displayed digitally (like on a screen, where damage isn't really a factor), Low or Medium is usually sufficient. For anything printed — posters, packaging, table tents — Medium or Quartile is a safer default, since printed material is more exposed to smudging, folding, and wear. Anything with a logo or decorative styling covering part of the code should use Quartile or High to guarantee the covered area can still be reconstructed.

How this interacts with code size and scan distance

A higher error correction level combined with a small printed size can work against you — the denser pattern needs more physical space per module to stay scannable, so a highly-corrected code shrunk down too far can become harder to scan than a simpler, lower-correction code at the same physical size. If you need both a logo (requiring higher correction) and a small printed footprint, testing the actual printed result at real size matters more than usual.

Always test the final printed result

Error correction levels are a safety margin, not a guarantee — the only reliable way to know a specific code, at a specific size, with a specific logo, will scan reliably is to print it (or generate an accurate preview) and test it with a few different phones. This is worth doing before committing to a large print run, regardless of which error correction level was used.

You rarely need to think about this directly

Most QR code generators, Shorter.gg included, choose a sensible error correction level automatically based on whether you've added a logo or custom styling, so this is mostly background knowledge rather than a setting you need to actively manage. It's most useful for understanding why a heavily styled or logo-embedded QR code looks visually denser than a plain one pointing to the exact same link.

How the correction actually works, at a high level

QR codes use a mathematical technique called Reed-Solomon error correction, the same general family of error-correcting code used in things like CDs and satellite communications, to encode extra redundant data alongside the actual message. A scanner reads the whole pattern, uses that redundant data to detect which parts don't match what they should, and reconstructs the correct values for those parts using the surrounding redundancy — conceptually similar to how a sudoku puzzle can be solved from a partial grid, where enough of the pattern is known that the missing pieces can be worked out with certainty rather than guessed.

What happens if a code is damaged beyond its correction level

If the damaged or obscured portion exceeds what the chosen error correction level can recover — for example, more than 30% of a High-level code — the scan simply fails outright rather than returning a corrupted or partial result. There's no partial credit; either the scanner successfully reconstructs the full original data or it reports that it couldn't read the code at all. This is worth knowing when troubleshooting a code that intermittently fails to scan: the issue is usually that real-world damage, print quality, or lighting conditions are pushing the effective error rate close to or past the chosen level's ceiling.

Create a QR code with your logo

Shorter.gg automatically adjusts error correction when you add a logo, so your code stays scannable.

Create a QR Code