The difference in one sentence
A static QR code stores your content (a link, WiFi login or contact card) directly in its pattern. A dynamic QR code stores a short link to a provider's server, which forwards each scan to your content.

Side by side
| Static | Dynamic | |
|---|---|---|
| Where the content lives | In the code | On the provider's server |
| Cost | Free | Usually a subscription |
| Can it stop working? | No, as long as your page exists | Yes, if the plan or trial ends |
| Change the link after printing | No (make a new code) | Yes |
| Scan statistics | No | Yes |
| Works without internet | WiFi, contact and text codes: yes | Needs the provider's server for every scan |
| Privacy | Nothing is tracked | Every scan passes through a third party |
| Code complexity | Grows with the content | Always short |
When a static code is the right choice
Static codes are the right default for most printed material:
- WiFi cards: the network name and password must be inside the code; dynamic codes can't log phones in to WiFi.
- Business cards and contact details: a vCard code saves the contact directly, even offline.
- Menus, flyers, posters and packaging that link to a page on your own website.
- Wedding invitations, events and one-off campaigns.
- Payments: UPI, Pix and EPC payment codes are static by design.
The trick that makes static codes flexible: point the code at a page you control, such as yourrestaurant.com/menu, and update that page whenever things change. The code keeps working; the content behind it is always current.
When a dynamic code makes sense
Dynamic codes earn their subscription when you genuinely need one of these:
- Scan counts by date, place or device, for example to compare two print ads.
- Changing the destination of thousands of printed items without access to a website.
- A/B tests and campaign switching managed by a marketing team.
If you choose dynamic, read the provider's terms first: what happens to printed codes if you cancel, downgrade or stop paying? Some services deactivate codes when a free trial ends; others keep them running. Ask for that answer in writing.
A simple decision guide
- Do you need scan statistics or to change the destination without a website? Dynamic.
- Is it WiFi, a contact card, a payment or plain text? Static.
- Does it link to a website you control? Static, pointing at a page you can update.
- Is it printed on something expensive or long-lived (signs, packaging, engraving)? Static, unless you have a contract that guarantees the redirect.
Tracking without a dynamic code
You can still measure visits from a static code. Add UTM parameters to your link (for example ?utm_source=qr&utm_medium=poster) and your website analytics will show how many people arrived by scanning. You get visits, not scans, but no third party sits between your customers and your site.
A tagged link looks like this: https://yourcafe.com/menu?utm_source=qr&utm_medium=table-tent&utm_campaign=autumn. Use a different utm_medium for each placement (table tent, window poster, receipt) and you can compare them in Google Analytics or any other analytics tool, the same way a dynamic code would.
Common myths about static codes
- "Static codes expire." They can't. There is no account, no server and no timer. A static code printed today will scan in twenty years, as long as the page or content it contains still makes sense.
- "Static codes can't have a logo or colors." Design has nothing to do with static or dynamic. Logo, colors, dot style and frame are just how the pattern is drawn.
- "Static codes are less secure." The opposite is usually true. A dynamic code can be redirected by anyone who gets into the provider account; a static code can only be changed by printing a new one.
- "Dynamic codes scan better." A dynamic code holds a shorter link, so it has fewer, bigger modules. You get the same benefit from a static code by keeping your link short, for example yoursite.com/menu instead of a long address with tracking parameters.
What a dynamic code really costs
Most dynamic QR services charge a monthly or yearly subscription, and many free trials end with codes being paused. Before you choose, add up the price over the life of the print: a sign that hangs for five years needs five years of subscription. If the plan rises in price or the company closes, every printed code is affected at once. With a static code that points at your own website, the only ongoing cost is the website you probably already have.
Switching from dynamic to static
If you already use dynamic codes and want to leave the subscription, do it in this order: list every code and where it is printed, note the destination of each one, create static replacements that point at those destinations (or at pages on your own site), replace the most-scanned prints first, and cancel only after the old prints are covered. How to replace an expired QR code walks through each step.
Ready to make one? Our free QR code generator creates static codes with your logo, colors and a frame, and tests every design with a real scanner before you download it. If you already have a dynamic code that stopped working, read How to replace an expired QR code.
Frequently asked questions
Are static QR codes really free forever?
Yes. A static code is just a pattern that contains your content. Once you have downloaded it, no service is involved when people scan it.
Can I convert a dynamic QR code to a static one?
Not the printed code itself. Scan it to find the final page it opens, then create a static code with that address and replace the old print.
Which is better for a restaurant menu?
A static code that points to a menu page on your own website. Update the page when the menu changes; the code never needs replacing.
Can I track scans of a static QR code?
Not the scans themselves, but you can count visits. Add UTM parameters to the link and your website analytics will show how many people arrived from each printed code.
Can I tell whether a code is static or dynamic?
Scan it with a QR scanner that shows the content. If it shows your own link, WiFi details or contact card, it is static. If it shows a short link on a QR or link-shortening service, it is dynamic.