Printing a QR code usually means committing to it
The pattern in a static QR code is the destination — those black squares literally spell out the URL. Change where it should go and the printed code is scrap.
The URL changes, the print run does not
A campaign page moves, a menu goes seasonal, a PDF gets a new version. A static code has that address baked into its pattern, so the only fix is a new print run.
You never find out what happened
A printed static code reports nothing back. There is no way to tell whether a poster pulled ten scans or ten thousand, or which city they came from.
Every code is a one-off
Making two hundred table codes by hand — one per table, each with its own destination — is an afternoon of copy-paste and a spreadsheet you do not trust.
This code encodes qrz.eo/spring-menu — a short link we own, not a page. Point that link at a spring menu today and an autumn one in six months and the printed squares never move. Go ahead and scan it.
Static or dynamic — the choice that decides everything else
Both produce a perfectly ordinary QR code that any phone camera reads. The difference is what those squares spell out.
https://example.com/menu- Works forever with no service behind it
- Nothing to pay for, no account required
- No scan data — the code reports nothing back
- Changing the destination means reprinting
Best for Wi-Fi credentials, vCards and anything that will never change.
https://qrz.eo/menu- Re-point the destination anytime, instantly
- Every scan recorded with device and country
- Pause a code without deleting it
- Denser pattern too — short links encode smaller
Best for anything printed at volume, or anything a campaign will outlive.
Static codes are unlimited on every plan, including the free one — we only charge for the codes that need a service behind them.
24 things a code can do
Each type gives you the right form instead of a raw text box — Wi-Fi asks for security mode, vCard asks for a job title, and the payload is assembled correctly underneath.
A printed code that reports back
Every scan of a dynamic code passes through the short link first, which is what makes measurement possible at all — a static code has nowhere to record anything.
Which poster actually worked
Give each placement its own code and the answer stops being a guess. Same campaign, one code per location, one number each.
Device and country on every scan
iOS versus Android tells you which app-store link to feature. Country tells you which market to translate for next.
A trend, not just a total
Daily counts over 7, 30 or 90 days, so a code that stopped being scanned three weeks ago is obvious rather than buried in a lifetime total.
Scans are counted from the redirect, so the figures reflect people who reached the destination — not impressions, and not anyone who pointed a camera and changed their mind.
One code is easy. Ten thousand is the actual problem.
Making a single QR code is a solved problem — plenty of free tools do it. Generating them per table, per asset or per order, and keeping every destination correct afterwards, is where a spreadsheet stops being enough.
CSV upload
One row per code: name, destination, folder. Ten thousand table tents, each with its own destination, from a spreadsheet you already have.
REST API
Create a code as part of your own flow — one per order, per asset, per seat — and get back SVG and PNG URLs you can drop straight into a template.
Re-point in bulk
Season changed? Update the destinations for a whole folder in one call. The printed patterns never move.
Two hundred codes, still findable
Volume is where QR tools usually fall apart — a flat list of “qr-final-v3” is not a system.
Folders and tags, not one long list
A code belongs to one folder and any number of tags. Filter to “campaign + 2026” and you have the set you need without moving anything.
Deleting a folder never deletes codes
Tidying up should not take a printed code offline. Remove a folder and its codes become unfiled — still live, still scanning.
Files live in storage, not in the code
A PDF menu is uploaded once and pointed at by as many codes as you like. Upload the new version and every one of them updates.
Safe to hand to the rest of the team
A dynamic QR code is a live redirect. Handing that to five people needs the same care as handing over DNS.
Roles that mean something
Editors create and re-point codes. Viewers see scan numbers and nothing else. Only owners touch billing. Permissions are enforced on the server, not hidden in the UI.
Separate workspaces
Client work, internal codes and a personal side project stay in different workspaces with their own members, folders, storage and API keys.
Keys you can revoke
Issue a live key per integration and a test key for anywhere a value might leak. Revoking one takes effect immediately and leaves the others working.
Pause, do not delete
A code that should stop resolving can be paused. Nothing is destroyed, the scan history survives, and it comes back with one click.
Built for codes that outlive the campaign
The common thread is not industry — it is that the code gets printed on something you cannot cheaply reprint.
Restaurants & cafés
One code per table pointing at a menu that changes with the season — and a laminated card that survives the change.
Retail & packaging
Codes printed on packaging months before it ships, re-pointed from a launch page to a support page once the product is out.
Events & venues
Check-in, schedule and feedback codes per session, generated in bulk and measured individually.
Marketing teams
The same campaign across posters, print ads and packaging, with one code per placement so attribution is not guesswork.
Property & field services
A durable code on equipment or a listing that always resolves to the current document, however many times that document is revised.
Developers
Codes created programmatically as part of an existing flow, with SVG and PNG URLs returned ready to place in a template.
What makes QrZeo different
Any tool can draw a QR code — the drawing is a published standard. What differs is what happens in the months after it is printed.
| Capability | QrZeo | Typical QR generators |
|---|---|---|
| Static codes | Unlimited on every plan, including free | Often counted against the same quota |
| Re-pointing a printed code | Any dynamic code, any time, instantly | Usually the paywalled feature |
| Scan analytics | Daily trend, device and country, per code | Lifetime total only, or an upgrade |
| Bulk generation | CSV up to 10,000 rows plus a REST API | Manual, one code at a time |
| File hosting | Upload once, point many codes at it, swap freely | Link out and manage hosting yourself |
| Team permissions | Server-enforced roles, per workspace | One shared login |
Comparison reflects commonly observed limitations of free QR generators; specific products vary, and several paid competitors match parts of this list. See the full feature list.
