Blog

How to Track QR Code Scans (Free, Without Storing IPs)

Published 29 October 2026

To track QR code scans, you need a dynamic QR code. It points to a short redirect link, so every scan passes through a server that can count it. A static QR code cannot be tracked at all, no matter which generator made it.

This guide explains why, how to set up a trackable code for free, what each statistic means, and what is and is not stored about the people who scan.

Why static QR codes cannot be tracked

A static QR code has its data written directly into the pattern. If you encode https://example.com/menu, the phone reads that address from the squares and opens it. Nothing in between records the scan.

Scanning a static code never touches any server of ours, so there is nothing to count. The same is true for any static code from any tool.

The trade-off is that static codes never expire and never depend on a service. They also cannot be edited after printing. For the full comparison, see static vs dynamic QR codes.

How dynamic QR codes track scans

A dynamic QR code does not contain your final destination. It contains a short link on our domain, in this form:

https://generateqr.link/r/<code>

The flow when someone scans it looks like this:

  1. The phone camera reads the short link and opens it.
  2. Our server receives the request and records the scan.
  3. The server redirects the visitor to your real destination.

This takes a moment and the visitor usually does not notice. Because the destination is stored on the server and not in the pattern, you can also change it later without reprinting the code.

Dynamic codes on GenerateQR.link are free, but you need a free account to create and manage them.

Which QR code types can be tracked

Not every type can be dynamic. Here is what the site supports:

Type Dynamic (trackable) Static only
URL Yes
Email Yes
Phone Yes
WhatsApp Yes
SMS Yes
WiFi Yes
Plain text Yes
vCard Yes
UPI Yes

If you want statistics for something that is static only, there is a workaround. For example, instead of a vCard code, you can put your contact details on a web page and make a dynamic URL code that opens it. You lose the direct "add contact" scan, but you gain the numbers.

How to set up a trackable QR code

  1. Create a free account and log in.
  2. Open the QR code generator and choose a dynamic type, such as URL, WhatsApp or Phone.
  3. Enter the destination. For a WhatsApp code, the destination is in the form https://wa.me/<digits with country code>?text=<encoded message>.
  4. Style the code if you like: dot shapes, corner styles, colors, a logo or a frame with text. The generator uses the highest error correction level (H), so a logo in the center stays scannable.
  5. Download as SVG for print or PNG for screens.
  6. Scan it with a real phone before you print anything.

If you only need a basic code and no numbers, create a static QR code for free without an account.

What the statistics show and how to read them

For each account, the dashboard shows these numbers for your dynamic codes:

Statistic What it tells you
Total scans How often your codes were opened overall
Last 7 days Recent activity
Last 30 days The trend over a month
Top country Where most scans come from
Countries The split of scans by country
Devices The type of device that opened the link
Operating systems For example Android or iOS
Browsers Which browser opened the link

Total scans, last 7 days and last 30 days

Treat these as a measure of activity, not of audience size. Compare the last 7 days with the last 30 to see whether interest is growing or fading, and match changes with what you did, such as handing out flyers or posting a poster. Your own test scans may be included, so note how many you made before you judge the first results.

Countries

Location is approximate and works at country level. Use it to check whether the right audience is reaching you. If you hand out flyers in one town and most scans come from another country, check where the flyers actually ended up.

Devices, operating systems and browsers

These help you decide what the destination needs to work well. If almost all scans come from phones, make sure the page is built for a small screen, loads fast and shows its main action without scrolling.

Get cleaner data from your codes

Statistics only help if each number means something. A few habits make that easier:

Privacy: what is and is not stored

The IP address of the person scanning is not stored. The statistics you see are country, device, operating system and browser.

Two more points are worth knowing:

It is good practice to tell people what the code does, especially for sign-ups or payments.

Limits and common mistakes

Expecting tracking from a static code. If you already printed a static code, it will not suddenly produce statistics. You need to create a dynamic code and reprint.

Pausing or deleting a code that is still in circulation. A paused or deleted dynamic code shows a "not active" page when scanned. Before you pause one, make sure the printed material is gone or no longer needed.

Forgetting the dependency. A dynamic code relies on the redirect service. If the service were unreachable, the code would fail, while a static code keeps working. For something that must work forever with no dependency, such as a WiFi code on a wall, use a static code. The WiFi guest guide covers that case.

Poor print quality. No statistics will appear if people cannot scan the code. Keep dark code on a light background, avoid inverted colors, leave a clear margin of about 4 modules around the code and print it large enough for the distance. About 2 x 2 cm is a common minimum for close scanning, and bigger for distance. SVG is best for print at any size.

Reading too much into small numbers. Ten scans in a week will not tell you much. Collect data over a reasonable time before changing your design or your channel.

Using tracking for payments. UPI codes are static only and the site only creates the code. It does not process payments, so scans of those codes are not counted. See the UPI payment QR guide for details.

Start tracking your scans

Pick the one place where you most want to know whether your QR code works, such as a flyer, a poster or a business card. Make a dynamic code for it with the QR code generator, test it on a phone and check the numbers after a week. If you only need a simple link without statistics, a static code is enough and needs no account.

Make your own QR codeFree, styled and ready to print. Choose static, or a dynamic QR code you can edit later and track with scan statistics.Open the generator

Frequently asked questions

Can I track a QR code I already printed as static?

No. The destination is fixed inside the pattern and nothing records scans. You would need to create a dynamic code and replace the printed one.

Do I need to pay to see QR code scan statistics?

Dynamic QR codes and their scan statistics on GenerateQR.link are free. You only need a free account to create and manage them.

Can I track WiFi, vCard or UPI QR codes?

Not directly, because those types are static only. If you need numbers, send people to a web page through a dynamic URL code instead.

Does the tracking store the scanner's IP address?

No, the IP address of the person scanning is not stored. You see statistics such as country, device, operating system and browser.

Why do my scan numbers look higher than expected?

Your own test scans may be counted, so note how many you made before judging the first results.

Keep reading