QR Code Size and Error Correction: Print Rules That Scan

How big should I print a QR code, and which error correction level should I choose?

Short answer

Size a QR code by its modules, not its outer width. Keep the content short, leave a blank margin four modules wide on every side, and make each module big enough for the scanner and distance. Level M suits most print jobs; Q or H buys tolerance for dirt or a logo, at the cost of a denser code.

On this page
  1. Modules and versions: size starts with your content
  2. Error correction: L, M, Q and H
  3. The quiet zone: four modules on every side
  4. Module size and minimum print size
  5. Logos, colors and design changes
  6. Test before the full print run
  7. Next step

A QR code that scans fine on your monitor can fail on a business card, a curved bottle or a poster across the room. The usual culprits are a code printed too small for how much it holds, a margin that got cropped, or a logo that ate too much of the error correction.

These are the print rules that prevent those failures. They come from DENSO WAVE, the company that invented the QR Code, and from GS1's guidance for QR codes on retail packaging. The full specification is ISO/IEC 18004.

Modules and versions: size starts with your content

A QR code is a grid of small squares called modules. DENSO WAVE's capacity page lists 40 versions, from Version 1 at 21 × 21 modules to Version 40 at 177 × 177, with each version adding 4 modules per side. The more you encode, and the more error correction you ask for, the higher the version and the more modules you have to fit into the same space.

Here is how many bytes (for example, characters of a plain web address) the first versions hold at each error correction level, from DENSO WAVE's tables:

VersionGridLMQH
121 × 211714117
225 × 2532262014
329 × 2953423224
433 × 3378624634
537 × 37106846044
641 × 411341067458

The cheapest way to get a smaller, easier-to-scan code is to encode less. Use a short URL and leave off tracking parameters you don't need.

GS1's QR Code best practices add a less obvious trick: the https:// part and the domain aren't case-sensitive, and uppercase letters encode more efficiently, so HTTPS://EXAMPLE.COM/menu can produce a smaller code than the all-lowercase form. Only do this for the scheme and domain, though, because the path after the domain may be case-sensitive on your server.

Error correction: L, M, Q and H

QR codes use Reed-Solomon error correction, which lets a reader rebuild data from a partly damaged symbol. You choose one of four levels. DENSO WAVE's error correction page gives these approximate recovery rates:

LevelApproximate recoveryTypical use
L7%Clean settings with a lot of data
M15%The most common choice for general print
Q25%Dirty or rough environments
H30%Dirty or rough environments, codes with a logo

Two details are easy to miss. The percentages refer to codewords, the 8-bit units the data is stored in, not to a share of the printed area. And they are one shared budget, so whatever a logo uses up is no longer available for scratches and smudges.

Worked example: what H costs

Say you're encoding a 40-character web address. Using the table above, it fits in Version 3 at L or M, needs Version 4 at Q, and needs Version 5 at H.

Now print it 1 inch (25.4 mm) wide, including the quiet zone described below. Version 3 is 29 modules plus 8 margin modules, or 37 across, so each module is about 0.69 mm. Version 5 is 37 plus 8, or 45 across, so each module shrinks to about 0.56 mm.

At the same printed size, level H makes every module about 18% smaller, and smaller modules are harder to read. If you choose H, plan to print a little larger.

The quiet zone: four modules on every side

A QR code needs a blank margin, the quiet zone, around all four sides. DENSO WAVE's code area page sets it at four modules wide, and GS1's retail 2D guideline uses the same four-module rule for QR codes on packaging. That's wider than many people expect: with 0.5 mm modules, you need 2 mm of clear space on each side.

Keep the quiet zone light and empty. Text, borders, die cuts, a busy package background or a dark panel inside that margin can stop a reader from finding the code. When you check a layout, measure from the outermost dark module, not from the edge of the image file.

Module size and minimum print size

DENSO WAVE's module size page makes two practical points. Larger modules read more reliably, so print the code as large as the space allows. And each module should be at least four printer dots wide for stable printing. At four dots, that works out to about 0.5 mm per module on a 200 dpi thermal printer, 0.33 mm at 300 dpi, and 0.17 mm on a 600 dpi laser printer.

Those are printing limits, not scanning targets. For QR codes scanned at retail checkout, GS1's guideline sets the module size between 0.396 mm and 0.990 mm, with 0.495 mm as the target. A Version 3 code at 0.495 mm, with its quiet zone, comes to about 18.3 mm (0.72 in) square.

For phone scanning, a common rule of thumb is to make the code's width at least one-tenth of the scanning distance. [VERIFY] By that rule, a label read from about 10 inches away needs a code at least 1 inch wide, and a poster read from 10 feet needs about 12 inches.

Treat it as a starting point. A dense code, a dim room or an older phone needs more, and only a test tells you for sure.

Export for print as SVG when you can. The Plain Barcode generator exports both SVG and PNG; SVG stays sharp at any size, while a small PNG stretched in layout software can blur module edges.

Logos, colors and design changes

A logo in the middle of a QR code isn't part of the standard. GS1's guideline describes logos as damage that the reader repairs with error correction. If a logo is too large, or covers the three large squares in the corners that readers use to locate the code, the code fails. DENSO WAVE's FAQ gives a similar warning about overlaying illustrations.

If you add a logo anyway:

  • Use level H, or at least Q.
  • Keep the logo small and centered, well inside the recovery budget.
  • Never cover the corner squares or the quiet zone.
  • Keep modules square and on a regular grid, without stars, swirls or warped shapes.

For color, DENSO WAVE's advice is dark modules on a light background, ideally black on white. Many scanners use red light, so a red code on white can't be read, and GS1 says to avoid red for the dark modules.

Test before the full print run

Formal grading of 2D barcodes follows ISO/IEC 15415, which GS1 references for retail codes. The Plain Barcode generator doesn't verify print quality, so for everyday jobs a careful scan test is the minimum:

  1. Print a proof at actual size, on the actual material, with the printer you'll use for the run.
  2. Scan it with several phones, including an older one. Add your store or warehouse scanner if one will read it.
  3. Scan at the real distance and angle, under the real lighting. Check curved or glossy items after the label is applied.
  4. Confirm the code opens the exact page you intended.
  5. Check that trimming or die cutting left the full quiet zone intact.

If a code fails, the barcode not scanning checklist walks through the causes in order. For linear barcodes on the same label, see how to print barcodes that scan.

Next step

Shorten the content first. If your tool lets you pick the error correction level, use M, or H if the code will carry a logo. Size the code from the scanning distance and keep four clear modules on every side. Print one proof and scan it under real conditions before you print the rest.

Sources

  1. DENSO WAVE: Information capacity and versions of QR Code
  2. DENSO WAVE: Error correction feature
  3. DENSO WAVE: Point for determining the code area
  4. DENSO WAVE: Point for setting the module size
  5. DENSO WAVE: FAQ
  6. GS1: 2D Barcodes at Retail Point-of-Sale Implementation Guideline
  7. GS1: Best practices for creating your QR Code powered by GS1
  8. ISO: ISO/IEC 18004:2024 Information technology — Automatic identification and data capture techniques — QR code bar code symbology specification

Written by Toma Tomov, editor of Plain Barcode.

How guides are researched and corrected: Editorial Policy. Spotted an error? Email [email protected].