QR Design

QR Code Error Correction Levels: L, M, Q and H Explained

What QR code error correction is, what the L, M, Q and H levels mean, how they affect the size and density of the code and which one to choose in each situation.

QR Code Error Correction Levels: L, M, Q and H Explained

One of the features that makes QR codes so reliable is that they keep working even when scratched, stained, partly covered or printed on an uneven surface. This is possible thanks to error correction, an option many generators include in their advanced settings and few users understand. In this article we explain what it is, how each level works and which one suits you.

What error correction is

When a QR code is created, in addition to the data you want to store (a URL, text, a vCard), redundant information is added, calculated with the Reed-Solomon algorithm, the same one used in CDs, DVDs and satellite communications. If part of the code cannot be read, the scanner uses that redundancy to rebuild the missing data.

The more redundancy you add, the more damage the code can withstand, but the more modules it needs to store the same information.

The four levels

LevelRecoverable dataCode densityRecommended use
L (Low)Up to 7%LowestScreens, clean environments, long content
M (Medium)Up to 15%MediumGeneral use, standard printing
Q (Quartile)Up to 25%HighOutdoors, industry, codes with a small logo
H (High)Up to 30%HighestCodes with a logo, surfaces exposed to wear

How it affects the look of the code

For the same content, a level H code has more modules than a level L code. For example, a URL of about 50 characters might produce a 33 × 33 module code at level L and a 41 × 41 code at level H. If you print both at the same size, the level H modules will be smaller.

This has a practical consequence: a high level requires printing the code larger or reducing the content to keep it readable.

Which level to choose

Level L

Use it when the code will be shown in ideal conditions: on a screen, in a digital document or in a clean environment, and when you need to store a lot of information in a small space.

Level M

This is the most common balance and the default in many generators. Perfect for flyers, business cards, restaurant menus and most indoor printed materials.

Level Q

Choose it when the code will be exposed: outdoor posters, warehouse labels, machinery, vehicles or products that get handled a lot. It also works for small logos.

Level H

Essential if you add a logo in the center, because the logo covers part of the code that needs to be recovered. It is also the best option for surfaces that may get scratched, wet or dirty.

Error correction and logos

When you put a logo in the center, that area can no longer be read. Error correction has to make up for that loss and still leave room for real damage (dirt, glare, poor printing). That is why:

  • With level H, keep the logo under 20-25% of the area.
  • With level Q, use even smaller logos.
  • With levels L or M, avoid logos.

In the QRcrea QR code generator you can choose the correction level in the advanced options and see in the preview how the density changes.

Myths about error correction

  • “A higher level is always better.” No. Level H with long content produces a very dense code that can be harder to read from a distance or at a small size.
  • “Correction fixes low contrast.” No. If the modules cannot be told apart from the background, no correction level will fix it.
  • “You can cover the eyes if the level is H.” No. The three finder patterns are essential for locating the code; error correction protects the data, not those patterns.

Combining level and size

SituationRecommended levelSize tip
Business card without logoMAt least 2 cm (0.8 in)
Business card with logoHAt least 2.5 cm (1 in) and a short URL
Indoor posterM or Q10:1 distance rule
Outdoor signQ or HIncrease by 20-30%
Industrial labelQ or HDurable material
Screen or webL or MGood resolution

Practical example

A bike rental company sticks a code on each bike to open its app. The bikes live on the street, exposed to rain, sun and scratches. With level L, a small scratch over the code would make it unusable. With level Q or H and a short URL, the code keeps working even if part of it gets damaged, and the company avoids constantly replacing stickers.

Frequently asked questions

Can I change the level after printing?

No. The level is part of the code itself; to change it you would need to generate and print a new one.

Does the correction level affect scanning speed?

Indirectly. A denser code may take slightly longer to read on older phones or in low light.

Which level does QRcrea use by default?

The generator applies a level suited to general use and lets you raise it if you add a logo or will use the code outdoors.

Conclusion

Error correction is your QR code’s safety net. Choose L for screens and long content, M for general use, Q for demanding environments and H whenever you add a logo. Match the size to the level you pick and test the printed result. Set the error correction and create your code with the QRcrea QR code generator.

Ready to create your QR code?

Customize it with your colors and logo, and download it for free in seconds.

Create QR code
Scroll to Top