QR code tracking: how to count your scans
Only a dynamic QR code can count scans, because each scan passes through a short link that adds one to the total before redirecting. QRNoExpire Pro shows that total scan count per code and nothing else: no maps, no device charts, no data about the person scanning.
Updated
How QR code scan tracking works
A QR code is just a pattern that stores text. It cannot count anything by itself. Tracking happens on a server, so a code can only be counted if the scan passes through one.
- Dynamic code: the pattern holds a short link, like
qrnoexpire.com/r/abc123. The phone opens it, the server adds one to the count, and then forwards the phone to your page. - Static code: the pattern holds your real link. The phone goes straight there. No QR server sees the scan.
That is why QR Code Generator’s tracking guide says plainly: “You cannot track a Static QR Code” (qr-code-generator.com, read 3 November 2026). As a scan count, that is true. But there is a free way to measure static codes, covered below. For the full difference between the two types, see static vs dynamic QR codes.
Can a static QR code be tracked? The UTM method
You can measure a static code with your own website analytics. Add UTM tags to the link before you make the code:
- Start with your link, for example
example.com/menu. - Add tags:
example.com/menu?utm_source=flyer&utm_medium=qr&utm_campaign=spring. - Make a static code from the tagged link and test it.
- In your analytics, look for visits from that source and campaign.
Use a different utm_source for each place you print, such as flyer, poster or table, to compare them.
One thing to know: UTM tags count visits to your page, not scans. If the page fails to load, or the person has blocked analytics, that scan will not show up. It also only works for links to sites where you can see the analytics.
What QRNoExpire shows you: total scans per code
QRNoExpire Pro gives each dynamic code a total scan count in your dashboard. That is all it shows:
- No maps or locations.
- No device or operating system charts.
- No unique visitor counts.
- No exports.
Many tracking tools focus on detailed reports. We chose to keep it to a single number per code, which answers the most common question: is anyone scanning this? It also means you are not looking at data about the people who scan.
If you cancel Pro, your codes keep redirecting to their last destination and keep counting scans. Only editing locks. Prices are on the pricing page.
When you need full analytics instead
A total count is not enough for everyone. If you need scans by city, by device or by time of day, a full analytics service is a better fit. Bitly’s tracking guide says its free plan “includes basic QR Code creation and scan tracking,” and that more detailed reporting is on paid plans (bitly.com, read 3 November 2026).
You can also combine both methods: a Pro dynamic code for the total, with UTM tags on the destination link for visits in your own analytics.
Reading your numbers
A scan count is useful, but keep its limits in mind:
- One person can scan more than once. A total is not the number of people.
- Tests count too. Your own test scans add to the total, so note how many you made.
- A scan is not a visit. Someone can scan and close the page before it loads.
- Compare like with like. Totals are most useful when you compare two codes over the same period, such as two flyers.
Tracking and the person scanning
If you are on the other side, scanning someone’s code, it helps to check where it goes before you open it. The phone shows the link first. Is it safe to scan QR codes? explains what to look for, and how to scan a QR code covers the basics on iPhone and Android.
Need an editable code to track? See the dynamic QR code generator.