Free Dynamic QR Code Generator with Scan Tracking
A free dynamic QR code lets you change where the code points after it is printed, and shows you how many people scanned it. On GenerateQR.link, dynamic codes and their scan statistics are free. You only need a free account. This guide explains what that means, which code types can be dynamic, how to create one and what you should know before you print it.
What a dynamic QR code is
A dynamic QR code contains a short link on generateqr.link, in the form https://generateqr.link/r/<code>. When someone scans it, their phone opens that short link, which redirects to your real destination. Because the redirect sits in the middle, you can change the destination later without reprinting the code, and you can see scan statistics.
A static code, by contrast, has the data written directly into the pattern, so it never expires but cannot be changed or tracked. For the full side-by-side explanation, read static vs dynamic QR codes. The rest of this article focuses on using the dynamic option.
What is actually free
Here is the plain version of what you get at no cost:
- The QR code generator itself, which works in the browser.
- Static QR codes, with no account needed.
- Dynamic QR codes, with a free account.
- Scan statistics for your dynamic codes, with the same free account.
- Styling: dot shapes, corner styles, custom colors, a center logo, a frame with text, and PNG or SVG download.
The only requirement for dynamic codes and tracking is that you sign up for a free account. That is the whole condition.
Which types can be dynamic
Five types can be dynamic:
| Type | What it opens after the scan |
|---|---|
| URL | A web page |
| A new email to your address, with optional subject and body | |
| Phone | The dialer with your number |
| A WhatsApp chat with your number, with optional first message | |
| SMS | A text message to your number, with optional text |
Some types are static only: WiFi, plain text, vCard and UPI. That makes sense for what they do. A WiFi code carries the network name and password inside the pattern, and a vCard carries the whole contact card. You can still create them in the generator, and they never depend on our redirect.
How to create a dynamic QR code, step by step
The exact labels in the interface may change, so follow the logic rather than the wording.
- Open the generator. Go to the main generator and pick the type: URL, Email, Phone, WhatsApp or SMS.
- Enter the details. For a URL, paste the full address including
https://. For a phone number, include the country code. For WhatsApp, use digits only with the country code. WhatsApp links generally follow the formathttps://wa.me/<digits>?text=<encoded>. - Make it dynamic. Dynamic codes need a free account. Follow the on-screen steps.
- Style it. Pick a dot shape and corner style, set your colors, add a logo if you want one, and add a frame with a short call to action such as "Scan for the menu".
- Download it. Use SVG for print at any size. PNG is fine for screens and small prints.
- Test it with a real phone. Scan the printed or on-screen version before you send anything to a printer.
Styling has limits that matter. Keep a dark code on a light background, leave an empty margin around the code (about 4 modules wide), and avoid inverted light-on-dark codes. The generator uses the highest error correction level (H), which allows about 30% of the code to be damaged or covered. That is why a logo in the center still scans, but it also makes the pattern denser, so do not make the logo large.
What the dashboard shows
For each dynamic code, your dashboard shows total scans, scans in the last 7 days, scans in the last 30 days, the top country, and breakdowns by country, device, operating system and browser. The IP address of the person scanning is not stored.
For ideas on how to use these numbers, see how to track QR code scans.
Changing the destination without reprinting
This is the main reason to choose dynamic. The printed pattern points to the short link, and the short link points wherever you tell it to. When the destination changes, you update it in your dashboard and the same printed code opens the new place.
Examples where this helps:
- A menu or price list. You print the code on table cards, and later move the menu to a new page.
- A promotion. A flyer code points to this month's offer, then to next month's.
- A WhatsApp number. A shop changes the number that handles orders. The signs stay the same.
- A broken link. You find a typo in a URL after printing. With a static code you would reprint. With a dynamic one you fix the destination.
The destination can change, but the code you printed should keep serving the same purpose. A code on a menu card that suddenly opens something unrelated confuses people.
Pausing or deleting a code
You can pause or delete a dynamic code. After that, anyone who scans it sees a "not active" page instead of your destination.
This is useful when a campaign ends, an event is over or you pulled a product. It also means you should not delete a code that is still printed somewhere you cannot reach, such as on packaging that is still in shops. Pause only when you are sure the printed copies should stop working.
The honest trade-off
Dynamic codes depend on the redirect service. Every scan goes through generateqr.link first. If that service were unreachable, a dynamic code would fail to open, while a static code keeps working because everything it needs is inside the pattern. A dynamic code also stops working if you pause or delete it.
So choose based on the job:
- Use dynamic when you want scan statistics, or when the destination might change after printing: menus, flyers, posters, packaging, event signs, business cards that point to a page.
- Use static when the information is fixed and must keep working with no dependence on anything: a WiFi login, a contact card, a UPI payment code, a plain text note, or a URL you are sure will never change.
Static codes with self-contained data, such as a WiFi login, plain text or a vCard, do not need the internet to be read. A static URL code still needs internet to open the page, but it does not depend on our redirect. Static codes also keep working long after you stop managing your account.
Common mistakes and how to fix them
- Printing before testing. Scan the final file with a real phone, in the lighting where it will be used.
- Too small a print. About 2 x 2 cm is a common rule of thumb for close scanning. Go bigger for anything scanned from a distance.
- Low contrast colors. Use a dark code on a light background. Pastel dots on white often fail.
- A large logo. Even with high error correction, a logo that covers too much can stop the scan. Keep it small and retest.
- Linking to a page that is hard on mobile. People usually scan with a phone, so open your destination on one before you print.
- Using dynamic for a WiFi or vCard code. Those types are static only.
Get started
Open the free QR code generator, choose URL, Email, Phone, WhatsApp or SMS, and create your code as dynamic with a free account. If you just want a quick fixed code without an account, the static option works in the browser right away, and our guide to creating a QR code for free walks through it.
Frequently asked questions
Do I need an account to make a dynamic QR code?
Yes, a free account is required for dynamic codes and their scan statistics. Static codes need no account.
Can I make a WiFi or vCard QR code dynamic?
No. WiFi, plain text, vCard and UPI codes are static only, because their data lives inside the pattern. Dynamic codes are available for URL, Email, Phone, WhatsApp and SMS.
What happens if I delete a dynamic code that is already printed?
Anyone who scans it will see a "not active" page. Pausing does the same, so only pause or delete when the printed copies should stop working.
Should I use a dynamic code if I do not need tracking?
Use it if the destination might change after printing. If the information is fixed and must work without depending on any service, a static code is the safer choice.