2D Ready

How big does a QR code need to be on packaging?

Big enough that each module — each small square the code is built from — is at least 0.396 mm across, if it will ever be scanned at a retail checkout. That measurement is called the X-dimension, and everything else about the code's size follows from it.

In short

  • GS1 specifies an X-dimension of 0.396 mm minimum and 0.495 mm target for a QR code carrying a Digital Link at retail point of sale.
  • A clear quiet zone of four modules is required on all four sides, and counts as part of the symbol.
  • At the target X-dimension, a Digital Link carrying just a GTIN comes out around 18 mm square including that border.
  • Brief your printer with an X-dimension, not an overall size — and proof it on the real substrate before the run.

The numbers

These are the figures for a QR code carrying a GS1 Digital Link URI on consumer packaging scanned at retail point of sale.

PropertyValue
X-dimension, minimum0.396 mm
X-dimension, target0.495 mm
X-dimension, maximum0.99 mm
Quiet zone4 modules, all four sides
Minimum print quality1.5/12/660

Source: GS1 General Specifications Standard, Release 26.0 (Ratified, January 2026), §5.12.3.1, Table 5-46, row "QR Code (GS1 Digital Link URI)". Section and table numbering moves between annual releases, so this citation is pinned to the release we checked. Confirm against the current release before a large run.

What that works out to on a pack

A QR symbol is a fixed number of modules across for a given amount of data, so once you know the X-dimension the physical size is arithmetic. These are real module counts from the codes we generate, at error correction level M, with the four-module quiet zone included in the measurement.

What's encodedModulesAt 0.396 mm (min)At 0.495 mm (target)
GTIN only29 × 2914.65 mm square18.32 mm square
GTIN + batch + best-before33 × 3316.24 mm square20.29 mm square

The practical reading of that table: a checkout-safe Digital Link code is roughly the size of a thumbnail, and encoding more data costs you real millimetres. If space on the pack is the binding constraint, put the GTIN in the code and the detail on the page behind it — the page is unlimited and the pack is not.

Two rules that catch people out

The 2D code is an addition, not a replacement. For retail point of sale, the General Specifications require the 2D symbol to be carried in addition to the linear barcode, not instead of it. Plan artwork that has room for both until the retailers you sell through can all scan 2D at the till. That is what GS1's Sunrise 2027 milestone is about — the point by which checkout scanners are expected to read 2D barcodes everywhere.

The URI must be uncompressed. The standard permits a compressed form of a Digital Link, but not for codes scanned at retail point of sale. If you want fewer modules, the legitimate lever is a shorter domain and less encoded data — not compression.

These figures are for retail checkouts specifically

GS1 publishes different X-dimension ranges for different application areas, and taking numbers from the wrong table is an easy mistake — we have made it ourselves. Codes intended for general distribution and warehouse scanning start considerably larger. Codes that will never be scanned at a checkout have a different range again, and direct part marking goes smaller than any of them. If your product is a consumer item sold through retail, the figures above are the ones that apply. If it is not, check the symbol specification table for your case rather than assuming.

What actually goes wrong in practice

The numbers are the easy part. Codes fail on press for reasons the arithmetic doesn't capture.

  • Substrate. Ink spreads differently on uncoated board, film, foil and kraft. A size that works on a coated carton can close up the modules on absorbent stock.
  • Contrast. Dark on light, with real contrast. A code printed in a brand colour on a mid-tone background can measure correctly and still fail to read.
  • Curvature. Slim cans, bottle necks and tubes bend the symbol away from the scanner. Test on the actual container, not on a flat proof.
  • The quiet zone. The most common single failure. Artwork creeps into the clear border and the scanner stops finding the code.
  • Varnish and laminate. Gloss finishes throw glare straight back at a scanner. Matte over the code area is worth asking for.

None of these are reasons not to do it. They are reasons to print a proof at actual size, on the real material, and scan it before you commit the run.

Check it before you print

  • Build your code and download it as SVG — vector, so it scales without softening the edges.
  • Check what it says before it reaches artwork. A correctly sized code carrying the wrong GTIN is worse than a badly sized one.
  • Understand what you're encoding — every field you add makes the symbol bigger, so it is worth knowing which ones earn their space.

Common questions

How big does a QR code need to be on packaging?

For a code that will be scanned at a retail checkout, each module — each small square — must be at least 0.396 mm across, and GS1's target is 0.495 mm. For a typical Digital Link carrying a GTIN, that works out at roughly 15 mm square at the minimum and 18 mm square at the target, including the mandatory clear border. Ask for the X-dimension rather than the overall size when you brief a printer: the overall size is a consequence of it.

What is an X-dimension?

The width of one module: the smallest square the symbol is built from. Every other dimension follows from it, because a QR symbol is a fixed number of modules across for a given amount of data. It is the number GS1 specifies and the number a printer needs, which is why it is more useful than talking about the code in millimetres square.

Can I print it smaller than the minimum if it scans on my phone?

Your phone is not the test. Phone cameras are far more capable than the fixed-focus omnidirectional scanners at a supermarket checkout, so a code can read perfectly on your desk and fail at the till. The specified minimum exists for the hardest reader in the chain, not the easiest.

Does the quiet zone really need to be that big?

Yes, and it is the most common thing designers lose. GS1 requires a clear border of four modules on all four sides of the symbol, with nothing printed in it. It is what lets a scanner find the edges of the code against surrounding artwork. If your layout is tight, shrink something else — the quiet zone is part of the symbol, not padding around it.

Why is my code bigger than the example?

Because it carries more data. Every field you encode adds modules, and past certain thresholds the symbol steps up a size. A GTIN on its own is the smallest useful Digital Link; adding a batch number and a date makes it meaningfully larger. If space is critical, encode less on the pack and put the detail on the page behind it.

Can I compress the URL to make the code smaller?

Not for retail point of sale. The General Specifications require the uncompressed form of a Digital Link URI for codes scanned there. A shorter domain is the legitimate way to save modules — which is one practical argument for putting your codes on your own short domain rather than a long platform URL.

Do these figures apply to codes that aren't scanned at a checkout?

No, and this catches people out. GS1 publishes different X-dimension ranges for different application areas — general distribution and warehouse scanning start much larger, direct part marking goes smaller. The figures on this page are the retail point-of-sale case for consumer packaging, which is what almost every brand reading this needs.

What should I actually send to my printer?

Vector artwork, an explicit X-dimension in millimetres, and a note that the quiet zone is part of the symbol and must not be encroached on. Then print a proof on the real substrate, at the real size, on the real press, and scan it — with a phone and, if you can get access to one, a POS scanner. Substrate and press behaviour cause more failures than the numbers do.

Start free → More guides →