Dynamic vs Static QR Codes: What Is the Difference?
By the CirculateQR team · Updated · 8 min read
Short answer
A static QR code stores its content, such as a web address or a WiFi password, directly in the printed pattern, so it never expires but can never be changed or tracked. A dynamic QR code stores a short link to a redirect service instead. The service sends each scan on to a destination you can change at any time, counts the scan, and can route people to different pages. Use static for content that will never change, and dynamic for anything printed that you may need to update or measure.
On this page
- What is a static QR code?
- What is a dynamic QR code?
- How does editing a dynamic code after printing actually work?
- What are the trade-offs between static and dynamic codes?
- Which should you use: static or dynamic?
- How can you tell whether a QR code is static or dynamic?
- How does CirculateQR handle static and dynamic codes?
- Frequently asked questions
Key facts
- A static code’s content is fixed the moment it is generated. Changing it means printing a new code.
- A dynamic code contains a short link (for example https://www.circulateqr.com/go/ab12Cd). The real destination is stored in an account you can edit.
- Phones cannot tell them apart. Both are ordinary QR codes under the ISO/IEC 18004 standard.
- A dynamic code only works while the redirect service does, so the provider’s terms decide how long it lasts.
- Short links make simpler codes: a 37-character link fits a 29 × 29 module code at error correction level M, while a 116-character URL with tracking tags needs 45 × 45.
- WiFi, contact card, SMS, email and calendar codes are normally static, because the phone acts on the content itself.
What is a static QR code?
A static QR code is the plain version. Whatever you type into the generator, whether a URL, a line of text, WiFi credentials or a contact card, is converted into the black and white pattern itself. A phone that scans it reads that content straight out of the image. No server is involved.
That has three consequences:
- It never expires. The pattern will decode to the same content in 20 years, as long as the print survives.
- It cannot be edited. If the URL inside it changes or breaks, the only fix is a new code.
- It cannot be tracked by the code maker. Nobody is in the middle to count scans. If the code points to your own website, your web analytics will see the visits, but not that they came from the code unless you add tracking tags to the URL.
Static is the right choice for content the phone acts on directly. A WiFi QR code has to be static, because the phone needs the network name and password inside the code to join the network. The same goes for a vCard contact code, a pre-filled SMS or email, and a calendar event.
What is a dynamic QR code?
A dynamic QR code contains a short web address that belongs to a QR code service, such as https://www.circulateqr.com/go/ab12Cd. The destination you actually care about, say your dinner menu, is stored in the service’s database against that short link. When someone scans the code, their phone opens the short link, the service looks up the current destination and forwards the browser there, usually in a fraction of a second.
Because every scan passes through that server, a dynamic code can do things a static one cannot:
- Change destination after printing. Edit the link in your account; the printed code stays the same.
- Count scans. The service records when, roughly where and on what kind of device each scan happened. See how QR scan tracking works.
- Route scans. Send iPhone users to the App Store and Android users to Google Play, or show a breakfast menu before 11am. See routing by device, location, time or language.
- Be paused or switched off. Useful when a promotion ends or a printed code is being misused.
How does editing a dynamic code after printing actually work?
The printed pattern never changes. What changes is a single row in the service’s database. Here is the sequence for one scan:
- The phone’s camera decodes the pattern and finds the short link.
- The phone opens the short link in its browser.
- The QR service receives the request, looks up the code by its ID and logs the scan.
- If the code has routing rules, the service checks them (device, time, language and so on).
- The service replies with an HTTP redirect, and the browser loads the destination.
When you edit the destination, step 5 starts pointing somewhere else for every scan that follows. There is nothing to update on the printed material and nothing for the scanner to install. The step-by-step version, including what to do if your code turns out to be static, is in how to change where a QR code goes after printing.
What are the trade-offs between static and dynamic codes?
| Static | Dynamic | |
|---|---|---|
| Edit after printing | No | Yes |
| Scan counts and analytics | No (only your own site’s analytics) | Yes |
| Routing and A/B tests | No | Yes, depending on the provider |
| Expiry | Never | Lasts as long as the service and your plan do |
| Depends on a third party | No | Yes, the redirect service |
| Pattern density | Grows with the content | Small and constant (short link) |
| Content types | Anything: URL, WiFi, vCard, text, SMS | Web links and hosted pages |
| Typical cost | Free | Often part of a paid plan |
The density point is easy to overlook. A QR code gets more modules (the small squares) as it holds more characters. A 37-character short link encodes as a version 3 code, 29 × 29 modules, at the common error correction level M. A 116-character campaign URL with UTM tags needs version 7, 45 × 45 modules. Printed at the same size, the denser code has smaller modules and is harder to scan from a distance or on a cheap phone. The size guide shows how that translates into centimeters.
The dependency point matters just as much. A dynamic code is a promise from the provider to keep forwarding your link. If the account lapses, the free trial ends, or the company shuts down, the printed codes stop working. Read do QR codes expire? before you print thousands of anything.
Which should you use: static or dynamic?
A quick way to decide is to ask what happens if the destination changes after printing.
- Use static for WiFi access, contact cards, a fixed piece of text, or a link to a page you control and are confident will stay put, such as your homepage.
- Use dynamic for menus, flyers, posters, packaging, signage, direct mail and anything else that is expensive to reprint or that you want to measure.
- Use dynamic when you want different people to land in different places, for example an app download code that should open the right app store.
A worked example: a café prints 40 table tents. With a static code pointing at a PDF of the spring menu, a price change in June means 40 new tents. With a dynamic code, the owner uploads the summer menu, changes the destination once, and the same tents keep working. The scan counts also show whether the tents get used at all, which a static code cannot tell you.
How can you tell whether a QR code is static or dynamic?
Point your phone’s camera at the code and read the link preview before you tap it:
- If the preview shows the final website, it is almost certainly static (or it points at a domain whose owner can redirect it).
- If it shows a short link on a QR service’s domain, it is dynamic, and whoever holds that account controls where it goes.
- If the phone offers to join a network, add a contact, or write a text message, it is static.
If you inherited codes from an agency or a former employee, find out which account the short links belong to before that account is closed.
How does CirculateQR handle static and dynamic codes?
In CirculateQR, WiFi, calendar, SMS, email, WhatsApp and direct contact card codes are always static. Link codes made in the Studio are dynamic by default, and hosted pages such as menus, event pages, forms and loyalty cards are always dynamic. Dynamic codes use a short link on circulateqr.com/go/, and you change the destination from the code’s page in the dashboard; the printed code stays the same.
The free plan includes 10 QR credits a month; up to 5 dynamic codes live at once, each live 14 days unless upgraded or unlocked for $5; unlimited static codes. A paused code comes back when you upgrade or pay the one-time $5 to keep that code permanently. Paid plans keep dynamic codes live while you are subscribed. The details are on the pricing page, and you can try the free single-purpose generators at /qr-code-generator.
Frequently asked questions
Can I convert a static QR code into a dynamic one?
No. The content is part of the printed pattern, so a static code will always decode to the same thing. If the static code contains a URL on a domain you control, you can redirect that URL on your web server, which gives you the same effect. Otherwise you need to print a new, dynamic code.
Do dynamic QR codes scan more slowly?
The scan itself is no slower; often it is faster, because a short link makes a less dense pattern. Opening the page adds one redirect, which typically takes a fraction of a second on a mobile connection.
Can a dynamic QR code hold WiFi details or a contact card?
Not in a way the phone can act on directly. A dynamic code always opens a web page, so it can show a contact card page or the WiFi password on screen, but joining a network automatically requires a static WiFi code with the credentials inside it.
Are dynamic QR codes free?
Some providers include a few dynamic codes on a free plan, usually with limits on how long they stay active or how many scans they get. Check the expiry terms before printing. On CirculateQR’s free plan, dynamic codes stay live for 14 days after publishing unless you upgrade or unlock them for a one-time $5.
Is a dynamic QR code less secure than a static one?
Not inherently, but it adds a party you have to trust: whoever controls the redirect account can change where the code goes. Protect that account with a strong password, and choose a provider you expect to be around for the life of your printed material.
Last updated . Written by the CirculateQR team. Spotted something wrong or out of date? Email support@circulateqr.com.
Make a dynamic QR code you can edit later
Create a code, print it, and change where it points whenever you need to. Static codes are free and unlimited.
Related guides
- Do QR Codes Expire? Static vs Dynamic, ExplainedDo QR codes expire?
- How to Change Where a QR Code Goes After PrintingCan I change where a QR code goes after it has been printed?
- How to Track QR Code Scans, and What Analytics MissHow do I track how many people scan my QR code?
- How to Choose a QR Code Generator: 9 CriteriaWhich QR code generator should I use?