QR codes on product packaging and labels
On packaging, a QR code is printed small on a surface that may curve or shine, and any mistake is repeated across the whole print run.
6 min read · Updated
On a flyer, a code that fails costs you one scan. On packaging it can cost you a print run, so it pays to leave more safety margin than you would anywhere else. The sections below cover where that margin comes from: size, finish, error correction and the link itself.
Curved surfaces: keep the code small
A scanner uses the alignment patterns to correct for a gentle bend, but a code wrapped too far around a bottle is distorted beyond what they can fix. As a rule of thumb, the code should span no more than about a fifth of the circumference, so the curve across it stays shallow.
| Container | Circumference | Keep the code under |
|---|---|---|
| Lip balm, small vial | ~6 cm | Use a flat tag or the cap instead |
| Drinks can | ~21 cm | 4 cm |
| Wine bottle | ~24 cm | 4.5 cm |
| Large jar, tub | ~30 cm+ | 6 cm |
Swipe the table to see all columns.
Place the code on the flattest part of the panel, oriented so the bend runs straight across it rather than diagonally. On a very small container, move the code to a flat surface such as the cap, the base or a hang tag.
Small labels: shorten the encoded content
Label space is usually the tightest constraint, and the first instinct is to shrink the code. It works better to shorten what the code encodes. A short link at QR version 3 printed at 2 cm scans more reliably than a long tracking URL at version 10 printed at 2.5 cm, because its modules are physically bigger.
Point the code at yourbrand.com/p/42 and add the campaign parameters on the server. The print-size guide explains why this one change makes more difference than any other.
Gloss, foil and dark substrates
Packaging finishes are chosen for shelf appeal, and most of them make scanning harder. Glossy varnish reflects the shop's ceiling lights straight into the camera. Metallic and foil stocks scatter light unpredictably. Printing light modules on a dark carton inverts the code, and many scanners will not read an inverted code at all.
- 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 instead of inverting the modules.
- Print in solid black. Avoid screened tints and rich black: a halftone screen breaks small modules up into clusters of dots.
- Keep the code off any fold, seam or seal. A crease through the grid is usually enough to make it unreadable.
Error correction and logos
Use Q as a minimum, and H if there is a logo in the middle. Packaging gets scuffed in transit, rubbed in shopping bags and faded on sunny shelves, and the extra redundancy is what keeps the code readable through all of that. If you want branding, keep the logo under 20% of the code's width and read the logo guide first. Packaging leaves less room for error than any other medium.
Send vector to the printer
Export SVG, PDF or EPS and give that file to the packaging printer. A raster file will be rescaled at some point in prepress, which softens the module edges. You will not see it on screen, but at 2 cm it can stop the code scanning. Ask the printer to place the file without resampling and to keep the quiet zone clear of the die line.
Ask for a proof on the actual substrate with the actual finish, and scan that. A proof on plain paper tells you nothing about how the gloss will behave under shop lighting.
Use a URL that outlasts the packaging
A product can sit on a shelf for a year and in a cupboard for five more. Point the code at a URL on your own domain that you will still control by then, and keep it working if the product page moves: set up a redirect so it never returns a 404. A dead link frustrates exactly the customers who were interested enough to scan.
This is also the case against using a vendor's dynamic code on packaging. Boxes tend to stay in circulation longer than most subscriptions last.
Packaging QR code pre-flight checklist
- Short URL on your own domain, safe to redirect later.
- 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 tightly curved section.
- Proof on the real substrate, scanned with two phones under shop lighting.
If the proof is slow to scan, the troubleshooting checklist will help you work out which of the six points above is responsible.