Skip to content
Fundamentals

How to Track QR Code Scans Without Expensive Software

Codexengr, QR Systems Engineer
Published 2026-10-22 (Updated 2026-10-05)
5 min read
Peer Reviewed & Fact Checked

You cannot improve a placement you cannot measure

A QR code on a poster, a package, and a table tent may all point to the same page, but they do not perform the same. Without tracking, every scan looks identical and the budget keeps flowing to placements that never earned it. The good news is that useful tracking does not require a paid platform. A static code plus a tagged link gives you per-placement numbers in the analytics you already have. This guide shows the three practical methods, what each one can and cannot tell you, and how to read the results without fooling yourself.

Build a trackable QR link →

Setting up scan tracking with tagged links

The tagged-link method works with any static code and any ordinary website analytics. It takes ten minutes per placement.

- Give every placement its own URL Start from the same destination page, then add tracking parameters for each location: one version for the window poster, one for the counter card, one for the packaging. The page is identical; the tags differ. - Build the tagged URLs carefully Use a consistent naming scheme for source, medium, and campaign, such as source=window-poster, medium=qr, campaign=spring-menu. Write the scheme down, because a tag typed two ways becomes two placements in your reports. - Encode each tagged URL in its own code Generate a separate static code per placement and label your files clearly. The codes look identical, so the file name and a note on the printed piece are the only record of which is which. - Read scans as sessions in analytics Each tagged arrival is a scan that led somewhere. Compare placements by arrivals, then by what those visitors did next: time on page, clicks, orders, or sign-ups. - Review monthly and move codes Once a month, rank placements by results, not by scans alone. Move or remove the bottom performers and give their budget to the placements that produce actions.

Reading scan numbers honestly

Scan counts flatter easily. These habits keep the numbers tied to reality.

- Judge a placement by completed actions per scan, not raw scans. A busy corridor produces scans; a table card produces orders. - Compare like with like: same offer, same season, similar footfall. A December number and an August number measure the calendar as much as the code. - Expect some scans to bounce instantly. Accidental scans and curious scans are normal; a placement is only failing when its action rate, not its bounce rate, trails the others. - Count offline conversions separately where you can, for example a till code word shown on the landing page, so web analytics is not your only witness. - Keep the tags stable across redesigns. Changing the naming scheme mid-year breaks every trend line you have built.

Common mistakes to avoid

- Pointing every placement at one untagged URL and then guessing which poster worked. - Treating scan counts as sales and reporting them upward as results. - Changing tag names between prints, splitting one placement into three in the reports. - Tracking forever but never moving a code, so the data changes nothing.

Related tools and guides

- Use the [UTM builder](/utm-builder) to create consistent tagged links for every placement. - Use the [URL QR code generator](/url-qr-code-generator) to encode each tagged link as its own static code. - Use the [QR campaign planner](/qr-campaign-planner) to plan placements, tags, and review dates before you print. - Use the [QR scan log](/qr-scan-log) to keep a simple record of placements and what you changed. - Use the [QR A/B test planner](/qr-a-b-test-planner) to compare two placements fairly with a decision rule set in advance. - Use the [blog](/blog) for more measurement and campaign guides.

Frequently Asked Questions

Can a static QR code be tracked?

A static code itself reports nothing, but the link inside it can carry tracking parameters. When a scan opens the tagged link, your website analytics records the arrival with its placement tags, which gives you per-placement numbers with no special software.

What is the difference between a scan and a session?

A scan is the act of reading the code. A session is what analytics records when the page loads. They differ when a scan is abandoned before the page opens, or the phone has no signal, so session counts are usually a little lower and a little more honest.

Do I need dynamic QR codes for tracking?

No. Dynamic codes add scan counts from the provider's redirect, which is convenient, but tagged static links give you placement-level results in your own analytics and never expire. Choose dynamic when you must change the destination after printing.

How long should I run a placement before judging it?

Long enough to gather a meaningful count for your setting, usually at least a few weeks or a few hundred scans for a busy site. Judging on a single weekend confuses weather, events, and luck with placement quality.

Ready to generate high-precision QR codes?

Test your designs in real-time with our 100% client-side QR studio suite. Zero tracking, instant vector downloads.

Open QR Code Studio