QR Studio
Back
← Blog

Error correction levels in a QR code: L, M, Q, and H explained

Last updated: 09/15/2026

One reason the QR code replaced the classic barcode is that it can still be read even when partially damaged, dirty, or covered by a logo. It pulls that off thanks to error correction, a system that stores redundant information inside the code itself. The QR standard defines four correction levels, each with a letter: L, M, Q, and H.

What each level means

L~7% recoverable
M~15% recoverable
Q~25% recoverable
H~30% recoverable

QR Studio generates codes with Q (~25%) correction by default, a middle-ground level chosen precisely so you can overlay a center logo (like the one you upload in the Content tab) without the code becoming unreadable.

The trade-off: redundancy vs. density

More error correction isn't free: to store the same amount of data with more redundancy, the QR code needs more modules (more “dots”), which makes it slightly denser — and on codes with little content, that can result in a busier-looking pattern. That's why it doesn't make sense to always use the highest level “just in case” — it's worth picking the level based on the actual use you'll give the code.

When each level makes sense

L or M are more than enough for a QR code that will be shown on a digital screen (a website, an LED sign) where there's no risk of dirt, tears, or overlapping logos. Q is the safest choice for everyday printed materials — menus, flyers, boxes — and is essential if the QR code carries a logo in the center, since that covered area needs that extra redundancy to be reconstructed. H is reserved for demanding scenarios: industrial labels that get scratched, codes exposed to the outdoors, or when the logo covers a large portion of the design.

Try your QR code with a logo and check it still scans well.

Go to generator