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

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:

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:

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?