Print & production

QR codes on product packaging: size, material and placement

Paolo Matias Tonello9 min read

A QR code on packaging has to work in the worst conditions a code ever faces: small, curved, printed on a reflective or textured substrate, held at arm's length under supermarket lighting, by someone who will give up after two seconds.

Minimum size on a package

Scanning distance drives size: the usual working rule is that the code should be about one tenth of the distance it is read from. A code read at 20 cm needs roughly 2 cm. That is a floor, not a target — going to 2.5 cm costs nothing and buys tolerance for print drift and worn packaging.

Practical sizes on packaging
PackageTypical read distanceRecommended code size
Cosmetics, small cartons15-20 cm20-25 mm
Food boxes, bottles20-30 cm25-30 mm
Large cartons, shipping boxes40-60 cm40-60 mm
Shelf and shelf-edge labels30-50 cm30-50 mm

Quiet zone and neighbouring artwork

The quiet zone is the empty margin around the code that tells the scanner where the symbol ends. It must be at least four modules wide — in practice, keep clear space equal to about 10% of the code's width. Ingredient lists, barcodes, seals and decorative rules crowding into that margin are one of the most common causes of a code that scans in the studio and fails on the shelf.

  • No text, rules or other codes inside the margin
  • Do not place the code across a fold, a seam or a die-cut
  • Keep at least 5 mm from the edge of the panel so trimming cannot eat the margin
  • If the artwork is busy, put the code on a plain white patch

Materials, finishes and curvature

Packaging finishes are optimised for how the product looks, not for how a camera reads it. Gloss varnish and metallic foils bounce the store lights straight back into the lens; matte and textured stocks scatter it. Both destroy the contrast the decoder needs.

Substrates and finishes
FinishEffect on scanningWhat to do
Gloss varnish / laminateSpecular glare over the codeSpot matte varnish over the code area
Metallic foil, mirror boardVery poor contrastPrint the code on a white patch
Kraft / recycled boardInk spread, muddy modulesIncrease size, raise error correction
Shrink sleeve on a bottleDistortion on the curvePlace on the flattest panel available
Frozen / condensation-proneWater film blurs edgesLarger code, high contrast, matte

On strongly curved surfaces — thin bottles, tubes, cans — the modules stretch away from the camera at the edges. Keep the code narrow relative to the diameter, centre it on the panel facing the shopper, and never wrap it around the curve.

Why packaging codes must be dynamic

A print run lives on shelves for months and in cupboards for years. In that time the landing page gets restructured, the campaign ends, the product page moves. A static code freezes today's URL into the carton forever; a dynamic code keeps one stable redirect on the pack and lets you repoint it — from launch campaign, to recipes, to a support page — without touching the artwork.

  • Repoint from campaign to evergreen content once the launch ends
  • Switch to a recall or safety notice within minutes if you ever need to
  • Localise the destination by country without printing regional variants
  • Measure scans per batch to see which SKU actually drives engagement

Pre-press checklist

  1. Vector file (SVG or PDF), pure black modules, no transparency effects over the code.
  2. Code size checked against the real read distance, not against the on-screen mockup.
  3. Quiet zone measured on the final artwork, after any resizing.
  4. Spot matte over the code if the panel is glossy or foiled.
  5. Physical proof on the real substrate, scanned by at least two different phones.

Author

Paolo Matias TonelloFounder, Qreator

Founder of MT Digital Services LLC and builder of Qreator. Writes about QR codes, print production and privacy-friendly analytics.

Put it into practice