Static vs Dynamic QR Code: Differences and How to Choose
A static QR code stores your data directly in the pattern, so it never expires but can't be changed or tracked. A dynamic QR code stores a short link that redirects to your destination, so you can edit the destination later and see scan statistics. On GenerateQR.link, dynamic codes are free, you just need a free account.
The rest of this guide shows what that means in practice, so you can pick the right type before you print anything.
Static vs dynamic QR code at a glance
| Static QR code | Dynamic QR code | |
|---|---|---|
| What the pattern contains | The data itself (URL, text, WiFi login, etc.) | A short link (https://generateqr.link/r/<code>) that redirects to the destination |
| Change the destination later | No | Yes, without reprinting |
| Scan statistics | No | Yes |
| Depends on a service to work | No | Yes |
| Expires | Never | Only if paused or deleted |
| Account needed on GenerateQR.link | No | Yes, free |
| Available types | URL, text, WiFi, email, phone, SMS, WhatsApp, vCard and more | URL, Email, Phone, WhatsApp, SMS |
The table covers the whole decision. The sections below explain the reasoning behind each row.
How a static QR code works
With a static code, the content is encoded straight into the black and white pattern. If you encode https://example.com/menu, the phone reads that address from the pattern and opens it. Nothing in between.
That has three consequences:
- It never expires. There is no account, subscription or server involved when someone scans it.
- It can't be edited. If the address changes, the pattern is wrong and you need a new code.
- It can't be tracked. Scanning never touches any server of ours, so there is nothing to count.
On GenerateQR.link, static codes need no account, and the data is generated in your browser and not sent to our servers.
Some content only makes sense as static. A WiFi code, for example, holds text like WIFI:T:WPA;S:<network name>;P:<password>;; that the phone reads directly. A contact card is a text block that starts with BEGIN:VCARD and ends with END:VCARD. Plain text is the same. WiFi, plain text and vCard are static only here. You can create them with the WiFi QR code generator and the vCard QR code generator.
How a dynamic QR code works
A dynamic code does not contain your destination. It contains a short link on generateqr.link, in the form https://generateqr.link/r/<code>. When someone scans it, the phone opens that short link, which redirects to the destination you chose.
Because the redirect lives on the service and not in the printed pattern, you can:
- Change the destination at any time. The printed code stays the same.
- See scan statistics: total scans, scans per day, country, city, device type, operating system, browser and referring site. The IP address of the person scanning is not stored.
- Pause or delete the code. After that, scanning it shows a "not active" page.
The dynamic types available are URL, Email, Phone, WhatsApp and SMS. You create them in the main generator after signing in with a free account.
The trade-offs: tracking, editing and dependency
Tracking
Only dynamic codes give you numbers. If you want to know whether the poster at the entrance gets more scans than the flyer, or which city your scans come from, you need dynamic. A static code gives you no data at all, and no workaround makes it do so.
If you don't need those numbers, tracking is not a reason to choose dynamic.
Editing
Editing matters when the destination might change after printing. Think of a promo page that ends, a menu link that moves to a new website, or a WhatsApp number that changes. With a dynamic code you update the destination. With a static code you reprint, and everything already distributed becomes dead weight.
Dependency on a service
This is the real cost of dynamic codes. They work only as long as the redirect service works and the code is still active. If the service were unreachable, a dynamic code would fail while a static one keeps working. If you pause or delete a dynamic code, it shows a "not active" page.
So a dynamic code is a good fit when you will keep an eye on it. It is a poor fit for something you print once and forget for years, unless you are comfortable relying on the service for that whole time.
When each type makes sense
Choose static when:
- You share WiFi access at a cafe, rental or office. The login rarely changes, and the code should work without the internet service of a third party.
- You put a contact card on a business card. A static vCard works with no dependency.
- You print a code on something permanent, like packaging, a product label or a sign, and the destination is stable.
- You encode plain text, such as a serial number or short instruction.
- You want zero account and zero dependency.
Choose dynamic when:
- You print flyers, posters, menus or event materials and the destination page might change.
- You want to compare scans between locations or campaigns.
- You run a promotion and plan to redirect the code to a different page when it ends.
- You want a WhatsApp, phone, email or SMS code you can update later. See the WhatsApp QR code generator, phone QR code generator, email QR code generator and SMS QR code generator for the formats behind each.
A quick example: a restaurant prints table cards linking to the menu. If the menu URL ever changes, a dynamic code gets updated in a minute. A static code means reprinting every card.
Another example: a landlord puts a WiFi code in a rental flat. Static is the right choice, because WiFi codes can't be dynamic, and the code keeps working with no account or service involved.
How to choose: a short checklist
Answer these in order:
- Is the content WiFi, plain text or a vCard? Use static. Dynamic isn't available for these.
- Might the destination change after printing? Use dynamic.
- Do you need scan statistics? Use dynamic.
- Will the code live for years with nobody checking it? Lean static, as long as the destination is stable.
- None of the above? Static is the simpler choice.
If you answer yes to question 2 or 3, the free account is worth it. If you answer no to both, you can skip it.
Common mistakes
- Using a static code for something that will change. The fix is to use dynamic from the start. A printed static code can't be repaired, only replaced.
- Using a dynamic code and then deleting it. A deleted code shows a "not active" page. Pause or edit instead, and keep codes active as long as the print is in circulation.
- Skipping the test. Scan every code with a real phone before printing, whichever type you choose. For dynamic codes, also check that the redirect lands on the right page.
- Poor contrast or no margin. Use dark code on a light background, keep a clear empty margin around the code (about 4 modules wide), and avoid inverted light-on-dark codes.
- Printing too small. A common rule of thumb is about 2 x 2 cm as a minimum for close scanning, and bigger for distance.
- Wrong file format. Use SVG for print at any size, and PNG for screens and small prints.
The type you choose has no effect on styling. Both static and dynamic codes can use dot shapes, corner styles, custom colors, a logo in the center and a frame with text. The generator uses the highest error correction level (H, about 30% of the code can be damaged or covered), which helps logos and styling stay scannable. Always test after styling.
Pick your type and create the code
If you are unsure, start with the question about change: will you ever want to edit the destination or see who scans? If yes, create a dynamic code. If not, create a static one and move on.
Both are free in the QR code generator. Static codes need no account. For dynamic codes, create a free account first, then choose URL, Email, Phone, WhatsApp or SMS.
Frequently asked questions
Can I turn a static QR code into a dynamic one later?
No. The pattern of a static code holds the data itself, so it can't be edited or redirected. You would need to create a dynamic code and replace the printed one.
Are dynamic QR codes really free on GenerateQR.link?
Yes. Dynamic codes are free, and the only requirement is a free account. Static codes need no account at all.
Do dynamic QR codes scan slower than static ones?
Scanning works the same way, since the phone just reads the pattern. The difference is the redirect through the short link, so test your code on a real phone before printing.
What happens if I delete a dynamic QR code?
Anyone who scans it will see a "not active" page. Pausing has the same effect, so only pause or delete codes you no longer need in circulation.
Which QR code types can be dynamic?
URL, Email, Phone, WhatsApp and SMS. WiFi, plain text and vCard codes are static only.