QRFree PRO FREEUnlimited • No Signup • 100% Private
Strategy

Static or dynamic: pick the code you can live with

The square does not know it is “dynamic”. It either contains your URL, or it contains someone else’s redirect. That choice is what you are printing, and it is expensive to undo.

9 October 2026 8 min read Links and redirects

Vendors split QR codes into static and dynamic as if they were two products. Under the scanner they are the same symbol. The difference is what string got encoded, and who is allowed to change what happens next.

Static means the payload is in the ink

A static code stores the destination directly. A website, a block of text, a Wi-Fi network, a vCard. Scan it in a year and you get the same string you typed on the day you exported the SVG. Nothing phones home to a QR platform. There is no account keeping it alive.

That is what you want on packaging with a long shelf life, on a book, on a plaque, on anything you might lose the login for. It is also what you want when the contents are sensitive enough that you would rather not send every scan through a third party. A clinic flyer and a guest Wi-Fi card are different risk calls, but both should be made on purpose.

The limit is obvious once you have reprinted a thousand menus because the seasonal URL changed. You cannot edit a static symbol. You can only reprint it, or have pointed it at something you can edit.

Dynamic means you printed someone else’s domain

A typical “dynamic” code does not contain your menu. It contains a short URL on the vendor’s domain. Their server logs the scan and redirects the phone to wherever you last configured. Change the target in a dashboard, and old print starts opening a new page. That part is genuinely useful.

The catch is in the lease. Stop paying, lose the account, or watch the vendor shut the product down, and the code on the window still resolves to their host. If that host stops redirecting, the poster is a dead end. You do not own the ink’s destination. You rented it.

You also handed them the scan log: time, rough location, device, and the fact that this person was standing in front of your creative. Sometimes that dashboard is why you bought the product. Sometimes it is more tracking than the campaign needs. Say which one it is before the printer’s proof goes out.

The question to ask sales

If we cancel in November, what does a code printed in March do in December? If the answer is anything other than “it still opens your URL”, you are renting the print run.

You can get most of the flexibility without the lease. Encode a short URL on a domain you control.

https://cafe.example/m

The symbol is static. The path /m is a redirect you can point at this month’s menu, then next month’s, then a Christmas set menu, without reprinting the tent cards. When the campaign is over, point it at a sensible evergreen page rather than a 404. The cards in the drawer still do something.

Two details catch teams out.

Forward the query string. If the printed code is https://cafe.example/m?utm_source=table&utm_medium=qr, the redirect has to pass those parameters on. A lazy rule that sends everyone to /menu and drops the query will load the right page and wipe the attribution. In nginx that is the difference between a fixed target and $is_args$args. Check the network panel once. The address bar after the hop should still show the UTMs, or your analytics tag should be receiving them.

Keep the path boring and permanent. /m, /q/window, /go/autumn. Do not redirect from a campaign slug you will want to reuse for a different meaning next year. Document the map in the same sheet as the artwork filenames. Future you will not remember that /q/w2 was the High Street window.

This is also how you keep codes coarse enough to print small. A 20-character URL on your domain beats a vendor URL plus a long path, and it beats a raw landing page with a novel’s worth of parameters. More on that in the print size guide.

When each option is the grown-up choice

SituationSensible defaultWhy
Packaging, books, signage that will sit for yearsStatic URL on your domainNo subscription should be required for the code to resolve
Menu or offer that changes, print that does notStatic code to your own short linkYou can retarget the redirect on Monday
You need a scan log and will not set up analyticsPaid dynamic codeYou are buying the dashboard, and you know the lease
Wi-Fi password or vCardStatic payloadThere is no page to redirect. The data is the code
Several placements, one pageSame short path, different UTM queryOne redirect, separate reporting. See tracking with UTMs

A paid dynamic code is not a scam. It is a convenience with a failure mode nobody puts on the landing page. If the dashboard saves you a day a month and the print is cheap to replace, pay for it with your eyes open. If the code is going on 40,000 jars, do not bet the jars on an invoice.

You do not need their scanner to count visits

A static code that opens your site is measurable with the analytics you already run. Give each placement its own query string, and read source, medium, and the action you cared about (booking, call, add to basket). You will not get a vanity “scans” number that includes people who scanned and bounced before the page painted. You will get sessions that actually arrived. For a marketing report, that is the more honest count.

The campaign guide walks through placement and the offer. The tracking piece covers the GA4 quirk where medium qr falls into Unassigned. Read that before you tell a client the window poster did nothing.

Straight answers

Do static QR codes expire?

No. The symbol stores the payload. It keeps working for as long as that URL, Wi-Fi network, or contact still makes sense. Delete the page and the code is not “expired”. The destination is gone. Those are different problems, and only one of them is fixed by reprinting.

Can I change a static QR code after printing?

You cannot rewrite the modules. Point the code at a short URL you control and change the redirect. If you encoded the final page directly, the only fix is a new code.

Are dynamic QR codes worth paying for?

Pay when you want their scan dashboard and you accept that cancelling can kill the printed codes. For a menu, a poster, or a pack that should still scan in three years, a short link on your own domain is the sturdier buy.

Is a link shortener the same as a dynamic QR code?

Same shape, different landlord. A public shortener can expire, get blocked, or recycle the slug. If the short link is not yours, you have the same lease problem with a less obvious vendor.

Encode a URL you still control next year.

Build a static code in the browser, point it at your short path, and export SVG. No account sits between the print and the destination.

Create your QR code