← All articles

Free QR Code Analytics: Track Scans Without Paying a Dime

2026-10-02 · 5 min read

Advertisement

Free QR Code Analytics: Track Scans Without Paying a Dime

When I scanned a QR sticker at a coffee shop, the link showed me exactly how many times it had been opened. I did not use any paid service. That tiny moment made me ask: Can you get reliable QR‑code metrics without spending a cent? The answer is yes. You can build a simple dashboard with tools you already have.

Why a free solution matters

Most marketers think that useful data always costs money. In fact, the basic numbers you need—total scans, device type, and location—are free. Skipping a subscription saves money that can be used for better prints, nicer designs, or even a new espresso machine. A free setup also gives you full control over the data. You can change settings whenever you want, without waiting for a vendor.

Create a redirect you own

A QR code should not point directly to your final landing page. Think of the QR code as a short detour that lets you log the visit before sending the user on to the real destination. There are two easy ways to make that detour:

  • Use a free URL shortener – Services like Bitly, TinyURL, or Rebrandly let you create a short link and see basic click stats. The free tier is enough for small campaigns.
  • Host a tiny HTML redirect on your own server – If you want zero third‑party dependence, upload a one‑line HTML file (e.g., redirect.html) to any web host you control. The file can add UTM tags (extra bits of information that tell Google Analytics where the visitor came from).
<!DOCTYPE html>
<html>
<head>
  <meta http-equiv="refresh" content="0; url=https://example.com/target?utm_source=qr&utm_medium=print" />
</head>
<body>
  <p>Redirecting…</p>
</body>
</html>

Replace the URL with your real destination and add any UTM tags you need. Every scan triggers a request to this file, creating a log entry you can later analyze.

Hook the redirect into Google Analytics (the free powerhouse)

Google Analytics 4 (GA4) is free and familiar to most marketers. It offers real‑time charts, filters, and export options. By routing the QR‑code request through GA4, you get a visual dashboard without paying a subscription fee.

Step‑by‑step setup

  • Create a GA4 property – Log into analytics.google.com, click Admin > Create Property, choose Google Analytics 4, and note the Measurement ID (e.g., G-XXXXXXXXXX).
  • Add the GA4 tracking snippet – Insert the following script into the <head> of your redirect page (or into a site‑wide header if you use a CMS):

1
3. Add UTM parameters to the final URL – Your destination should look like:

https://example.com/offer?utm_source=qr&utm_medium=print&utm_campaign=summer2024

UTM parameters are short text strings that tell GA where the traffic came from. GA reads them automatically, letting you break down traffic by campaign, medium, or source.
4. Generate the QR code – Use any online QR‑code generator. For a quick free option, try tichi.shop/tool-qr-code-generator. Feed it the short URL (or the URL of your hosted redirect) and download the PNG or SVG. Keep the code large enough to scan easily from a typical smartphone distance.
5. Test and verify – Scan the code with a phone, then open GA and go to Acquisition > Traffic acquisition (or Acquisition > Campaigns in the older UI). You should see a new session labeled qr within a few seconds. If you don’t see data, double‑check the Measurement ID and UTM syntax.

Capture scans with server logs (the backup plan)

Advertisement

Even if you skip GA, your web server already records each request. A quick look at the access log can give you total hits, daily counts, and even the IP addresses of scanners.

For Apache, a one‑liner such as:

grep "/redirect.html" /var/log/apache2/access.log | wc -l

shows the total number of scans. To see a day‑by‑day count, pipe the result through awk:

grep "/redirect.html" /var/log/apache2/access.log | awk '{print $4}' | cut -d: -f1 | sort | uniq -c

If you prefer a more structured approach, a tiny Node.js server can log each request to a JSON file while still performing the redirect:

const http = require('http');
const fs = require('fs');
http.createServer((req, res) => {
  const log = {time: new Date().toISOString(), ip: req.socket.remoteAddress, url: req.url};
  fs.appendFileSync('qr.log', JSON.stringify(log) + '\n');
  res.writeHead(302, {Location: 'https://example.com/target'});
  res.end();
}).listen(8080);

Deploy this script behind a domain you control, point the QR code there, and you’ll have a raw data dump you can parse later with any tool you like.

Combine data sources and interpret the numbers

When you compare GA4 reports with raw server logs, you’ll often see a slight mismatch. GA might show 120 sessions while the server log records 130 hits. The extra ten are usually bots, cached redirects, or users who never fully loaded the final page. Use the higher figure when planning inventory (better to over‑estimate) and the lower figure when calculating conversion rates (more precise).

The key is to let the two sources validate each other rather than relying on a single, possibly skewed metric. Export both datasets, merge them in a spreadsheet, and add columns for device type, country, and time of day. From there you can answer questions like:

  • Which locations generate the most scans?
  • Do certain device types convert at higher rates?
  • What time of day yields the highest engagement?

Keep privacy front and centre

Free tools still collect IP addresses and device information. Make sure your privacy notice mentions QR‑code tracking, and never store personally identifiable information without explicit consent. A short disclaimer on the landing page—e.g., “We collect anonymous scan data to improve our service”—is usually enough to stay compliant with most regulations.

Wrap‑up: data without the price tag

With a few minutes of setup, you can move from “I have no idea how many people scanned my code” to a live dashboard that updates every hour. No monthly invoice, no hidden fees—just the same data you’d expect from a paid service, delivered by the tools you already own. Start by creating a short redirect, hook it into Google Analytics, and watch the numbers roll in. Your next campaign will be smarter, cheaper, and more measurable than ever before.

Advertisement
Advertisement