Static against dynamic QR codes

There are two kinds of QR code in practice, and the difference has nothing to do with design or size. It is where the destination lives: inside the pattern, or on someone else server.

Make a static code

No account, no expiry, yours

Editorial teamLast reviewed: 29 October 2026Editorial standards

Short answer

A static code holds the data itself, prints once and never expires, and cannot be changed. A dynamic code holds a short address that redirects, so the destination can be edited, and the code stops working if the service stops. Decide by asking whether the destination must change after printing.

Most comparisons of the two formats are written by someone selling the dynamic one, which is why they read like a feature list with a conclusion attached. This page is about the trade, not the winner.

The trade is simple to state: editability is bought with dependency. Whether that is a good deal depends entirely on what you print and how long it has to last.

Where the data lives

In a static code the payload is the destination: a URL, a phone number, a block of text. The pattern is the data. Nothing is called at scan time, no server needs to be awake, no company needs to exist. If the destination page moves, the code is dead, and the only fix is a new print run.

In a dynamic code the payload is a short address belonging to a service. The service looks up where that address should send the reader today. Change the entry, and every printed code follows within minutes. Stop paying, or the service closes, and every printed code becomes a dead end at the same moment.

  • Static: data inside, no service, no expiry, no edit
  • Dynamic: address inside, service required, editable, expires with the service
  • Neither is damaged by time on its own, only by the destination or the service

What each one costs over three years

A static code costs whatever the print run costs. Three years later it costs nothing, and it still works. That is the whole economic story.

A dynamic code costs a subscription for as long as the printed material is in use, plus the print run. If the material lasts three years, the subscription does too. Where that is worth it: a code that must survive a change of destination, and material that is expensive to reprint, such as signage, vehicle wraps or product packaging.

The question that decides it

Ask whether the destination has to change while the printed item is still in use. Not whether it might change, but whether you already know it will.

A menu whose prices change quarterly, a campaign URL that rotates, a documentation link that moves with a product version: yes, and a dynamic code is the right tool. A Wi-Fi password, a contact card, a location, a permanent page: no, and a dynamic code adds dependency for nothing.

What dynamic codes are genuinely good at

Three things, and they are real. Editing after printing, which is the main one. Counting scans, which requires a server by definition. And routing, meaning one printed code that sends different readers to different destinations by country, language or device.

The first three are useful for campaigns and operations. They are irrelevant for a label on a machine or a password on a router, which is why the honest answer for a large share of printed codes is "static, and stop overthinking it".

What both share, and what neither fixes

Both are only as good as the destination. A code that opens a page nobody wants to read fails in either format. Both depend on print quality: contrast, size, quiet zone and material decide whether the scan happens at all.

Neither solves a wrong address. A typo in a static code prints the typo. A wrong entry in a dynamic code sends everyone to the wrong page until someone notices. The test before printing is not optional in either model.

A practical way to decide

Write down the destination, the expected lifetime of the printed item, and whether you already know the destination will change. If the answer to the third is no, print a static code and spend the subscription money on a better print material, which will matter more.

If the answer is yes, use a dynamic code and treat the subscription as part of the print cost, not as an optional extra that can be cancelled later.

Questions about the two formats

Can a static code be edited later?

No. The destination is part of the pattern. Editing means a new code and a new print run.

Do dynamic codes stop working?

They stop when the service behind them stops, which can be a cancelled subscription, a closed business or a changed pricing model.

Are dynamic codes better quality?

No. Both are the same QR standard. What differs is what the pattern contains, not how well it prints.

Can I count scans without a service?

No. Counting requires something between the code and the destination, and that something is a server. A static code cannot report anything.

Which is cheaper overall?

Static, unless you would otherwise have to reprint. One reprint of signage or packaging usually costs more than years of a small subscription.