QR Code to Collect Email Addresses: The Setup That Actually Converts

A customer of mine ran a stall at a food market last spring. Big printed sign, QR code in the corner, “scan to join our list.” She came back thrilled. The code got scanned all weekend.
Then I asked how many subscribers she got. She had no idea. Her email tool showed 31 new contacts that week. Some came from the website. Some came from the market. Nobody could tell which.
That is the actual problem with a QR code to collect email addresses. Making the code is the easy part. Knowing whether it worked is where almost everyone gives up.
This is not the same thing as a QR code to an email address, which opens a mail composer so someone can write to you. That one points outward. This one points inward. You are capturing their address, not handing over yours.
Here I’ll cover what the flow actually looks like, the four numbers worth watching, how to build it, and the consent record you need to keep alongside every address.
What Does a QR Code to Collect Email Addresses Actually Do?
It encodes a normal web address. Nothing more exotic than that.
Scan it, the phone opens a browser, the browser loads your signup page, the visitor types their address, your email platform stores it. Every step happens over HTTP, which is exactly why this version can be measured end to end and the mailto: version cannot.
Here is the split, because people conflate these two constantly:
| Collection QR (this post) | mailto QR | |
|---|---|---|
| Payload | https://yourbrand.com/subscribe |
mailto:[email protected] |
| What opens | Browser, then your form | Mail composer |
| Who ends up with data | You get their address | They get your address |
| Needs internet | Yes | No, drafts offline |
| Trackable | Fully | Not at all |
| Best for | List building, events, packaging | Enquiries, business cards |
Look, both are legitimate. They just solve opposite problems. If you want people to contact you, the mailto version is faster and works without signal. If you want to grow a list you can send to later, you need this one.
The honest limitation: a collection QR dies without connectivity. Basement venues, rural markets, crowded conference halls where the wifi buckles. I have watched a perfectly good signup code fail for two hours at a trade show because nobody could load the page. The mailto version would have drafted fine.

The Four Numbers That Tell You If It Worked
Most people track one number: scans. Scans are the least useful number in the chain.
A scan means somebody pointed a camera. It does not mean they landed, and it definitely does not mean they subscribed. You need four numbers, and the gaps between them are where the diagnosis lives.
| Stage | What it counts | Typical drop from previous |
|---|---|---|
| 1. Scans | Camera resolved the code | Starting number |
| 2. Page views | Browser actually loaded the page | 15 to 30% lost |
| 3. Form submits | Address entered and submitted | 60 to 80% lost |
| 4. Confirmed subscribers | Double opt-in click completed | 20 to 40% lost |
Run those against real numbers. Say a weekend market gives you 400 scans. Roughly 300 land on the page. If your page converts at the 23% average that landing page research reports for signup pages, that is 69 submits. Confirm at 70% and you finish with 48 subscribers.
400 scans. 48 subscribers. That is a 12% scan-to-subscriber rate, and honestly that is a decent weekend.
I call that last figure the scan-to-subscriber rate, and it is the only number I actually report to clients. It survives comparison across placements, months, and venues in a way raw scan counts never do.
The honest limitation: stage 1 to stage 2 is genuinely fuzzy. Some scanners preview the URL and the person backs out, and depending on your QR platform that may or may not count. Treat the scan number as directional. The three numbers after it are solid.
How to Build a QR Code That Collects Email Addresses
Six steps. The order matters, because two of them are impossible to fix after you print.
- Build the signup page first. Not the code. The page. It needs one job: capture an address. Strip the navigation, strip the footer links, strip anything that offers an exit. A dedicated landing page beats sending people to your homepage by a wide margin.
- Cut the form to three fields or fewer. This is the highest-leverage decision on the page. Form research from 2026 found three-field forms converting at 10.1% against 3.6% for nine-field forms, with the steepest fall between four and seven fields. A required phone number field alone costs about 5%. Email address, first name, done. Everything else you can ask for later.
- Give them a reason. “Join our newsletter” is not a reason. A discount code, an early-access slot, a guide worth reading, a giveaway entry. A real lead magnet is the difference between a 4% page and a 25% page. At the market stall, we tested “join our list” against “get the recipe card for what you just tasted.” The recipe card more than doubled submits.
- Tag the destination URL before you generate anything. This is the step everyone skips and nobody can undo. Add UTM parameters so the traffic identifies itself in analytics:
https://yourbrand.com/subscribe?utm_source=market-stall&utm_medium=qr&utm_campaign=summer-2026&utm_content=a4-sign
I use utm_medium=qr so every scan across every surface groups into one channel, then utm_source for the placement type and utm_content for the specific printed unit. Consistency here matters more than which convention you pick.
- Generate a dynamic code from the tagged URL. A dynamic QR code resolves through a short redirect you control, so the destination stays editable after printing. It also gives you stage 1 of the funnel, since the redirect is a real HTTP hop that can be counted.
- Test it on a phone you did not build it with. Borrow one. Different camera app, different default browser, ideally an older device. Then scan the printed proof, not the screen version. Print introduces its own failures that a PDF never shows.

