Skip to main content

What do error correction and pattern density do?

Updated September 14, 2026 · 3 min read

Error correction decides how much of a code can be dirty, torn or covered and still be read — higher levels add redundant data, which makes the pattern busier. Pattern density decides how many little squares the code is drawn with, which is a purely visual choice. Both sit in the Advanced section of the wizard's QR Design step, and the honest answer for most codes is to leave both on Auto.

Error correction

Five buttons under Error Correction:

LevelDamage it survivesWhen to pick it
AutoAbout 15% (the same as M)The default, and right for almost everything
LAbout 7%Clean on-screen use where you want the simplest possible pattern
MAbout 15%General print
QAbout 25%Labels, packaging, anything that gets handled or scuffed
HAbout 30%Harsh surfaces, curved packaging, outdoor signage

The trade-off is real: every extra level of recovery adds data, and more data means more modules in the same space. A high level on a small printed code can be harder to scan than a low level, because the individual squares end up too small for the camera. Match the level to the risk, not to a wish for robustness.

Add a logo and the level locks to H. Every other button greys out, with the note "Locked to H while a logo is present — the covered dots need the extra recovery budget." Remove the logo to unlock them again. See adding a logo to a QR code.

Pattern density

Three buttons under Pattern Density:

  • Auto — "Smallest grid". The code uses the fewest modules that fit your content, so each square is as large as possible.
  • Dense — a 49 × 49 grid.
  • Ultra — a 57 × 57 grid.

Density does not change what the code says, how much it holds or how well it recovers from damage. It changes how the code looks: denser grids read as finer, more textured artwork, which some brands prefer. The cost is that each module is physically smaller, so the code has to be printed larger or scanned closer. The wizard says as much when you pick one: "Denser patterns look richer but use smaller modules — best scanned up close. Test a printed copy at your final size."

If your content is too long for the grid you picked, we fall back to Auto silently rather than fail. The wizard warns you in advance when that looks likely. Dynamic codes encode a short link so they almost always fit; a long static payload — a full contact card, a WiFi password, a long URL — is where the fallback bites.

When to change either setting

SituationWhat to do
A plain code on a flyer, a screen or a menuLeave both on Auto.
You added a logoNothing to do — error correction is already at H.
Labels, bottles, curved or scuffed packagingQ or H, and print it larger.
Outdoor signage exposed to weatherH, and check the minimum print size for the scanning distance.
You want the finer, more textured lookDense, then test at your finished size.
A very small printed codeKeep density on Auto and error correction no higher than M — bigger modules beat more redundancy at small sizes.

Common problems

The L, M and Q buttons are greyed out

There is a logo on the code. Error correction is locked to H while a logo is present. Remove the logo in Add Logo and the other levels become selectable.

I picked Ultra but the code does not look any denser

Your content was too long for that grid, so it fell back to Auto. Shorten the content, or accept the automatic grid — the code is correct either way.

My dense code will not scan

Smaller modules need more size or a closer camera. Set density back to Auto, or print the code larger and re-test.

Raising error correction made the code harder to scan

That is the trade-off: more redundancy at the same printed size means smaller squares. Either go back down a level or print the code bigger.

Frequently asked questions

What does Auto error correction actually use?

The middle level, M — about 15% recovery — unless the code has a logo, in which case it is H.

Does higher error correction let me cover more of the code?

It is what makes a centre logo possible, which is why we lock a code with a logo to H. It is not a licence to obscure the pattern anywhere else.

Does density change how much data a code holds?

No. It sets a minimum grid size for looks. If your content will not fit the grid, we use the automatic grid instead.

Will changing these settings break a code I already printed?

The image is regenerated, so it will look different. On a dynamic code the destination is unchanged, so the printed version keeps working — use the new file from the next print run.

Should I change either setting for a screen?

No. On screens a code is clean, evenly lit and usually large relative to the camera, so Auto and Auto are correct.

Still stuck?

Email support@qrcodestack.com with the email on your account and, if it is about one code, its name or short link. A person replies within one business day, usually sooner.