Real QR Generator
← Back to blog

How to Track QR Code Scans

September 11, 2026

You print a QR code on a flyer, a menu, a product label. A week later someone asks “did people actually scan it?” and you have nothing — no count, no timing, not even confirmation it worked once. That’s not a limitation of QR codes in general; it’s a limitation of the kind of QR code you made.

Why most QR codes can’t be tracked at all

A QR code only reports back if scanning it routes through a server first. See our static vs dynamic guide for the full breakdown, but the short version:

  • A static code encodes your destination directly into the pattern. A phone camera reads it and goes straight there — no server involved, so nothing gets logged. This is what our free, no-account homepage generator makes.
  • A dynamic code encodes a short redirect link instead (something like realqrgenerator.com/r/abc123). Scanning it hits that link first, which looks up the real destination and forwards the phone there — and that lookup is the moment a scan can be counted.

If you’ve ever generated a QR code from a free tool with no account and no dashboard, it was almost certainly static, and there was never a way to know how many times it got scanned. That’s not a bug in the tool — it’s just not possible without the redirect step.

What you actually see once a code is trackable

Once a code is dynamic, each scan is logged with a timestamp, the referrer (if there was one), and rough network location. That rolls up into:

  • Total scans, all-time
  • Scans by day, so you can see a trend line, not just a running total
  • Week-over-week change — is this week up or down against the last one
  • Average scans per day and the single peak day
  • Top referrers — which sites or apps sent people to the code

One honest caveat: most scans will show up as “Direct.” A phone’s camera app doesn’t send a referrer header the way a browser link click does, so referrer data is mainly useful for codes that get scanned from something — embedded in a webpage, shared in a social post — not codes printed on paper. Don’t expect it to tell you “37 people scanned this specific poster vs. that one” unless each poster has its own code (which it should — see below).

Setting it up

  1. Create a free account and go to your dashboard instead of the homepage generator — codes made here are dynamic by default.
  2. Pick your QR type (URL, vCard, WiFi, etc.) and save it.
  3. Print or share the code. Nothing about how it looks changes.
  4. Come back to the dashboard any time to see scan counts and trends for that specific code.

The free plan includes 3 dynamic codes with full analytics, no card required — enough to test this on one campaign, one menu, or one product line before deciding you need more. Paid plans start at 50 dynamic codes if you’re running several at once.

Make each printed piece its own code

If you’re putting QR codes on more than one thing — a poster in two locations, a flyer and a table tent, three different product SKUs — give each one its own dynamic code instead of reusing one link everywhere. It costs nothing extra and it’s the only way to answer “which one actually worked,” since a shared code can’t tell them apart no matter how good the analytics are.

What scan tracking won’t tell you

It counts scans, not conversions. Someone scanning your menu QR code and someone scanning it and then ordering look identical in this data — you’d need to track that separately on the destination page itself (a UTM parameter and your site analytics, for instance). Scan tracking answers “did anyone engage with this physical object,” not “did it work.” Still, going from zero information to a trend line is usually the bigger unlock.