Skip to content
Guides

QR Codes on Packaging: Never Print One With the URL Inside

IB

InBio Team

8 min read

Print a QR code on packaging and you are making a promise you cannot easily revise. Artwork locks weeks before the press run, the run sits in a warehouse, and the product stays on shelves for a year or two after that. Whatever address you encoded has to still work when a shopper scans it eighteen months from now.

So do not encode the destination. Encode a short link you control, and point that link wherever you like afterwards. It costs nothing at artwork stage, it keeps the destination editable for the life of the pack, and — as the numbers below show — it produces a physically more robust code at the same printed size.

Why packaging is not a poster

A poster is a short-lived asset. If the URL on it goes stale you take it down, and the cost of being wrong is a few hundred sheets of paper.

Packaging runs on a different clock. Artwork is typically approved two to three months before print. Print, fill, and distribution add several weeks more. The product then sits on shelves — and in consumers' cupboards — for anything from six months to three years. From the moment someone types a URL into the artwork file, that address needs to survive roughly two years of reorganized websites, retired campaigns, and rebranded product lines.

It rarely does. Marketing sites get restructured. The /promotions/spring-2026 page is deleted the following spring by someone who has never seen the carton. The code then leads to a 404 on hundreds of thousands of units, and there is no version of the fix that does not involve a printing press.

The arithmetic of getting it wrong

Changing a printed URL means new artwork, new plates or cylinders, and a fresh press run. That is the visible cost, and it is not the large one.

The large one is the stock already made. Cartons in the warehouse, filled product in transit, units already with the retailer: none of it can be corrected. In practice brands do not reprint over a broken link. They leave it broken and hope few people scan, which is the worst of both outcomes — the cost of printing the code, and none of the benefit.

A short link you control removes the scenario entirely. The page moves; you repoint the link; the printed code never changes.

Static and dynamic, in plain terms

A static QR code contains the destination itself. The pixels are the URL. Change the URL and you must reprint.

A dynamic QR code contains a short link that redirects. The pixels stay the same forever; the destination behind them is a database record you can edit in seconds. This is also the only arrangement in which you get scan data, because the redirect is where a scan can be counted. A static code reports nothing, ever.

The word "dynamic" is a marketing term for something quite ordinary: a short link with a QR code drawn around it. Any shortener with an editable destination gives you one. You can generate the codes in our QR code generator, or from an API if you are producing them per SKU.

Sizing: count modules, not millimeters

This is the part most packaging briefs get wrong, and it is where short URLs earn their place on technical grounds rather than aesthetic ones.

A QR code is a grid of squares called modules. The grid size is fixed by how much data you encode: more characters, more modules. At a given printed width, more modules means each one is physically smaller — and small modules are what makes a code fail on a phone camera, under warehouse lighting, on a curved surface, through a scuff.

Here is the same destination encoded four ways, at error-correction level M, printed 20 mm wide.

What you encode Characters Version Grid Module size at 20 mm
in.bio/oat 10 1 21 × 21 0.95 mm
go.acme.com/oat-2026 20 2 25 × 25 0.80 mm
https://www.acme.com/products/oat-milk-original 47 4 33 × 33 0.61 mm
The same URL with UTM tags appended 108 7 45 × 45 0.44 mm

The short link produces modules more than twice the size of the fully tagged URL in the same physical footprint. That is the entire argument. It is not a preference; it is the difference between a code that reads first time on a five-year-old handset and one that needs three attempts in good light.

Two rules of thumb keep you out of trouble. Minimum code width is roughly the intended scanning distance divided by ten, which puts a hand-held pack at about 30 mm and gives you room to go smaller only if you have tested it. And a module should not fall below about 0.4 mm on any consumer-facing pack, whatever the arithmetic says.

Do not forget the quiet zone: the standard requires four clear modules of margin on every side, and designers under space pressure are forever shaving it. A code with a cramped quiet zone fails in ways that are hard to diagnose, because it usually still works on the designer's screen.

QR codes carry redundancy so they survive damage. There are four levels — L, M, Q and H — recovering roughly 7%, 15%, 25% and 30% of the symbol respectively.

For packaging, level Q is the sensible default. Cartons get scuffed in transit, folded at the crease, and curved around a can. Level H sounds safer still, but it is not free: redundancy is data, and more data means more modules, which means smaller ones. Pushed too far, the extra error correction costs you more in module size than it returns in damage tolerance.

This is where the encoded length pays off a second time. That 108-character tagged URL needs a 45 × 45 grid at level M; raise it to level Q and it needs 49 × 49, dropping modules to 0.41 mm at 20 mm wide. The 20-character short link still fits a 25 × 25 grid at level Q — 0.80 mm modules, with the higher error correction included. Shortening the payload is how you afford the robustness.

Substrate, placement, and the things that actually break codes

