Static vs. dynamic QR codes
Why some QR codes stop working when a subscription lapses, and how to choose a code that will still scan in ten years.
Last reviewed October 14, 2026.
The short answer
- A static QR code contains your link, text or WiFi details directly. It works forever, needs no account, and nobody sits between the person scanning and your website.
- A dynamic QR code contains a short link to a QR company's server, which forwards people to your website. You can change where it goes and count scans, but it only works while that company keeps forwarding, which usually means while you keep paying.
If you'll print the code and don't need to change its destination later, use a static code.
How a dynamic code works
Say you want a code for https://example.com/menu. A dynamic QR service doesn't put that
address in the code. It puts its own short link in, something like https://qr-service.example/x7Kp2,
and records in its database that x7Kp2 should forward to your menu. Every scan goes to the
service first, which logs it and sends the person on.
That gives you two real benefits:
- You can change the destination after printing: point the same code at a new menu without reprinting.
- You get scan statistics: how many scans, when, roughly where, on which phones.
The catch
Your printed code now depends on that company. Many "free" generators make dynamic codes by default and stop forwarding them when a trial ends, then ask for a subscription to switch them back on. If the company shuts down, changes its prices or loses its domain, every code you printed stops working at once. Other downsides:
- Privacy: every scan is logged by a third party, including the scanner's IP address and device.
- Trust: people who check where a code goes see an unfamiliar short link, not your website.
- Speed and reliability: each scan makes an extra hop through someone else's server.
How to tell which kind you have
Scan the code with the QR code scanner (or your phone's camera, which shows the link before opening it). If it shows your own website, it's static. If it shows a short link on another company's domain, it's dynamic, and it depends on that company.
Counting scans with a static code
You don't need a dynamic code to see how many people scanned. Add tracking parameters to your own
link before making the code, for example
https://example.com/menu?utm_source=qr&utm_medium=table-card, and your own website
analytics will count those visits. Use a different utm_medium for each place you put a
code to compare them.
Changing the destination with a static code
Point the code at a page you control and won't move, such as example.com/menu, rather than
at a file or a third-party page. When the menu changes, update the page, not the code. If you ever
move the page, set up a redirect on your own website. That's a dynamic code you own, with no
subscription.
Which should you choose?
- Static for anything printed to last: packaging, signs, business cards, menus, WiFi, contact cards. All the codes on this site are static.
- Dynamic only if you genuinely need to change destinations without control of a website, and you're prepared to pay for as long as the codes are in use.