Bulk QR code generation from Excel or CSV: the practical workflow (2026)
If you only need one QR code, any generator will do.
If you need 50, 500, or 5,000 QR codes, the problem changes.
Now you care about:
- naming conventions
- editability
- analytics by location or SKU
- UTMs
- avoiding broken links
- not losing track of which QR goes where
This guide is the bulk workflow we recommend for real campaigns.
TL;DR
- Use dynamic QR codes so you can fix mistakes without reprinting.
- Treat each QR as an asset with a name, owner, and campaign.
- Use a consistent UTM strategy so you can measure results.
- Always do a print test and a phone test before you ship.
Related reads:
Step 1: define your inventory
Start with the use case. Bulk usually means one of these:
- store locations (one QR per location)
- product SKUs (one QR per product)
- sales reps (one QR per rep)
- events (one QR per badge or table)
Write down the "unit" first. That becomes your naming scheme.
Step 2: decide what the QR should open
In bulk, you usually have two choices:
Option A: one landing page, different tracking
Each QR points to the same page, but uses different UTMs so you can measure by location.
Example:
Option B: different landing pages
Each QR points to a unique URL.
This is common for:
- product pages
- PDF menus
- personalized offers
If you do Option B, dynamic QR codes become even more valuable because you will inevitably need to update something.
Step 3: set up a clean spreadsheet
Use Excel or Google Sheets, then export to CSV.
Minimum columns:
- name (human readable)
- destination_url
- campaign
- utm_source
- utm_campaign
- utm_content (or location_id)
Recommended columns:
- owner
- notes
- print_size
- placement (poster, packaging, receipt)
Do not put random notes in the name. Keep it searchable.
Step 4: use dynamic QR codes by default
Dynamic QR codes let you:
- update destinations
- change UTMs
- pause a campaign
- split test destinations
Static codes lock you in.
Read: Dynamic vs static QR
Step 5: plan your redirect structure
A dynamic QR is a redirect.
That gives you control, but you should design it deliberately.
Best practice:
- QR code points to a short, controlled link
- that link redirects to your real landing page
Why this matters:
- you can fix typos
- you can swap landing pages
- you can measure scans consistently
Read: QR redirects best practices
Step 6: design and export assets
Bulk campaigns fail in print more than they fail in code.
Checklist:
- export high resolution assets (PNG or SVG)
- preserve the quiet zone
- do not stretch the QR
- keep contrast high
If you want branding, do it safely.
Read: QR code with logo best practices
Step 7: test like a professional
Before you print 1,000 copies, do a tiny test.
Phone test:
- scan on iPhone and Android
- test at different angles and distances
- test in low light
Print test:
- print at the real size
- test from the real distance
- test on the real material (glossy packaging is different from paper)
Read: QR code size guide for posters
Step 8: reporting that makes sense
Bulk QR campaigns produce lots of scans. That is not the goal.
The goal is outcomes.
A weekly report should include:
- scans and unique scanners
- top locations or SKUs
- landing page conversion rate
- wins and losses (what placements worked)
Read: QR analytics guide
Common bulk mistakes
Mistake 1: inconsistent names
If you name codes randomly, you cannot report or fix issues fast.
Mistake 2: mixing UTM conventions
If you change utm_campaign formats every week, your data becomes unusable.
Read: UTM tracking for QR codes
Mistake 3: shipping without a print test
This is the fastest way to waste money.
Mistake 4: treating QR codes as one time
Most QR codes should be reusable assets. Dynamic QR makes this possible.
CTA: do bulk campaigns with QRShuffle
QRShuffle is designed for teams running real QR campaigns:
- dynamic QR codes you can edit anytime
- campaign organization
- scan analytics
- clean exports for print
If you want to run bulk QR campaigns without spreadsheet chaos, start here:
