A QR code can't count anything. It's a printed picture of some text, and once it leaves the printer it has no idea whether anyone looked at it. All the tracking happens one step later, on the server that handles the link inside the code.
Once you see that, most decisions about printed codes get easier: which kind to order, why each poster needs its own link, what happens when someone deletes a link six months after the print run, and why no report will ever tell you who scanned. This page goes through them in the order you'll meet them while planning an event or a packaging run.
How QR code link tracking works
The whole chain has four steps, and you only control the middle two.
- A phone camera reads the code and gets a URL, in this case a short link.
- The phone requests that short link, and the shortener's server records the visit along with what the request reveals, such as device, operating system and approximate location.
- The server redirects the phone to your destination page, with any UTM tags you added.
- Your page loads, and your web analytics records a session with those tags.
So a scan is really a click with a camera in front of it, and the same rules apply. Reading those numbers well is its own skill, covered on the page about URL shortener analytics. The rest of this page covers what's specific to print.
Static vs dynamic codes
A static code holds the final URL directly. A dynamic code holds a short link that redirects there. Bitly's description is useful here: static codes "encode fixed data that you cannot change" and have "zero built-in scan tracking", while dynamic ones use a short, editable redirect.
| Question | Static code to a plain URL | Code holding a tracked short link | Tracked and editable destination |
|---|---|---|---|
| Counts scans | No, unless your own site can tell | Yes | Yes |
| Fix a wrong destination after printing | No, reprint | Only if the tool lets you change it | Yes |
| Depends on a vendor staying up | No | Yes | Yes |
| Pattern complexity | Grows with URL length | Low, as the short link is short | Low |
| Fits | Permanent pages you own, such as a manual | A single event with a known end | Packaging and anything with a long life |
Be careful with that last column. Nautis QR codes are in the middle one. They encode a short link and count scans, but the guide doesn't document changing a link's destination after creation, so plan as if a printed Nautis code is fixed. For packaging that stays on shelves for two years, you want an editable destination. Bitly calls this Redirects and lists 5 a month on Core, 20 on Growth and 110 on Premium, as of November 2026. Dub's docs say you can update a link's destination as often as you like.
A UTM scheme, one link per placement
Give every placement its own short link, so the scan count itself tells you which poster worked. Then tag each destination so your web analytics can see what those visitors did. Decide the scheme before anything goes to the printer, since you can't fix it afterwards.
Here it is for a made-up event called Founders Meetup. Keep everything lowercase, because Google treats values as case-sensitive and meetup and Meetup would become two campaigns.
| Placement | Short link slug | utm_source | utm_medium | utm_campaign | utm_content |
|---|---|---|---|---|---|
| Entrance poster | meetup-poster | venue | founders-meetup | entrance-poster | |
| Table tents, coffee bar | meetup-tent | venue | founders-meetup | coffee-tent | |
| Flyer, registration desk | meetup-flyer | handout | founders-meetup | desk-flyer | |
| Lanyard insert | meetup-badge | handout | founders-meetup | badge-insert |
Medium stays as print on all four, so you can total print against other channels. Content is what separates placements inside a campaign. In Nautis, Source, Medium and Campaign are required in the UTM dialog and Content is optional, and the tags can't be changed once a link exists, so proofread before you click Shorten.
Worked example: one event's posters and flyers
All numbers here are illustrative, invented to show the method. Our made-up event spends $340 on printed materials, and the call to action on each is a signup for a follow-up session.
| Placement | Print cost | Human scans | Signups | Cost per signup |
|---|---|---|---|---|
| Entrance poster (4) | $60 | 180 | 36 | $1.67 |
| Coffee bar table tents (20) | $40 | 95 | 19 | $2.11 |
| Registration flyer (500) | $90 | 65 | 20 | $4.50 |
| Lanyard insert (300) | $150 | 40 | 16 | $9.38 |
| Total | $340 | 380 | 91 | $3.74 |
Three things stand out. The poster and table tents beat the flyer on cost by a distance, and they get scanned by people with a minute to spare. The flyer and lanyard convert better per scan, at 31% and 40% against the poster's 20%, which suggests people who keep them mean it, so don't cut either based on scan counts alone. The lanyard is the costly one here, though it might be doing something else, such as paying a sponsor's bill, and scans can't show that.
One event is one data point. Run the same comparison at the next event before you change the print order. If you're collecting signups, a form with its own QR code makes the last column easy to get.
How big to print, and how much space to leave
The Nautis guide sets 2 cm by 2 cm as the working minimum, and that's a sensible floor for something held in the hand. Two published details from QR Code's creator, Denso Wave, explain why the size isn't the only factor.
First, modules, the small squares in the pattern. Version 1 has 21 by 21 and each version adds 4 per side, and more data needs more modules. At 2 cm wide, a code 29 modules across has squares about 0.7 mm wide. If a long URL pushed it to 57 across, they'd shrink to about 0.35 mm, which leaves a phone camera much less to work with. That's the practical reason to encode a short link.
Second, the quiet zone: a blank margin four modules wide on every side. Designers often trim it to fit a layout, and the code then struggles to read. On our 29-module code, that's nearly 3 mm of clear space on each side, so count that in the layout.
| Placement | Scanned from | Start at |
|---|---|---|
| Business card, small packaging label | Hand | 2 cm, the floor |
| Flyer or table tent | Hand or a short reach | 3 to 4 cm |
| Poster on a wall | A few steps away | Far larger, around 15 cm or more, then test from where people will actually stand |
Scan testing before the print run
Testing on your laptop screen proves almost nothing, since the problems are physical. Budget twenty minutes and a printed proof.
- Print a proof at final size on the final material. Gloss, foil and curved surfaces all behave differently from office paper.
- Scan with at least one iPhone and one Android phone, ideally including an older one, using only the built-in camera app.
- Scan from the real distance, in the real light. Dim venues and glare on a laminated surface cause more failures than size does.
- Follow the link to the end. Check the mobile page loads quickly, the right campaign tags appear in the address bar, and the form works with one thumb.
- Confirm the scan was counted. Open the analytics for that link and look for your test. Note the count, so that your own testing doesn't end up in the results.
- Check the printed colours. Dark on light is the safe pattern. Test any inverted or low-contrast design first, since brand colours are a common cause of failed scans.
What if the link is deleted?
Then every printed copy becomes a dead end. In Nautis, the guide is direct about it: a deleted short URL stops redirecting and anyone using it sees an error, and slugs can't be edited. There's nothing to fix at that point except a reprint. The same logic applies to any tracked code. If the redirect goes away for any reason, such as a deleted link, a lapsed subscription or a vendor closing down, the ink on the poster doesn't help you.
- Keep a register. A sheet with slug, placement, quantity, print date, expected end of life and owner. Packaging needs this most.
- Mark printed links as off-limits. Tell anyone with delete permission which links are in print. In Nautis, deleting a link needs the matching permission, so limit who has it.
- Check at shelf-life end. Don't delete a link when a campaign finishes. Point people somewhere useful if your tool allows it, or leave it alone.
- Ask about cancellation before you print. Find out what happens to redirects if you stop paying. The Nautis guide says links keep working as long as they exist in Your URLs, and doesn't cover what happens after cancelling a plan, so ask support if that matters to your run.
What scans can't tell you, and privacy
A scan shows that a phone opened a link. It doesn't tell you who, whether they read the page, or how many people walked past. So scan rate per poster view is usually a guess. Scans also don't separate people well: one person scanning twice looks like two scans in any report that doesn't count unique visitors, and the Nautis guide doesn't describe a unique count. A photo of your poster shared in a group chat creates scans at a location you never printed in. City data is approximate as well.
Privacy needs a little thought, even for a marketer. Shorteners work with request data, and GDPR Recital 30 names IP addresses and cookie identifiers as online identifiers that can be used to profile people when combined with other data. Aggregate counts by placement are a very different thing from a unique code per customer on a parcel. If you print per-person codes, you've linked scans to a known person, and you should treat that as personal data, cover it in your privacy notice and take legal advice. The Nautis analytics dialog is aggregate only and captures no names or emails.
QR Code and Download QR in Nautis, and the alternatives
In Nautis, create the short link first under Marketing, then URL Shortener. There's no separate QR screen. In Your URLs, click QR Code on the link's row and then Download QR for a PNG. Custom forms have the same idea under Share, as Download QR Code, and a Nautis booking page offers one under Share & Links.
A startup already on Nautis can run a whole event this way, with the signup form, the scans and the follow-up in one place. But the guide documents a PNG download only, so a printer asking for vector artwork would need another tool. There's also the fixed-destination limit above. For packaging, look elsewhere first. Prices below are as of November 2026, and Nautis itself runs from $49 a month.
| Tool | Plan | QR codes | Worth noting |
|---|---|---|---|
| Bitly | Core, $10 a month billed yearly | 5 a month | 5 redirects a month, 30 days of data |
| Bitly | Premium, $199 a month billed yearly | 200 a month | 110 redirects a month, 1 year of data |
| Rebrandly | Essentials, from $8 a month | 250 a month | $0 option's codes carry a watermark |
| Dub | Business, $81 a month | Custom QR codes, no count listed | Separates QR scans from link clicks in reports |
| Short.io | All plans | Not listed per plan | Colour and logo options on codes |
FAQ
How does QR code link tracking work?
The code holds a short link. When a phone scans it, the link's server records the visit and redirects to your page, so the count comes from the redirect and not from the code. Using one link per placement tells you which poster or flyer was scanned.
What is the difference between a static and a dynamic QR code?
A static code holds the final address, can't be changed and doesn't count scans by itself. A dynamic code holds a short link, so scans are counted and, if the tool allows it, the destination can change after printing. In Nautis, codes are tracked, but the guide doesn't document changing a destination.
What is the smallest size I can print a QR code?
The Nautis guide recommends at least 2 cm by 2 cm, and leave a blank margin four modules wide around it, as QR Code's creator specifies. Short links help because less data means fewer, larger modules. Always test a printed proof on the final material.
What happens to a printed QR code if the link is deleted?
It stops working. In Nautis, a deleted short URL gives anyone who scans it an error page, and the only fix is to reprint with a new link. Keep a list of links that are in print, and limit who can delete them.
Can I see who scanned my QR code?
No. Link tracking shows aggregates such as time, device, operating system, country and city, not names or emails. To learn who responded, send people to a signup form. Printing a unique code per person is different, and you should treat it as personal data.
Sources
- Bitly: dynamic vs static QR codes
- Bitly: pricing, QR codes and redirects
- Denso Wave: QR Code version and module counts
- Denso Wave: quiet zone and module size
- Google Analytics Help: UTM parameters
- GDPR Recital 30: online identifiers
- Rebrandly: pricing
- Dub: pricing
- Dub: analytics help article
- Dub: links overview
- Short.io: pricing

