Skip to content
← Blog

Static vs dynamic QR codes: what nobody tells you

The difference is not technical sophistication. One holds your data, the other holds a rented redirect. Choose before you print, not after.

Generators present this as a feature comparison, with dynamic as the premium option. It is not a quality difference. It is a difference in who owns the thing you printed.

What each one actually contains

Scan a static QR code and you get your data: https://example.com, or the WiFi credentials, or the phone number. The pattern is the information.

Scan a dynamic QR code and you get a short link on the generator’s domain. Their server looks up where that link should go and forwards the visitor. Your real destination is stored in their database, not in the code.

Everything else follows from that one difference.

Static Dynamic
Where the data lives In the printed pattern On someone else’s server
Change the destination later No Yes
Count scans No Yes
Works without internet Yes, for WiFi and text No
Keeps working if the provider disappears Yes No
Ongoing cost None Subscription
Density for the same URL Higher Lower

The one genuine advantage of dynamic

Editability is real, and dismissing it would be dishonest.

If you print 5,000 flyers pointing at a campaign page, and the campaign moves, a dynamic code saves the reprint. If you need to know how many people scanned the poster in the north entrance versus the south, only a dynamic code can tell you.

Both of those are real problems for real businesses. If you have them, the subscription may be worth it.

The cost nobody puts in the comparison table

Once your code is on something physical, you cannot leave. The provider knows this. Your renewal price is negotiated against the cost of reprinting every menu, sign and card you have distributed.

And when the relationship ends — whether you cancel, forget a card update, or they go out of business — the printed code does not degrade gracefully. It stops. Customers scanning your menu get an error page, and you find out from a customer.

The density argument, briefly

A dynamic code is usually visually simpler, because a short link is fewer characters than a full URL. This is presented as an aesthetic advantage.

It is real but small, and it has a static solution: use a shorter URL. A tidy path on your own domain, without tracking parameters, produces a code nearly as sparse. You get the simplicity without the dependency.

What most people should do

For the overwhelming majority of uses, the destination never changes:

  • WiFi credentials on a table
  • A phone number on a van
  • Contact details on a business card
  • A permanent link like yoursite.com/menu
  • Text, instructions, asset tags

For all of these, dynamic buys you nothing and costs you a permanent dependency.

The hybrid, which is what I would actually recommend

You can have most of the editability without renting anything:

  1. Generate a static code pointing at a URL on your own domainyoursite.com/menu.
  2. Configure that path on your own server to redirect wherever you want.
  3. When the destination changes, change your own redirect.

You now control the address permanently. Nobody can switch it off, there is no subscription, and you can still change where it goes. The only thing you give up is per-scan analytics, which your server logs can approximate anyway.

This is what a dynamic code does — except you own the redirect instead of renting it.

How to check what you have

Scan your own code and read the destination before opening it. If it shows a domain you do not recognise, it is dynamic and you are on someone’s clock. There is more detail in Do QR codes expire?, including what to do if you have already printed one.

Every code on QRHub is static. We do not offer the dynamic option, because offering it would mean running redirect infrastructure forever — and the whole point is that there is nothing here to switch off.