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 (Low): recovers up to ~7% of a damaged code. It's the level with the least redundancy, which makes the code “lighter” (fewer modules needed) for the same amount of data.
- M (Medium): recovers up to ~15%. It's the default level most QR generators use when nothing else is specified.
- Q (Quartile): recovers up to ~25%. A good balance for codes that will be printed and handled, or that carry a small logo on top.
- H (High): recovers up to ~30%, the maximum possible. It adds the most redundancy and, as a result, produces the densest code for the same content.
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