The specification is only half of it. The other half is physical.

Contrast and polarity. Dark modules on a light background. Inverted codes — light on dark — read on many modern phones and fail on plenty of older ones and most industrial scanners. It is a design flourish with a real failure rate.

Uncoated and kraft stock. Absorbent substrates spread ink. Modules bleed into their neighbors and the code degrades. Size up on uncoated board, and never assume a spec proven on coated stock transfers.

Varnish, foil, and metallized film. Glare defeats the camera's contrast detection before the decoder gets a chance. Keep the code out of high-gloss varnish passes and away from reflective panels.

Curvature. A code wrapped around a 66 mm can deforms into an arc the decoder has to correct for. Keep it on the flattest panel available, and keep it small relative to the circumference.

Folds and seams. A crease through the middle of a finder pattern is fatal. Check the code's position against the die line, not just the flat artwork.

Test before the plates are made

Screen tests prove nothing. The failure modes are all physical.

Print the code at final size, on the final substrate, with the final varnish. Then scan it with the worst phone in the office, at arm's length, at an angle, in the sort of lighting a supermarket aisle actually provides. Scan it after crumpling the pack. Scan it after a thumbnail has scratched across it. If it takes more than a second or two under those conditions, it is too small — go up a size or shorten the payload, which amounts to the same thing.

Do this at the artwork proof stage, not after the press run, which is the only stage at which the answer still costs nothing.

When the campaign ends

The campaign behind the code will finish long before the pack leaves circulation. Decide now where the link goes afterwards.

The rule is simple: never let a printed code resolve to a 404. When a promotion closes, repoint the link to the product page, the category, or the brand homepage — anywhere that makes sense to a person holding your packaging. A visitor who lands on something mildly less relevant than they expected is a minor disappointment. A visitor who lands on an error page has just been told, on your own packaging, that you do not maintain your own things.

Editing the destination also lets the code do more than one job over its life. Launch: the campaign page. Six months on: recipes or care instructions. After that: reorder, or the loyalty scheme.

Who owns the address

A printed QR code hands part of your packaging to a third party. Choose carefully.

Google wound down its goo.gl shortener and a large share of those links stopped resolving in 2025. Anything printed with one of them became dead ink. It was an unusually well-signposted shutdown, and it still stranded a great deal of physical material.

Two protections are worth insisting on before you commit codes to a press run. Use a custom domain you own, so that changing providers is a DNS change rather than a reprint. And confirm you can export the full link-to-destination mapping at any time, so the relationship is portable.

Ask what happens if you stop paying. Some vendors deactivate redirects on downgrade, which turns your packaging into a hostage. It is a dull question to raise in a procurement call and a far duller conversation to have with a brand director afterwards.

The regulatory driver

Codes on packaging are increasingly not a marketing choice.

Since December 2023, wine and aromatized wine sold in the EU must carry ingredient and nutrition information, which producers are permitted to supply electronically — in practice, a QR code on the label. The EU's Digital Product Passport, phasing in from 2027 and starting with textiles, follows the same pattern: a machine-readable pointer on the product to information held online.

Both are long-lived obligations attached to physical goods, which makes the editable destination a compliance property rather than a convenience. Regulations get amended. Packs do not.

A short checklist

Before artwork lock, confirm all of the following. Encode a short link on a domain you own, never the final URL. Size the code from its module count, keeping modules above 0.4 mm and width at or above 30 mm for hand-held packs. Use error correction level Q. Keep four modules of quiet zone. Print dark on light, on the flattest panel, clear of folds, foil, and gloss varnish. Test on the real substrate with a bad phone. And write down, now, where the link points once the campaign ends.

Everything on that list is free at the artwork stage. Only one of them is fixable afterwards, and only because you followed the first.

Frequently asked questions

IB

Written by the InBio Team

We write about short links, QR codes, click analytics, and the small details that help teams get more out of every link they share.

Recent posts

Guides

Link Management for Agencies: One Resignation From Losing 400 Links

Most agencies keep client links in a spreadsheet and somebody's personal login. Four rules replace that — isolate each client, put the links on a domain the client owns, make the naming enforce itself, and settle offboarding on day one.

IB
InBio Team6 min read
Read
Analytics

URL Shortener Comparison 2026: We Timed 8 Services 800 Times

Bitly, TinyURL, Rebrandly, Short.io, Dub, Cutt.ly, shorturl.at and us — same destination, 100 samples each. Median redirect times, worst cases, and the two services that quietly refuse to answer machines at all. The code is public, so run it yourself.

IB
InBio Team8 min read
Read
Guides

How to Shorten a URL (and What to Do With It Afterwards)

Shortening takes about five seconds. The useful part comes next: a name people can read out loud, a QR code that matches your brand, and an answer to the only question anyone actually asks — did someone click it?

IB
InBio Team6 min read
Read