Why Do People Scan the Code But Never Subscribe?
Because the failure is almost never the code. It is one of three gaps, and each has a different fix.
Gap between scan and page view. The page is slow, the connection is weak, or the URL redirects too many times. Every extra redirect hop costs you people on a phone with two bars. Keep the chain to one hop. If you are running a code at a venue you have never visited, load your page on mobile data while standing where the sign will be.
Gap between page view and submit. This is the big one and it is almost always the form or the offer. Too many fields, no visible reason to hand over an address, or a page that looks nothing like the printed sign they just scanned. Match the sign and the page: same headline, same colours, same offer. A visitor who feels teleported somewhere unrelated bounces.
Gap between submit and confirmation. Your confirmation email landed in promotions or spam, or you never told them to expect it. Add one line to the page after submit: “check your inbox for a confirmation link, it might be in promotions.” That sentence alone recovered about 15% of a client’s lost confirmations.
The honest limitation: you cannot diagnose any of this without the four numbers in place first. If you print the code before setting up tracking, you get one number, and one number tells you nothing about which gap is costing you.
Consent: The Record You Have to Keep
An address collected by QR is subject to the same rules as one collected anywhere else. Scanning a code is not consent. Consent is the checkbox and the language next to it.
Under GDPR, consent must be freely given, specific, informed, and granular. Granular is the one people miss. If you plan to send both a newsletter and promotional offers, those are two separate opt-ins, not one box covering both.
What you need stored alongside every address:
- The timestamp of the submission
- The exact consent wording shown on the page at that moment
- The collection channel, which is where your UTM values earn their keep
- The affirmative action taken, meaning an unticked box the person actively ticked
Pre-ticked boxes do not count. Neither does “by subscribing you agree” buried under a button.
On double opt-in: GDPR itself does not require it, though Germany does and several other European regulators recommend it. I use it anyway, because that confirmation click is the cleanest evidence of consent you will ever have, and it keeps your list clean of typos. The TermsFeed guidance on GDPR double opt-in covers the legal detail properly.
The honest limitation: double opt-in costs you subscribers. Somewhere between 20 and 40% never click the confirmation. That is a real price. I still think it is worth paying, but you should decide that deliberately rather than by accident.
Where to Put the Code, and How to Tell Placements Apart
Put the code wherever someone is already standing still. Scanning requires two free hands and a few seconds of attention.
The tagging is what makes placement decisions possible next quarter. Same destination page, different utm_source and utm_content per surface:
| Placement | utm_source | utm_content | Why it works |
|---|---|---|---|
| Table tent at checkout | counter |
table-tent |
Captive wait, hands free |
| Event booth backdrop | booth |
backdrop-a1 |
Visible from queue |
| Product packaging insert | packaging |
insert-card |
Opened at home, unhurried |
| Receipt footer | receipt |
receipt-footer |
Reaches existing buyers |
| Storefront window | storefront |
window-decal |
Works when you are closed |
Now your analytics answers the question my market-stall client could not: the table tent produced 6 subscribers, the A4 sign produced 42, print more A4 signs. For events specifically, the same tagging discipline feeds event marketing ROI tracking.
Scan behaviour still favours this channel. Bitly’s State of QR Code Scans 2026 found scans growing faster than new codes are being created, up 42% year over year in Europe and 40% in Latin America, with North America at a more mature 8%.
The honest limitation: utm_content values printed on a physical object are permanent. Choose names you will still understand in eighteen months. insert-card ages well. v2-final does not.

