Technology

Dynamic vs static QR codes

This question is asked constantly and is usually a distraction — for product programs the important distinction is not dynamic versus static but unique versus repeated. Still, the dynamic decision has real consequences once a code is printed on a million packs and cannot be recalled.

Comparing dynamic and static QR code behaviour in a product program

A static QR code encodes its destination directly, so it can never be changed once printed. A dynamic QR code encodes a short redirect URL, so the destination can be changed later and every scan can be tracked. For product programs a dynamic code is almost always correct, because packaging outlives campaigns — but the more important property is that each code is unique and serialised, which is independent of both.

The actual difference

StaticDynamic
What is encodedThe final destination itselfA short redirect URL
Changeable after printingNo, everYes
Scan trackingNone inherentlyEvery scan logged at redirect
DependencyNoneThe redirect service must stay up, forever
Code densityLarger pattern for long URLsSmaller, more robust pattern
CostFree to generateUsually a platform cost

Why dynamic almost always wins on packaging

Packaging has a longer life than any campaign. A carton printed today may be scanned three years from now, by which time the landing page has moved, the campaign has ended and the brand has restructured its website. A static code printed against a URL that no longer exists is a dead code on live product, and there is no fix short of a recall.

A dynamic code also gives you the scan record. Without it you cannot see scan volume, geography or timing — which for a loyalty program is not a nice-to-have, it is the program.

The dependency you are accepting

A dynamic code is a permanent dependency on whoever operates the redirect. If that service disappears, every code you have ever printed stops working. Manage it deliberately:

  • Use your own domain for the redirect, not the vendor's. This is the single most important control, because it means you can repoint the codes to a different platform if you change vendors.
  • Get the redirect map in your exit terms — the mapping of code to destination is your asset.
  • Check uptime commitments, because downtime means every scan in the country failing simultaneously.
  • Keep the URL short. A shorter redirect means a lower-density code, which scans faster on cheap phones in poor light — a real consideration in the field.

Brands that print codes on a vendor's domain discover the consequences at renewal, when switching platforms would strand every code in the market. That is a negotiating position you hand over for free.

The distinction that matters more

Dynamic versus static is about editability. Unique versus repeated is about whether you have a program at all:

  • A static repeated code is a printed link. No rewards, no verification, no data.
  • A dynamic repeated code is a trackable printed link. You get aggregate scan counts and nothing else — you cannot reward, because the code is infinitely reusable.
  • A dynamic unique code is a program. Each unit identifiable, each scan attributable, each code claimable once.

Most brands asking about dynamic versus static are actually asking whether they need serialisation. If you want to reward or verify, the answer is yes — see unique QR codes and serialisation.

Practical printing notes

  1. Error correction level. Higher correction survives scuffs and partial damage at the cost of a denser pattern. Level M or Q suits most packaging; go higher only where abrasion is expected.
  2. Minimum size. Below about 15mm, cheap phone cameras struggle in poor light. Field conditions are worse than your desk.
  3. Quiet zone. Keep clear margin around the code. Crowded artwork is a common cause of scan failure that nobody diagnoses.
  4. Contrast. Dark code on a light background. Coloured or reversed codes look better in artwork and scan worse in a warehouse.

Frequently asked questions

What is the difference between a dynamic and a static QR code?

A static QR code encodes its destination directly and can never be changed after printing. A dynamic QR code encodes a short redirect URL, so the destination can be updated later and every scan can be tracked. Dynamic codes require a redirect service that must stay available for the life of the printed packaging.

Should product packaging use dynamic QR codes?

Almost always yes, because packaging outlives campaigns. A carton printed today may be scanned three years later, by which time a static code's destination may no longer exist — and there is no fix short of a recall. Dynamic codes also provide the scan record that a loyalty program depends on.

What is the risk of dynamic QR codes?

A permanent dependency on whoever operates the redirect. If that service disappears, every code ever printed stops working. Mitigate it by using your own domain for the redirect rather than the vendor's, securing the code-to-destination map in your exit terms, and checking uptime commitments.

Is dynamic versus static the same as unique versus repeated?

No, and conflating them is common. Dynamic versus static is about whether the destination can be edited. Unique versus repeated is about whether every unit has its own code. You need unique serialised codes to reward or verify anything; a dynamic repeated code gives you aggregate scan counts and nothing more.

What size should a QR code be on packaging?

At least about 15mm, because below that cheap phone cameras struggle in poor light and field conditions are considerably worse than a desk. Keep a clear quiet zone around the code, use dark-on-light contrast, and choose error correction level M or Q for most packaging.

Why should the QR redirect use our own domain?

Because it means you can repoint every printed code to a different platform if you change vendors. Codes printed on a vendor's domain would be stranded in the market if you switched, which quietly hands the vendor a permanent negotiating advantage at every renewal.

Want this running for your brand?

Unotag mirrors your channel structure in a sandbox within 48 hours — your SKUs, your slabs, your states.

Related reading