How to Track QR Code Scans (Free, Step by Step)
By Rony · July 23, 2026 · Updated August 11, 2026 · 7 min read
QR codes are everywhere — on packaging, posters, menus and business cards. But a plain QR code is a one-way street: someone scans it, lands on your page, and you never learn a thing about it. If you want to know how many people scanned, where they were, and on what device, you need a trackable QR code. Here’s how to make one for free in about a minute — no app and no code required.
Why track QR code scans?
Tracking turns a QR code from decoration into data. Once you can measure scans, you can answer real questions:
- Is anyone actually scanning the code on my flyer?
- Which city or country is my campaign reaching?
- Do people scan on mobile or desktop, and when?
- Which poster location or product performs best?
That’s the difference between guessing and knowing.
How to track QR code scans, step by step
1. Create a free tracking link
Instead of pointing your QR code straight at your final URL, you point it at a tracking link that records the scan first and then forwards the person on. Sign up free, paste your destination URL (your site, product page, menu — anything), and you’ll get a short link plus a ready-to-print QR code.
2. Download and place the QR code
Download the QR image and put it wherever your audience is: print it on packaging, a poster, a table tent, a sticker, or drop it into a slide. Scanners just use their phone camera — there’s nothing for them to install.
3. Watch scans roll in
Every time someone scans, the visit is logged and the person is redirected to your page without noticing a beat. Open your dashboard to see each scan appear live — location on a map, device, browser and time — and filter or export it all to CSV.
What you can see for each scan
- Location — country, region and city, derived from the scanner’s IP and pinned on a map.
- Device & browser — mobile vs desktop, iOS vs Android, Chrome vs Safari.
- Time and referrer — when it happened and where the scan came from.
- Unique vs repeat — separate first-time scanners from people who scan again, with bots filtered out.
Viewing scan history and location on a live map
Every scan lands in your dashboard the moment it happens, plotted as a pin on an interactive map alongside a running log you can filter by date range or export to CSV. That’s useful two ways: the map gives you an at-a-glance read on where a code is being scanned — a single city, or scattered across a country — while the log underneath gives you the scan-by-scan detail (time, device, browser, referrer) for digging into specifics.
Worth being precise about what that location actually is: it’s a city-level estimate derived from the scanner’s IP address, the same mechanism behind ordinary web analytics — not GPS, and not a street address. On mobile networks in particular, the IP often resolves to the carrier’s gateway rather than the phone’s actual position, so treat the pin as “roughly this city,” not a precise location. Country and region hold up much better than the exact city. Pinpoint accuracy is only ever possible if the person scanning explicitly grants their browser GPS permission — it’s never available silently. For a fuller breakdown of what this kind of tracking can and can’t see, see our IP logger explainer.
Static vs dynamic: only one kind of QR code can be tracked
This trips a lot of people up: a plain (static) QR code cannot be tracked at all, no matter what tool you use afterward. It encodes your final URL directly, so when someone scans it their phone goes straight there — nothing sits in between to log the scan. Only a dynamic QR code, which encodes a short redirect link instead of the destination itself, can be measured, because every scan has to pass through that link on its way to your page. If you’re not sure which kind an existing printed code is, point your camera at it: if the preview shows your final destination, it’s static and untracked; if it shows a short link that then forwards you, it’s dynamic. See static vs dynamic QR codes for the full comparison.
Making sense of the numbers
Once scans start arriving, a few reading habits keep the data honest:
- Unique beats total. Raw scan counts flatter you — one person re-scanning a table tent four times is still one customer. Judge placements on unique scanners.
- Expect a time signature. Real placements have rhythms: a restaurant code spikes at meal times, a conference code spikes during breaks. A flat, steady trickle at 3 a.m. is usually crawlers, not people.
- City-level means city-level. On phone networks the IP often resolves to the carrier’s gateway a city over. Country and region are solid; treat the exact pin as approximate.
- Watch the device split. QR scans should skew heavily mobile — that’s how people scan. A placement showing mostly desktop “scans” is being opened as a pasted link (or by bots), which tells you something different about how it’s spreading.
What counts as a good scan rate depends entirely on placement. A poster in a busy transit spot converting a fraction of a percent of passers-by is normal; a code on a receipt or table tent, where the person is already engaged, can reach double-digit percentages. The useful comparison is never against an industry average — it’s placement A against placement B, this week against last week.
If the code points at your own website
You can also tag the destination URL with UTM parameters so the visits show up attributed inside Google Analytics. That’s complementary, not competing: the tracking link counts the scan itself (even if the page never finishes loading on a train platform), while UTMs tell your site analytics what the visitor did afterwards. Chain them — QR → tracking link → UTM-tagged URL — and you get both halves. When each is worth using on its own is covered in UTM parameters vs tracking links.
Before you print: a 30-second checklist
Tracking can’t rescue a code nobody can scan. Print it at least 2 × 2 cm, keep the white quiet-zone margin on all four sides, use dark modules on a light background, and test-scan the actual proof — at arm’s length, in bad light, at an angle — before the full run. The complete numbers (the 10:1 distance rule, DPI, error correction) are in our print spec guide.
Bonus: change the destination without reprinting
Because the QR encodes your tracking link (not the final URL), you can update where it points at any time. Run a seasonal offer, fix a typo in a URL, or swap the landing page — all on the same printed code. That’s a dynamic QR code, and it’s a big reason trackable codes beat static ones.
Start tracking your QR codes
You don’t need special hardware or a marketing budget — just a link and a QR image. Learn more on our QR code tracker page, or create your first trackable QR code free and watch the first scan land on your map.
Can I track QR code scans for free?
Yes. Create a free tracking link, download its QR code, and every scan is logged in your dashboard — location, device, browser and time — at no cost.
Do people need an app to scan the code?
No. Any modern phone camera scans it. There’s nothing for the person to install, and they’re redirected to your page instantly.
Can I see where my QR code was scanned?
Yes. Each scan is geolocated from the scanner’s IP to a city and pinned on a map. For pinpoint accuracy you can enable optional, consent-based GPS.
Why does a scan show the wrong city?
IP geolocation on mobile networks often resolves to the carrier’s gateway, which can sit in a different city than the phone. Treat city-level data as a regional signal, not a street address — country and region are reliable, the exact city less so on cellular connections.
Can any QR code be tracked, or only certain ones?
Only dynamic QR codes can be tracked. A static code has the destination baked directly into the pattern, so nothing sits between the scan and the page to log it. A dynamic code routes the scan through a short redirect link first, which is what makes it measurable — and lets you change the destination later.
Can I see the exact location of a QR code scan?
Only at city level, from the scanner’s IP address, plotted on a map in your dashboard. That’s standard web analytics, not surveillance — it can’t show a street address or identity. Pinpoint GPS is only available if the person scanning explicitly grants their browser permission.
Try it yourself — free
Create your first tracking link and QR code in under a minute.
Get started free