Should the Code Be Static or Dynamic?
Dynamic, for this use case specifically. I rarely give advice this one-sided.
A static QR code bakes the destination into the pattern itself. Change your signup page URL and every printed code is dead. That happens more than people expect: you migrate email platforms, your form provider changes its URL structure, you rebrand a landing page.
A dynamic code points at a redirect you own. Swap the destination, every printed poster keeps working. You also get the scan counts that make stage 1 of the funnel possible.
The trade-off is real. Dynamic codes depend on the redirect service staying alive, which means you are tied to a vendor for the life of the print run. Static codes have no such dependency and will resolve in twenty years. For a permanent engraving or a tattoo, static wins. For a marketing campaign, dynamic wins easily.
Sizing and module math I have covered separately, and the rules do not change for signup codes.
Frequently Asked Questions
Can a QR code collect email addresses directly without a landing page?
No. A QR code is a container for text, so it can carry a URL, but it cannot receive or store anything. Something has to be on the other end to accept the address, whether that is your own landing page, a Typeform, a Google Form, or your email platform’s hosted signup page. The code is the doorway, never the room.
What is a good scan-to-subscriber rate?
Anywhere from 8 to 15% is healthy for a printed signup code, measured as confirmed subscribers divided by scans. Below 5% usually points at the form rather than the code, most often too many fields or no clear incentive. Above 20% normally means a strong lead magnet doing the work. Compare against your own previous campaigns before worrying about anyone else’s numbers.
Do I need double opt-in for emails collected by QR code?
GDPR does not require double opt-in, though Germany does and several European regulators recommend it. The collection method makes no legal difference, so a QR signup carries exactly the same obligations as a website form. I use double opt-in regardless because the confirmation click is strong evidence of consent and it removes mistyped addresses before they damage your sender reputation.
How many form fields should a QR signup page have?
Three or fewer. Research in 2026 measured three-field forms converting at 10.1% against 3.6% for nine-field forms, with the sharpest decline between four and seven fields. Mobile scanning makes this worse, since every extra field is more typing on a phone while standing in a queue. Ask for the email address, optionally a first name, and collect everything else later.
What happens to printed codes if I change email platforms?
Nothing, if you used a dynamic code. You point the redirect at the new signup page and every poster, insert, and sticker already in circulation keeps working. If you used a static code, the printed pattern contains the old URL permanently and the only fix is reprinting everything. This is the single strongest argument for dynamic codes on anything you cannot easily reprint.

Start With the Page, Not the Code
The code takes ninety seconds to make. The page, the offer, and the tagging are what decide whether you end up with 48 subscribers or an unanswerable question.
Three things to do before your next print run:
- Build a dedicated signup page with three fields and one real incentive
- Tag the URL with
utm_medium=qrand a distinctutm_contentper printed surface - Generate a dynamic code so you can fix the destination without a reprint
If you want the deeper measurement setup, including how scans flow into GA4, I have covered that in QR code tracking and the UTM tagging walkthrough for QR campaigns.
Ready to build one? Create a tracked, editable code with linkutm’s QR code generator and watch scans, placements, and subscribers in the same dashboard.