All posts
From the blog

Can someone track you when you scan a QR code?

Sometimes — and it depends entirely on whether the code is static or dynamic, plus what's at the other end. Here's the actual mechanics, and what AFQR does (and doesn't) record.

Joe
  • privacy
  • explainer

Short answer: sometimes. Whether you can be tracked when you scan a QR code depends on two separate things, and the QR industry is not great at explaining either of them.

Let’s separate them.

Question 1: Does scanning the QR itself send any signal?

No. The QR code is a piece of paper or a pixel grid on a screen. Reading it is a purely local operation — your phone’s camera resolves the image, decodes the bits, and produces a string. Nothing leaves your device at this stage. There is no “QR scan event” being phoned home anywhere.

This is true regardless of what kind of QR it is. The mere act of reading the dots is private.

Question 2: What happens after you act on the decoded string?

This is where tracking becomes possible — and the answer depends entirely on what the QR pointed at.

Case A: a static QR pointing directly at a website

Say the QR encodes https://example.com/menu. Your phone opens that URL. The website at example.com sees a request from your IP address, with whatever cookies and headers your browser sends. That’s the same information any website gets when you click a link, type a URL, or follow a search result.

There is no QR-specific tracking. The site can log the visit, sure — but the QR didn’t add anything beyond what you’d reveal by typing the URL by hand.

Case B: a dynamic QR (the redirect kind)

Now say the QR encodes https://qr-provider.example/r/abc123. Your phone opens that URL. The provider’s redirect server logs the request — including a per-code identifier that distinguishes scans of this code from scans of any other code they manage — and then 302-redirects you to the real destination.

The redirect-server hop is the part most users don’t realize is happening. From the provider’s perspective, every scan is an event they can record:

Some providers also fingerprint the device, set tracking cookies on the redirect domain, or sell the resulting telemetry to data brokers. Most won’t tell you which.

The provider is then a third party in the loop, even if the destination site itself is privacy-friendly.

Case C: a static QR pointing at a tracking-heavy site

Even a static QR can lead to a tracking-heavy destination. If the URL is https://shop.example/?utm_source=poster_a&utm_campaign=spring_sale, the destination site can correlate your visit with the specific poster the QR was on. That’s not really “QR tracking” — it’s normal web analytics — but it’s worth knowing it can happen with any QR, static or not.

What “tracking” usually means in practice

When QR-as-a-service providers boast about analytics, they typically capture:

What they don’t usually capture, even with dynamic QRs:

What AFQR records

Because the brand promise here is “actually free, with the privacy that implies,” it’s worth being specific about what we do and don’t record on dynamic QRs:

What gets recorded for a scan of an afqr.codes short link:

What we don’t record:

Scan events live in Cloudflare Analytics Engine and age out automatically after roughly 90 days. The dashboard you see when you own a code shows daily counts and country breakdowns; we deliberately don’t store enough to do anything beyond that.

For static QRs generated on AFQR, there is nothing to track at all — those codes don’t pass through us. The encoding happens in your browser, the QR points directly at your URL, and we never see a single scan.

What you can do as a scanner

If you’re scanning random QRs in the wild and you’d like to minimize what’s recorded:

What you can do as a creator

If you’re generating QRs and you want to be respectful of the people who scan them:

The TL;DR: scanning a QR isn’t inherently a tracking event, but it can become one depending on the kind of code and where it points. Being slightly intentional about both ends of the chain solves most of it.

Need a QR code that won't expire?

Make one in your browser, free, no signup. Or sign in with Google to manage dynamic codes with scan stats.