QR Codes on Product Packaging: Design Rules That Survive the Print Run — featured illustration
Design

QR Codes on Product Packaging: Design Rules That Survive the Print Run

5 min read
Create a QR code

The proof scanned perfectly on your desk. Six weeks later, 50,000 filled jars are in stores and the code fails under fluorescent light, because the press spread the ink the way presses do and the curve of the jar did the rest. Packaging is the hardest surface a QR code ever lives on, and every fix happens before the run, never after.

Size for the hand, not the shelf

Decide first where the scan happens. In the hand, 15 to 25 cm from the eyes, a 2 cm (0.8 in) code scans reliably on any modern phone. On the shelf, at arm's length or a step back, the usual rule of thumb (scan distance divided by 10) demands 5 cm or more, which few packs can spare.

Design for the in-hand scan: it is the realistic one, because shoppers pick up a pack they are curious about. Treat 2 cm as the floor. Below that you are betting on module counts and press sharpness, and print resolution and DPI covers exactly how that bet goes wrong.

Curvature: the jar tax

A QR code is square, so on a cylinder it always spans some arc, and past a limit the outer columns distort beyond what error correction can recover. A working rule: keep the code width under about one sixth of the circumference. A 6 cm diameter jar has a circumference around 18.8 cm, so the code stays under 3 cm wide.

On slim bottles the numbers collide: a 3 cm diameter bottle allows a 1.5 cm code, which fails the size floor above. The escape routes are the flattest zone (many bottles have a near-flat back panel), a neck hang tag, or the cap top if it measures 3 cm or more. The full geometry, including fabric and other unfriendly surfaces, is in curved surfaces and fabric.

The press will not print what your screen shows

Flexographic printing, the default for labels, film, and corrugated board, spreads ink. Dot gain makes every dark module grow, and at packaging sizes the white gaps between modules start closing up. A code that renders crisp in the PDF can come off the press with its fine structure fused into blobs.

Counter it by lowering data density. A short URL (a dynamic redirect link typically runs under 30 characters) produces a code with fewer, larger modules than a 90-character tracking URL crammed into the same square. Know what error correction is costing you: level H, which is what codes built here always use, adds roughly 30 percent more modules than level M and shrinks every one of them, which is a fair trade when a logo sits in the middle and a cost to design around when none does. And send the printer vector art, SVG or PDF, never a screenshot, so the converter can apply their standard choke to the dark areas.

Quiet zones, seams, folds, and crimps

The quiet zone, the empty margin at least 4 modules wide, is part of the code. Die lines, embossing, seams, and folds all invade it in ways a flat proof never shows.

Never place a code across a carton fold: the crease reads as a thick dark line straight through the data. Keep it off the shrink-sleeve seam, and if it must go on a sleeve, have the converter predistort the art for shrink. Never put it under or beside the lid crimp on jars and cans, where metal deformation and glue both land.

The placement that works is the back panel, near the barcode. Shoppers already turn packs over to read ingredients, the surface there is usually the flattest, and that area stays clear of decoration because the barcode requires it. Scan rates on back panels beat lids and side gussets in most published packaging studies for a simple reason: that is where hands and eyes already go.

Substrate contrast

Kraft brown eats contrast. Dark ink on kraft paper can drop below reliable thresholds in a dim aisle, so print a white patch behind the code and put the dark modules on that.

Foil and metallized film add glare. At store lighting angles the bright modules mirror the ceiling and the camera sees noise; a matte varnish over the code area fixes it for a fraction of a cent per unit.

Transparent film has no background at all. Whatever the product looks like becomes your light modules, which means salsa red one batch and glass clear the next. Spec a flood of white ink behind the code. The exact contrast ratios, and the reversed-code trap, are in color contrast rules.

The test protocol before 50,000 units

  1. Proof at final size with the production process on the production substrate. An inkjet proof of a flexo job proves nothing about dot gain.
  2. Apply the proof to the real container, filled. Curvature and content color both change the result.
  3. Scan with three phones: a recent iPhone, a recent Android, and a 3 or 4 year old budget Android, all using the native camera.
  4. Test under store conditions: bright overhead fluorescent light, including the glare angle, and one dim corner.
  5. Hold at the real distance and at 30 to 45 degrees off-axis, because shoppers do not scan square-on.
  6. Every phone should lock on within about 2 seconds. One slow phone at the proof stage means a percentage of failed scans at retail scale.

If the code carries branding, build it with QRolling's QR generator with logo and export the SVG, so the file that reaches the converter is vector from the first step, with the logo already sized against error correction.

Before you approve the next proof, wrap it around the actual filled container and run the six steps with three phones under the worst light in the building. It takes 15 minutes, and it is the cheapest quality control the pack will ever get.

Share this article