QR Codes on Product Packaging: Placement, Size and Substrate

Published: 15 September 2026 | Reading time: 7 minutes

A QR code on a shelf behaves differently from a QR code on a poster. The shopper is standing, not sitting. The light is overhead fluorescent, not a desk lamp. The surface is often curved, sometimes shiny, and the person has about two seconds of patience before they put the box back. Most packaging QR codes fail for physical reasons long before anyone considers whether the URL was a good idea.

This guide covers what actually changes when you move a code from a screen to a box, a bottle or a pouch.

Start with the substrate, not the code

The material underneath the ink matters more than most people expect. Print absorbs into uncoated cardboard and spreads slightly, a phenomenon called dot gain. On a 0.8 mm module that spread can close the gap between two dark squares and merge them, which is fatal. Coated and laminated stocks hold much crisper edges, which is why a code that prints beautifully on a glossy label turns to mush on recycled kraft.

Practical rule: if you are printing on absorbent stock, increase the physical size of the code by roughly 25% over what you would use on a coated label, and specify the highest resolution print process your budget allows. Flexography, the workhorse of packaging, has a noticeably coarser dot than offset or digital, so codes destined for flexo need more margin again.

Gloss, glare and why matte wins

A shopper scanning a box under a shop light is pointing a camera at a partially reflective surface. Hot spots wash out entire regions of the code, and a scanner that loses the finder patterns cannot even orient itself. Matte and soft-touch laminates scatter that light and are reliably easier to scan. If the design demands gloss, keep the code away from the areas that catch the most light, or spot-varnish everywhere except the code.

Metallic and foil-stamped substrates are the hardest case. A QR code printed directly on foil often fails because the camera cannot separate the ink from the reflective background. If foil is non-negotiable, print the code on a matte label applied over the foil rather than onto it.

Curved surfaces: the hidden size tax

Cylinders — bottles, cans, tubes — create two problems. First, the code is foreshortened at the edges, so the effective module width shrinks where the surface curves away. Second, the code is rarely flat to the camera at the moment of scanning.

On a bottle, place the code on the largest flat panel available, and keep the code narrow relative to the circumference. A useful guideline: the code width should not exceed about a quarter of the circumference of a small cylinder. On a 200 mm circumference bottle that means a code no wider than roughly 50 mm. If you need a bigger code than the panel allows, you need a bigger panel, a flat side, or a label that wraps a flatter section.

Size minimums that survive retail

Handheld scanning from 20–30 cm is the realistic scenario. That puts the practical floor for packaging at about 20 x 20 mm on a flat, matte, coated surface. On curved, glossy or absorbent stock, start at 25–30 mm instead. Anything smaller and you are relying on the shopper's phone, their steadiness and the shop's lighting all being above average.

Remember that more data means more modules, and more modules at a fixed physical size means smaller modules. A long tracking URL can push a code from a comfortable version 3 to a dense version 7, halving the module size at the same printed dimensions. Shorten the URL before you shrink anything else. Our print sizing guide has the version-by-version breakdown.

Where on the pack should it go?

  • Not on a fold or a seam. A code straddling a crease distorts the module grid and will not decode reliably.
  • Not on the base of a rigid box unless the product is displayed lying down. Put it where the eye already goes: the front face or the side panel that faces outward on shelf.
  • Away from the barcode. Retail staff and self-checkout scanners reach for the EAN/UPC. Two dense black patterns side by side cause confusion at the till and in the camera.
  • Inside the pack as well, if the content is durable. An insert code survives the outer packaging being thrown away — which matters enormously for registration, manuals and reordering.

What should the code actually open?

The most common packaging mistake is sending a shopper to a homepage. Someone standing in a shop with a product in their hand has already passed the awareness stage. Send them to the thing that matches the moment: a recipe, a dosage table, a spare parts diagram, a size guide, a registration form, or a restock page.

Make the destination mobile-first and fast. A heavy page that takes five seconds to load on shop mobile data has lost the scan. Also make sure the page is specific to the product — a generic " welcome to our website" page is the fastest way to ensure nobody scans a second code from your brand again.

Regulatory and traceability notes

Some categories now require or strongly encourage a scannable code. Food labelling in the EU and the UK increasingly expects digital labelling links; the EU Digital Product Passport will do the same for batteries, textiles and electronics. If your code is carrying compliance information rather than marketing, treat it as infrastructure: monitor the destination URL, do not let it expire, and keep the content available for the full life of the product, not just the campaign.

Test like a shopper, not like a designer

Before the print run, print a proof on the actual stock with the actual process, then do this: hold the pack at arm's length under bright overhead light, scan with an iPhone and with an Android phone, and scan again after the pack has been handled for a minute. Codes that pass on a clean proof often fail once the surface has fingerprints and scuffs. If it fails twice out of six attempts, it will fail in the field — increase the size or change the substrate.

FAQ

Can I print a QR code on a shiny label?

Yes, but expect a lower success rate. Matte lamination is markedly better. If gloss is required, increase the code size and keep it away from the areas that catch direct light.

Will a QR code work on a curved bottle?

Yes if the code is small relative to the curve. Keep the width under roughly a quarter of the circumference and place it on the flattest panel.

How small can a packaging QR code be?

About 20 x 20 mm on flat coated stock as a floor, and 25–30 mm on curved, glossy or absorbent surfaces.

Should the packaging code link to my homepage?

In most cases no. Link to the specific page that answers the question the shopper has at that moment: how to use it, how to assemble it, how to reorder it.

Do I need a different code for every market?

Not necessarily. One code can point to a URL that detects language and redirects, but if you print different codes per market you can also measure them separately with UTM tags.

Related guides

Sizing is the part that trips up most packaging projects — see What Size Should a QR Code Be?. If your code scans on the proof but not on the shelf, work through the troubleshooting guide. For campaign structure and placement strategy, QR code best practices covers the wider picture, and URL QR codes is the generator to start from.