← All posts

How to Track QR Code Scans for Free (Without Paying $15/Month)

Every QR code tool wants to charge you for basic scan tracking — device, location, time, browser. Here is how to do all of it free, in about three minutes.

A QR code is only half the job. The other half is knowing whether anyone actually scanned it.

If you are running a restaurant menu, a product label, a print ad, a real estate sign, or a conference handout — the QR code is a measurement point. Scans tell you whether the campaign is working, which location is performing, which device your audience uses, and which day of the week matters. Without that data, you are guessing.

The problem: most QR code platforms lock scan tracking behind paid plans. Bitly starts tracking at $8/month, Beaconstac at $15/month, QR Code Generator Pro at $89/year. And even those free trials throttle you to 500 or 1,000 scans before they deactivate the code.

You do not need any of that. Here is how to track QR code scans for free — forever, with no scan cap, no credit card, and no 14-day timer.

First, Understand What “Tracking” Actually Needs

A QR code is just a square that encodes text. When someone scans it, their phone reads the text and acts on it — opens a URL, connects to WiFi, saves a contact. The QR code itself does not “know” anyone scanned it. There is no built-in report.

To track scans, the destination has to be a URL you control. Every scan then becomes a web request, and web requests are trivial to log.

There are two ways to do this:

Option 1 — Static QR code pointing to your own URL with UTM parameters. You encode https://yoursite.com/menu?utm_source=qr&utm_medium=table-tent, and Google Analytics counts every scan as a UTM-tagged visit. Free, but limited: you cannot change the URL after printing, you only see scans that result in a page load (not pure scan counts), and you need Google Analytics set up.

Option 2 — Dynamic QR code. The QR code encodes a short redirect URL like scanilla.com/r/hjqpmhh. When scanned, that short URL logs the scan and then 302-redirects to your real destination. You get every scan counted, even if the user bails before the page loads. You can also change the destination anytime without reprinting.

Option 2 is what every paid tool charges for. It is also what we give away.

Track QR Code Scans in Three Minutes — Step by Step

These steps use SCANilla, our free QR code generator. No credit card, no trial timer, no scan limit during our open beta.

Step 1 — Create a free account. Go to scanilla.com and sign up with an email and password. Verify your email (takes 30 seconds). This unlocks dynamic QR codes and the analytics dashboard.

Step 2 — Create a dynamic QR code. In the sidebar, click Dynamic QR, then New Dynamic QR. Give it a label (something memorable like “Menu table tent Q2” or “Trade show booth 2026”). Paste the destination URL — your menu, landing page, product page, whatever. Save.

Step 3 — Style it and download. You get all 13 presets, full color control, logo upload, and six dot patterns. Design it once, download as PNG or SVG. Print or use digitally.

Step 4 — Deploy it. Stick it on the table, the flyer, the product, the sign. When someone scans it, they hit your short redirect URL, the scan is logged, and they land on your destination without noticing any delay.

Step 5 — Read the analytics. Come back to Dynamic QR, click your code, open Analytics. You see:

  • Total scans
  • Scans per day (bar chart)
  • Device type (mobile, tablet, desktop)
  • Operating system (iOS, Android, Windows, macOS)
  • Browser (Safari, Chrome, Firefox, Samsung Internet, others)
  • Country, based on scan IP
  • Referrer, when available

That is the full picture. No paywall, no scan cap, no expiry.

What You Can Actually Learn From Scan Data

Tracking is only useful if you act on it. A few things worth watching once you have a week of data:

Peak scan hours. If 70% of your menu QR scans happen between 7pm and 9pm, your staff should be ready for the rush. If nobody scans before noon, stop worrying about morning menu changes.

Device split. If 96% of your scans are mobile and 4% are desktop, do not waste a week making your landing page look perfect on a widescreen monitor. Design for the thumb.

Geography. If you are running the same flyer across three cities and one city is producing 10× the scans of the other two, the other two have a problem — bad placement, wrong audience, weak distribution — not a bad QR code.

Drop-off over time. Every campaign has a decay curve. If scans on your table tents flatline after two weeks, people have stopped noticing. Time to swap the design, not the menu.

A/B tests. Put two dynamic QRs on the same material with different labels (“QR A” and “QR B”) pointing to different landing pages. Whichever wins is your answer, measured in scans instead of gut feeling.

What You Cannot Track (and Why That Is a Good Thing)

To be straight with you: tracking has limits.

You cannot identify the person who scanned. You see device, OS, city-level location, and browser. You do not see name, phone number, email, or precise location. That is by design — both to respect privacy and to stay compliant with GDPR, DPDP (India), and CCPA.

You cannot track scans if the user scans and never hits the redirect. Rare edge case — some phone camera apps preview the URL without visiting it. You miss those scans. No platform can fix that, paid or free.

You cannot track inside a native app if the scan bypasses the redirect. If your QR points to a deep link that opens the app directly, the short URL never loads, and the scan is not logged. For trackable scans, keep the destination as a web URL (even one that then redirects to the app).

The flip side: because SCANilla only logs the scan event itself — not the user — you can show this system to your legal team with a straight face.

Dynamic QR Extras We Do Not Charge For

Most tools charge extra for these. We don’t:

  • Change the destination anytime. Point the same QR code at a new URL whenever you want. Useful when the menu URL changes, the campaign pivots, or the product page moves.
  • Password-protect a QR code. Set a password, and only people who know it can reach the destination. Good for internal docs, member-only pages, or pre-launch previews.
  • Set an expiry date. The QR code stops working automatically at the date you choose. Perfect for limited-time promos — the code is dead when the offer ends.
  • Cap the number of scans. “First 100 customers” offers actually stop at 100. The QR code becomes inactive after the cap.

When a Free Plan Is Not Enough

Most people never outgrow free tracking. A small business with three dynamic codes and 5,000 scans a month will never hit a wall.

Where free starts to pinch: teams, agencies, and high-volume campaigns. If you need to manage dozens of QR codes across clients, export raw scan data for your own BI tool, or hit our API, the Pro and Agency plans cover that. Everything on the free plan stays free. Paid adds scale, not features you are missing.

Try It

Spend three minutes on this and you will have a working, tracked QR code before your coffee goes cold.

Create your free account, make a dynamic QR, and come back in a day. Watch the scans roll in.

If you have questions, hit Contact — real humans, not a bot queue. And if you are a WordPress user who wants QR codes straight from the block editor, a SCANilla plugin is on the way.

Need a QR code for this? SCANilla is free for unlimited static codes — no signup.
Open the Generator