Skip to content

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:

  1. Start with your link, for example example.com/menu.
  2. Add tags: example.com/menu?utm_source=flyer&utm_medium=qr&utm_campaign=spring.
  3. Make a static code from the tagged link and test it.
  4. 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.

Make a QR code that never expires

QR code generator

What should the code open?
Website details

Paste the full link. If you leave out https://, it is added for you.

Colors, size and logo

Your image stays on your device.

Example QR code

Example. Fill in the form to make yours.

Static code. It never expires.

How to set up a trackable QR code

  1. Choose your method

    For a scan count, make a dynamic code with Pro. For a free option, add UTM tags to the link in a static code.

  2. Make and test the code

    Create the code, scan it with your phone and check it opens the right page.

  3. Check your numbers

    Read the total in your QRNoExpire dashboard, or the visits for your UTM campaign in your own analytics.

Questions people ask

Can you track how many times a QR code is scanned?

Yes, if it is a dynamic code. Each scan passes through a short link, which counts it. QRNoExpire Pro shows that total for each code.

Can static QR codes be tracked?

Not directly, because a static code sends the phone straight to your link. You can add UTM tags to the link and count the visits in your own website analytics.

Can a QR code tell me who scanned it?

QRNoExpire does not show you anything about the person scanning, only a total count. Other services may show more, so check what yours collects.

How do I track QR code scans in Google Analytics?

Add UTM tags to the link before you make the code, for example utm_source=flyer and utm_medium=qr. Visits from the code then show up under that campaign.

Is QR code tracking free?

The UTM method is free with a static code and your own analytics. A scan count on a dynamic code needs QRNoExpire Pro, at $5 a month or $48 a year.

Does scanning a QR code collect my personal data?

A static code sends you straight to the link, with no stop in between. A dynamic code passes through the provider's short link first, so what is collected depends on that provider.