Static vs Dynamic QR Codes: Which One Do You Actually Need?

Published: 11 September 2026 | Reading time: 6 minutes

Every QR vendor pushes dynamic codes, for the obvious reason that they require an ongoing subscription. That does not make them wrong. It does mean the advice you read is rarely neutral, and the trade-off is more interesting than "dynamic is better".

Start with a fact that halves the decision space: dynamic only exists for codes whose content is a URL. A WiFi code, a vCard or an EPC payment payload has no link to redirect. Those are static by definition. If that is your use case, stop reading and go generate it.

What a static code actually is

The data is written into the pattern itself. Scan it and the reader hands you the literal string that was encoded — the URL, the WiFi credentials, the contact record. There is no server in the middle, nothing to look up, nothing that can be switched off.

That gives static codes three properties worth paying for: they work with no network connection at all, they last as long as the physical object does, and nobody sits between you and the person scanning. It also gives them the one property people complain about: whatever you encoded is what you get, forever.

The counter-argument to "forever" is link rot. The pattern is permanent; the destination is not. A static code pointing at example.com/spring-2024-offer will outlive the page by decades. The failure mode of static codes is not technical, it is organisational — you promised the URL would stay up and eventually someone redesigned the site.

What a dynamic code adds

A dynamic code encodes a short URL, usually on the vendor's domain. The scan hits their server, which responds with a redirect to whatever destination you have configured. Because the mapping lives on a server, you get:

  • Editable destinations. Change the target without reprinting. Genuinely valuable when 5,000 flyers are already in the post.
  • Scan analytics. Counts, timestamps, rough location, device and operating system.
  • Expiry and scheduling. Point the same code at different places over time.
  • A/B testing. Two codes, two destinations, same placement.

The analytics deserve a caveat. A redirect counter counts redirect requests, not people. Link preview fetchers from iMessage, WhatsApp, Slack and Slack's cousins will pre-fetch the URL before anyone looks at it, which inflates counts by a margin that varies wildly — sometimes a few percent, sometimes a third. Treat the numbers as directional, not as a conversion rate.

What the redirect costs you

  • Latency. A scan that used to be one request is now a DNS lookup, a TLS handshake, a redirect, then the real page. On decent 4G that adds roughly 200–500 ms. On a weak connection in a basement car park or a crowded conference hall, it can add more than a second, which is right around where people give up.
  • A new single point of failure. If the shortener is down, or your subscription lapses, or the account gets closed, every code you printed stops working. This is not hypothetical; short-link services shut down regularly and take their customers' print runs with them.
  • Reputation risk you do not control. Shared short domains get abused by other users of the same service, and some get flagged by browsers or blocked by corporate filters. Your code inherits that.
  • Privacy. The redirect operator sees IP address, user agent, timestamp and approximate location for every scan. For a campaign that is the point. On something like a patient information leaflet or an internal HR document, it may be a problem you did not intend to create.
  • Offline is impossible. Dynamic codes require a network by definition. Static data codes do not.

Decision table

Situation Use Why
WiFi credentials Static No URL to redirect; must work with no internet
vCard / business card Static Contact data, not a link. A URL-based card adds a dependency for no gain
EPC payment, invoice Static Fixed amount and IBAN; a redirect in a payment flow is a bad idea
Crypto address Static Redirects in payment paths are an obvious tampering target
Gravestone, plaque, permanent building sign Static The object will outlive every vendor you could pick
Equipment and asset labels read by staff Static Works in basements and warehouses with no signal
Restaurant menu Either Static if the menu URL is stable; dynamic if you swap URLs or want counts
Seasonal promotion, 4–8 weeks Dynamic The destination changes and the run is short; vendor risk is bounded
Large print run with an unproven URL Dynamic Insurance against your own typo. Worth it once.
Conference, event, recruiting drive Dynamic You will want counts, and the code is dead in a month anyway
Campaign with two competing landing pages Dynamic Split testing needs the ability to re-point or to run two codes
Retail packaging with a 2-year shelf life Static Unless you can commit to the vendor for the same two years

The rule that survives most arguments: if the printed object will outlive your relationship with the QR vendor, use static. A flyer has a life of weeks. A headstone has a life of centuries. Most decisions resolve cleanly once you ask which one you are holding.

Where people get this wrong

The most common mistake is paying for dynamic on something permanent: someone puts dynamic codes on engraved signage, pays for three years, then cancels, and the signs quietly become worthless. The reverse is just as common — a static code on 20,000 boxes pointing at a URL marketing retires in nine months.

There is a middle path that gets overlooked. If you control a web server, print a static code pointing at a short path on your own domain — yourbrand.com/menu — and run the redirect yourself. You get editability and your own analytics, no vendor in the middle and no recurring fee. It needs someone who can configure a 301, which for most businesses is an hour of work.

Questions to ask before you depend on a dynamic code

  1. Can I use my own domain for the short links, via CNAME, so the codes survive me leaving the vendor?
  2. What happens to existing codes if I stop paying? Get the answer in writing, not in a marketing page.
  3. Can I export the full list of codes and their destinations at any time?
  4. How long are scan logs retained, and can I export raw data?
  5. Is there an uptime commitment, and is there a status page I can check?
  6. When a code's target is missing or the plan is capped, does the scan 404 or hang?
  7. Is there a monthly scan cap, and what happens when it is hit?

If a vendor answers vaguely to question two, that tells you what you need to know. Codes that stop working when the invoice is disputed are not a feature.

Frequently asked questions

Can I convert a printed static code into a dynamic one?

No. The content is fixed in the pattern. You can only reprint. If you think you might want editability later, decide before the print run — this is exactly the decision this article is about.

Do dynamic QR codes work without internet?

No. The scan requires the redirect server to resolve the destination, so there is no offline path. For a code in a basement, a warehouse or a rural location, that alone settles it.

Can I track a static code?

Only indirectly. Add UTM parameters to the encoded URL and you will see visits in your analytics, including the fact that they came from a scan. You will not get a count of scans that did not result in a visit, which is usually the number you actually want.

Are dynamic codes less secure?

They add an attack surface: whoever controls the redirect can change where the code points, including after it is printed. That applies to the vendor as well as to you. See QR code security risks for how this shows up in practice.

Do shorter URLs make a nicer QR code?

Yes, and this is an underrated side effect. A short link can drop you several versions, which means fewer modules and a code you can print smaller or read from further away. You can get the same benefit from a static code on your own short domain without the subscription. More on this in the sizing guide.

What happens to my dynamic codes if the vendor shuts down?

Unless you are using your own domain with a CNAME you control, they stop resolving. There is no migration path for a short link on someone else's domain. This is the single strongest argument for static on anything long-lived.

Is a dynamic code worth it for a business card?

Usually not. A vCard payload contains no URL to redirect, so "dynamic" would mean replacing your contact card with a link to a landing page — which is worse for the recipient, who now needs a network connection to save your number. Encode the contact directly.

Do redirects affect SEO?

Most shorteners issue a 302 rather than a 301, which passes little or no ranking signal. For a printed code nobody is crawling, this is irrelevant. It only matters if you are also using the same short links in places search engines can reach.