QR codes on product packaging and labels

Packaging is the least forgiving home for a QR code — it curves, it shines, it is printed small, and a mistake ships in the tens of thousands.

6 min read · Updated

Everywhere else, a code that fails costs you one scan. On packaging it costs you a print run. That changes how much margin you should leave — and margin, not cleverness, is what makes packaging codes work.

Curved surfaces: keep the code small

A scanner corrects for a gentle bend using the alignment patterns, but a code wrapped too far around a bottle distorts past what those can fix. The rule of thumb is that the code should span no more than about a fifth of the circumference, so the curvature across it stays shallow.

ContainerCircumferenceKeep the code under
Lip balm, small vial~6 cmUse a flat tag or the cap instead
Drinks can~21 cm4 cm
Wine bottle~24 cm4.5 cm
Large jar, tub~30 cm+6 cm

Swipe the table to see all columns.

Place it on the flattest part of the panel and orient it so the bend runs across the code rather than diagonally. On a very small container, put the code on a flat surface — the cap, the base, a hang tag — instead of fighting the curve.

Small labels: shorten the content, not the code

Label space is the binding constraint, and the instinct is to shrink the code. Do the opposite: shorten what it encodes. A short link at QR version 3 printed at 2 cm outperforms a long tracking URL at version 10 printed at 2.5 cm, because the modules are physically bigger.

Point at yourbrand.com/p/42 and handle the campaign parameters server-side. The print-size guide explains why this matters more than any other single change.

Gloss, foil and dark substrates

Packaging finishes are optimised for shelf appeal, and most of them hurt scanning. Glossy varnish reflects the store's ceiling lights straight into the camera. Metallic and foil stocks scatter light unpredictably. Printing light modules on a dark carton inverts the code, which many scanners refuse outright.

  • Ask for a matte varnish patch over the code even if the rest of the panel is gloss. Printers do this routinely.
  • On a dark package, put a light panel behind the code rather than inverting the modules.
  • Print in solid black, not a screened tint and not rich black — a halftone screen turns small modules into dot clouds.
  • Avoid placing the code across a fold, seam or seal. Anything that creases the grid destroys it.

Error correction and logos

Use Q as the floor and H if there is a logo in the middle. Packaging gets scuffed in transit, rubbed in a bag and faded on a sunny shelf, and the redundancy is what carries the code through all three. If you want branding, keep the logo under 20% of the width and read the logo guide first — on packaging you have less headroom than anywhere else.

Send vector to the printer

Export SVG, PDF or EPS and hand that to the packaging house. A raster file will be rescaled somewhere in the prepress chain and the module edges will soften — which is invisible on screen and fatal at 2 cm. Ask the printer to place it without resampling and to keep the quiet zone clear of the die line.

Ask for a proof on the real substrate with the real finish, and scan that. A proof on plain paper tells you nothing about how the gloss will behave under a shop light.

The destination has to outlive the box

A product sits on a shelf for a year and in a cupboard for five more. Point the code at a URL you will still control then, on your own domain, and keep that URL working even if the product page moves — redirect it rather than letting it 404. A code that leads to a dead page is worse than no code, because someone bothered to scan it.

This is also the argument against a vendor's dynamic code on packaging: your box outlasts most subscriptions.

The pre-flight list

  • Short URL on your own domain, redirect-safe.
  • Vector export, solid black, quiet zone clear of the die line.
  • Error correction Q, or H with a logo.
  • Matte patch over the code; light panel if the pack is dark.
  • Not on a fold, seam or heavily curved section.
  • Proof on the real substrate, scanned with two phones under shop lighting.

If the proof hesitates, the troubleshooting checklist isolates which of the six above is the culprit.