Survenix
All articles
QR codes7 min read

Static vs Dynamic QR Codes: Which One Your Menu Needs

Static QR codes bake the destination into the pattern, so changing it means reprinting. Dynamic codes point at a link you control. Here is what that difference costs a restaurant.

Every QR code generator asks you the same question, usually without explaining it: static or dynamic? For a restaurant menu, picking wrong is not a minor inconvenience. It is the difference between changing a price in two minutes and changing it with a print run.

Here is what the two actually are, and what the difference costs.

What a static QR code is

A static QR code stores its data inside the pattern. The URL is encoded directly into the arrangement of black and white squares. When your phone reads it, nothing is looked up — the camera decodes the squares into text, and that text is the address.

This has real advantages:

  • It works forever, with no service behind it. Nothing to expire, nothing to pay for.
  • It cannot break because a company shut down.
  • Generating one is free.

And one disadvantage that outweighs all of it for a menu: the destination is the pattern. Change where you want the code to point and you have generated a different code. The one printed on your tables still goes to the old address.

What a dynamic QR code is

A dynamic QR code encodes a short, permanent link that you control. Scanning it hits that link, which then forwards the guest to wherever the menu currently lives.

The pattern encodes the permanent link. It never changes. What the link resolves to is a setting.

That indirection is the entire point. It buys you:

  • Changing the destination without reprinting. New menu, new layout, seasonal switch — same code.
  • Scan analytics. Because scans pass through a link you own, you can count them. A static code is invisible; you have no idea whether anyone scanned it.
  • A working code during a mistake. Published something wrong? Fix it. The tables do not need to know.

The trade-off is that a dynamic code depends on the service holding the link. That is a real consideration, and we come back to it below.

The difference in practice

StaticDynamic
Destination storedIn the printed patternIn a link you control
Change the menu URLReprint every codeEdit a setting
Scan trackingImpossibleBuilt in
Pattern complexityGrows with URL lengthAlways short and simple
Depends on a serviceNoYes
CostFreeUsually a subscription

That fourth row deserves a note, because it has a physical consequence. A static code encodes your whole URL, so a long address produces a denser pattern with smaller squares. Dense patterns need to be printed larger to scan reliably. A dynamic code always encodes a short link, so the pattern stays simple — and a simple pattern survives being printed small, on a table tent, in dim light, on cheap card.

What this costs a restaurant

Put numbers on it.

A restaurant with 30 tables prints 30 table tents plus a few for the window and the bar. Say the design, print and delivery come to a couple of hundred, and the process takes a week or two from decision to tables.

Now count the year's menu changes: a seasonal switch or two, supplier price rises, a handful of dishes added and retired, maybe a new lunch offering.

With a static code, each of those either triggers a reprint or gets postponed until enough changes pile up to justify one. That postponement is the hidden cost. Your menu is wrong for weeks at a time — and guests trust a screen to be current in a way they never trusted paper.

With a dynamic code, each change is a few minutes. You print once.

The subscription costs money that a free static generator does not. The reprints cost more.

When static is genuinely the right choice

Static codes are not a trap. They are the right tool when the destination will never change:

  • A link to your Google Maps location.
  • A WiFi credential card.
  • A link to your Instagram profile.
  • A one-off code for a single event, thrown away afterwards.

The rule is simple: if the destination is permanent, use static. If it will ever change, use dynamic. A menu will always change.

The dependency question

The honest downside of a dynamic code is that it points at a service. If that service disappears, the printed codes stop working.

Ask three questions of any provider before you print:

  1. Is the link permanent, or is it tied to a plan feature? Some providers issue a new link if you change tiers. That defeats the point.
  2. What happens if you stop paying? Look for a grace period rather than an instant dead link, and for the same code being reactivated when you subscribe again — not a new one.
  3. Is the domain product-controlled and stable? A link on a domain the provider owns and intends to keep is worth more than a clever short domain that may lapse.

A provider that cannot answer these is asking you to print something on their behalf and hope.

What to do next

If you have not printed yet, use a dynamic code. The decision costs you nothing today and saves a print run within the year.

If you have already printed static codes, do not panic and reprint immediately. Point the existing static URL at a page you control — if it goes to your own domain, you can redirect it. If it goes to a free generator's domain, plan the reprint for your next menu redesign and use a dynamic code that time.


Survenix gives every menu one permanent link and a print-ready QR code that never changes, whatever you do to the menu behind it. See how it works or start a 7-day free trial.

Keep reading