QR Codes for coupons and discounts: best practices that actually convert
A QR code can make a discount feel instant.
Scan, claim, buy.
But most QR coupon campaigns underperform for boring reasons:
- the landing page is slow
- the offer is unclear
- the code is too small to scan from the distance people see it
- the link breaks after printing
- tracking is missing, so you cannot improve the next run
This guide focuses on conversion, not novelty.
TL;DR
- Use a dynamic QR code so you can fix mistakes and update offers without reprinting.
- Send scans to a dedicated offer page, not your homepage.
- Add UTMs so you can measure which placements drive revenue.
- Make redemption simple: one screen, one button, no surprises.
- Design for scanning distance: size, contrast, and quiet zone matter.
Step 1: decide what the scan should do
A coupon QR code should lead to one of these outcomes:
- Reveal a code ("SAVE10")
- Auto apply a discount via a link parameter
- Add a product to cart with the offer applied
- Collect email for a delayed discount (use carefully)
Pick one primary action.
If you stack multiple actions, conversion drops.
Step 2: use a dynamic QR code (so the campaign is not fragile)
Static QR codes are brittle.
If the URL changes, or if you want to swap the offer, you must reprint.
A dynamic QR code lets you update the destination URL later.
This is the most important best practice for printed coupons.
Related reading: /blog/dynamic-qr-code and /blog/dynamic-vs-static-qr
Step 3: build a dedicated offer landing page
Do not send scans to your homepage.
Homepages are for exploration. Coupon scans are for completion.
A high converting offer page has:
- a clear headline ("10% off your first order")
- the redemption mechanism (auto applied, or visible code)
- one primary CTA ("Shop now")
- trust signals (shipping, returns, reviews)
- no extra navigation on mobile
Speed matters.
Related reading: /blog/landing-page-speed-for-scans
Step 4: add tracking so you can improve
If you cannot measure, you cannot scale.
At minimum, add UTMs to the destination:
utm_source=qrutm_medium=printutm_campaign=spring_posterutm_content=window_01
Related reading: /blog/utm-tags-for-qr-codes
If you use dynamic QR codes, you can also measure scans inside your QR platform.
Related reading: /blog/qr-code-analytics
Step 5: make redemption frictionless
The fastest path usually wins.
If possible, use a link that auto applies the discount.
If you must use a code:
- keep it short
- show it immediately
- add a copy button
Avoid forcing account creation before the offer is visible.
Step 6: design the print for scanning distance
A coupon can be perfect, but if the QR code is hard to scan, nothing happens.
Use these rules:
- larger code for larger distance
- high contrast between code and background
- keep a quiet zone around the code
Related reading:
- /blog/qr-code-size-scanning-distance
- /blog/qr-quiet-zone-explained
Step 7: plan for expiry and offer updates
Coupons have an expiration problem.
If you print "valid until" on paper, it will be shared after expiry.
A dynamic QR code gives you a safe fallback:
- after expiry, redirect to a new offer or a waitlist
- run seasonal offers without wasting print inventory
Related reading: /blog/qr-redirects-best-practices
Step 8: segment by placement
You will learn more if each placement has its own QR code.
Examples:
- window poster
- flyer
- receipt
- packaging insert
Then you can compare scan rates and conversion by placement.
Related reading: /blog/qr-code-analytics
Example: a simple campaign setup
- 4 placements, 4 dynamic QR codes
- each code goes to the same offer page with different UTMs
- one analytics view that shows scans by placement
- weekly iteration: swap headline and offer details
This is how you turn a one off coupon into a channel.
Checklist: QR coupon campaign that converts
- Dedicated offer page, fast on mobile
- Dynamic QR code so links can be updated
- UTMs for placement tracking
- One clear action on the page
- Easy redemption (auto apply or short code)
- Correct print design (size, contrast, quiet zone)
CTA: launch your coupon QR codes in minutes
QRShuffle makes it easy to create dynamic QR codes, update destinations without reprinting, and track scans by placement.
Start here:
