scanfolk
GuidesStandardCreative
Create a free QR
Home/Guides/ design & testing

QR code error correction: L, M, Q and H

Start with M for an ordinary QR, then choose the level around your content, size and expected handling. Q and H provide more error correction but can require a denser symbol. Keep the border clear and test the final export; no level guarantees scanning.

Scanfolk editorial team · Updated October 15, 2026 · 7 min read

On this page

At a glanceWhat do L, M, Q and H mean?Why a higher level can make the QR denserHow to choose a level in ScanfolkWhat happened in our controlled damage test?Does H make it safe to cover 30% with a logo?Test the finished QR, whatever level you chooseSources and review

At a glance

Choose error correction in Standard
  • L, M, Q and H are commonly described as about 7%, 15%, 25% and 30% codeword restoration. These are not percentages of the picture you may cover.
  • More correction may require more modules. At a fixed overall width, smaller modules can be harder to capture clearly.
  • Scanfolk starts at M without a logo and uses H when a logo is present. Check the actual exported QR and its final placement.
Original Scanfolk Settings panel showing L, M, Q and H, with M and a four-module quiet zone selected
Original production Settings panel capture, October 15, 2026. M selected, no logo, four-module border. Open Settings below the design controls to change the level.

What do L, M, Q and H mean?

Error correction adds redundant information so a reader can reconstruct some damaged encoded data. QR codes use Reed–Solomon error correction. A codeword is an eight-bit unit; recovery percentages refer to codewords, not the visible area of the image.

Treat the levels as a tradeoff to test, not four promises about how much of a QR can disappear. The location and shape of a defect matter, and a scanner must still locate and sample the symbol.

A practical starting point

Approximate codeword restoration rates described by DENSO WAVE. Placement guidance is a starting point, not a device qualification.
LevelApproximate restorationWhen to consider it
L7% of total codewordsA clean, protected setting where reducing density matters; verify the final size.
M15% of total codewordsAn ordinary QR without a logo; the Scanfolk default.
Q25% of total codewordsA setting where dirt or handling is plausible, with enough room for the resulting symbol.
H30% of total codewordsGreater redundancy when needed; Scanfolk uses H for a logo. Test rather than assuming it will scan.

Why a higher level can make the QR denser

For the same content, extra correction information can push the encoder into a larger QR version. A larger version has more modules per side. The change happens in steps: two levels may fit the same version, so density does not increase on every selection.

Our short example, https://example.com/qr-check, produced L at version 2 (25×25 modules), M and Q at version 3 (29×29), and H at version 4 (33×33). All four contain the same complete URL. These counts exclude the four-module quiet zone on each side.

With a 240-pixel total width including that border, a module spans about 7.27 pixels at L and 5.85 pixels at H in this example. Increasing the displayed or printed size can preserve module size. A shorter destination can also reduce density, though changing the URL changes what is encoded.

Same short URL at L, M, Q and H: 25, 29, 29 and 33 modules per side, with equal overall image width
Original clean fixtures, equal overall width and four-module borders. All eight clean fixtures across both test URLs decoded exactly at 256, 512 and 1024 pixels: 24 of 24 digital checks.

How to choose a level in Scanfolk

Open Standard and enter your content. Start with a plain Square QR and a dark foreground on a light background. Expand Settings, then choose L, M, Q or H under Error correction. The preview updates to the newly encoded symbol.

For a QR without a logo, M is the initial setting. Compare levels at your intended final size and keep the same destination while testing. Save a fresh export after changing a setting; an old downloaded file does not update itself.

Keep the quiet zone at least four modules wide. Scanfolk offers 4, 6 or 8 modules. Error correction does not replace that border, adequate contrast or sharp rendering. If the result becomes too dense for the placement, give it more space or simplify the content before reducing correction purely to make it fit.

Open the Standard generatorChoose an export format

What happened in our controlled damage test?

