ShibaQR

Static vs Dynamic QR Codes: Which One You Actually Need

A static code stores the data in the image and never changes. A dynamic code stores a redirect you can edit. Here is how to pick, and what the trade really costs.

4 min read

The distinction is simple and it decides almost everything else about the code.

A static QR code holds your data inside the image itself. Scanning it reads the data straight off the paper. Nothing is contacted, nothing is logged, nothing can be changed.

A dynamic QR code holds a short redirect address. Scanning it opens that address, which looks up the real destination and sends the phone on. The image never changes; where it leads can.

What each one can do

Static Dynamic
Change the destination after printing No Yes
Count scans No Yes
See when and where it was scanned No Yes
Works with no internet Yes No
Keeps working if the provider disappears Yes No
Density for a long URL High Low
Cost Free, forever Subscription

When static is the right answer

The data is not a web address. A WiFi code, a vCard, a plain-text label, a phone number — these have to be static. There is nothing to redirect to; the phone acts on the data directly, which is also why they work in airplane mode.

It is permanent and you own the destination. A code on a museum plaque pointing at your own stable URL does not need a middleman.

It will outlive any subscription. A code etched into a product, printed in a book, engraved on a sign. Ten years from now the static code still works. A dynamic code works only as long as somebody keeps paying and the provider keeps existing.

That last point deserves to be said plainly, including by people who sell dynamic codes: a dynamic QR code is a dependency. Choosing one means accepting that the printed artefact stops working if the service stops.

When dynamic earns its money

The destination will change and the print will not. Restaurant menus are the obvious case — the code on the table is printed once, the menu changes weekly. The same goes for event schedules, price lists and seasonal campaigns.

You need to know whether it worked. Static codes are invisible to you. If you printed 5,000 flyers you will never learn whether 4 people or 400 scanned them. Dynamic codes report scan counts, times and rough locations, which is the only way to tell a channel that works from one that does not.

The real URL is long. A campaign link with five tracking parameters produces a dense code that has to be printed large. A dynamic code encodes something around 20 characters, which stays a sparse, forgiving grid at business-card size. Fewer characters means bigger modules, and bigger modules scan.

You made a mistake. Typo in the URL, campaign page moved, product discontinued. With a static code the entire print run is waste. With a dynamic code it is a two-minute edit.

A middle path

If you want changeability without a subscription, point a static QR code at a short, permanent URL on your own domain — yourcompany.com/menu — and redirect that server-side to wherever the menu currently lives. You get the ability to change the destination and you keep full ownership. What you do not get is scan analytics, and you do have to run the redirect yourself.

Picking in one line

If the data is not a URL, static. If the paper will outlive the subscription, static. If the destination will change or you need to measure it, dynamic. Everything else is detail.

Tools used in this guide

Read next

All guides →