On October 15, 2026 we rendered two synthetic URLs at L, M, Q and H using the current Standard renderer, Square modules and finders, a dark foreground, white background and four-module margin. The encoder selected the version and mask separately for each payload and level.

For each symbol we kept a clean control, then overwrote a centered horizontal band of 1, 3, 5, 7 or 9 modules with white across the full symbol width. We kept the border and three corner finders intact; a band could cross alignment, data and correction modules. This controlled overwrite is not a model of every scratch or stain.

We saved all 48 fixtures at 1024×1024 pixels, resized them in RGB with Lanczos to 256, 512 and 1024 pixels, and decoded each condition once with ZXing-C++ 2.3.0. Across 144 digital checks, 63 matched exactly and none returned a different QR payload. All 24 clean checks matched.

For the short URL, H decoded in all three sizes with a three-module band and failed in all three with a five-module band. The longer H example decoded even with a nine-module band. Payload length, version, mask and band area relative to the symbol also changed, so this does not isolate correction level or establish a universal damage threshold. Retained failures are part of the result.

Short URL: exact matches across three sizes

Each cell counts 256, 512 and 1024-pixel conditions once. Three conditions are not independent physical trials. Band thickness is measured in symbol modules.
White bandLMQH
None · control3/33/33/33/3
1 module0/33/33/33/3
3 modules0/30/30/33/3
5 modules0/30/30/30/3
7 modules0/30/30/30/3
9 modules0/30/30/30/3
Deliberately damaged short-URL fixtures with a centered three-module white band: L, M and Q fail the three digital sizes; H matches exactly in all three
Controlled damage examples, not QR designs to distribute. The complete results include the longer URL and all failures. The experiment did not test physical cameras, printed materials or logos.
Read every digital resultRead payloads, settings and damage method

Does H make it safe to cover 30% with a logo?

No. Codeword restoration is not an allowance to cover 30% of a square. A logo removes specific modules, and its backing area can be larger than the artwork itself. Essential patterns, geometry, contrast and the destination all affect the outcome.

Scanfolk switches to H when a logo is added. That does not authorize enlarging the logo or editing the exported QR beyond its tested design. Keep the generator’s protected center and test the complete logo export. Removing a logo lets you choose a lower level again.

Artistic QR generation is a separate workflow. The four Standard settings do not prove that an AI image, texture or visual template will scan; the finished artistic artifact needs its own exact-payload validation and placement test.

See the logo workflow and size experimentReview color and shape choices

Test the finished QR, whatever level you choose

First decode the saved export and compare the complete data. Then scan it on the phones your audience uses and complete the intended action. Test the QR again after layout changes, platform compression and printing at its actual size.

If a clean QR fails, check the destination, clear border, contrast, module size and rendering before assuming more correction will solve it. Increasing from M to H can add redundancy while making modules smaller at the same overall width. Change one variable at a time and retain failures.

These levels do not affect whether a direct QR expires or whether a hosted tracking link stays available. Error correction concerns reading the stored data; the destination and any redirect service still need to work.

Use the QR testing checklistCalculate print dimensions and get a test sheetCreate and compare your own QR

Sources and review

Reviewed by the Scanfolk editorial team on October 15, 2026. Original interface capture and 48-fixture digital experiment dated October 15. Results describe two URLs and one controlled damage geometry, not a phone/print success rate or safe logo coverage. All failed decodes are retained.

  • DENSO WAVE: error correction and codeword restoration
  • DENSO WAVE: QR versions and capacity
  • DENSO WAVE: four-module quiet zone
  • ZXing-C++: decoder used in the digital experiment
  • Scanfolk: full recorded damage-test results

Keep learning

All QR guidesHow to create a QR codeStatic vs. dynamic QR codesDo QR codes expire?QR code download formats: PNG or SVG?How to customize a QR codeHow to make a QR code for a linkHow to test a QR code before sharing itHow to add a logo to a QR codeHow to create a Wi-Fi QR codeQR code print size: modules, distance and testing
scanfolk
GuidesStandardTemplatesAboutPrivacyTerms