What is a static QR code? It permanently encodes its destination — it cannot be edited or tracked. A **dynamic QR code** stores a short link that you can redirect at any time and read scan analytics from (qr code dynamic vs static, in one line). The QR code standard (ISO/IEC 18004:2024) defines the encoding; DENSO WAVE invented the format in 1994 for Toyota’s production line. By 2022, 89 million US smartphone users had scanned a QR code — up 26% from 2020 (Statista/eMarketer). Static is free and eternal; dynamic is measurable — and survives only while its redirect service does. Here is the full trade-off.
What is a static QR code?
A static QR code is the pattern itself. The data — a URL, plain text, a WiFi credential (per the MECARD/WPA format), or a contact card (vCard 4.0, RFC 6350) — is encoded directly into the black and white squares following ISO/IEC 18004. There is no server, no database, no account: scanning decodes the payload on the device in under 200 milliseconds, and nothing needs to stay online for the code to work.
A Version 40 QR code can store up to 4,296 alphanumeric characters or 7,089 numeric digits. Because the payload is fixed at generation time, a static code cannot be edited. If the URL changes, you print a new code. You can make a real one right now with the free static generator, including a custom logo, colours, and PNG or SVG export — no signup, no watermark, no expiry.
What is a dynamic QR code?
A dynamic QR code does not contain your final destination. The pattern stores a short redirect ID (for example `api.qrpress.in/r/xyz`) that points at a server you control. When someone scans, the server looks up the current destination — which you can change at any time from a dashboard — and forwards the scan there, counting the visit as it goes.
That indirection buys two things: **editable destinations** (update a link, menu, or offer without reprinting the code) and **scan analytics** (counts, device types, countries, and over-time trends). It costs a dependency: the redirect service must keep resolving or the printed code goes dark.
QRPress dynamic codes are free with an account — no limits on the number of codes, no caps on total scans, and no usage tiers that expire them. You can even point a dynamic code at your iOS or Android app so scans open the app directly.
Static vs dynamic: side-by-side
| Feature | Static QR code | Dynamic QR code |
|---|---|---|
| Cost | Free, forever | Free at QRPress (account required) |
| Lifespan | Permanent — the pattern is the data | Permanent while the redirect service resolves |
| Edit destination | No — regenerate and reprint | Yes, anytime from the dashboard |
| Scan analytics | No | Yes — counts, device, country, over time |
| Needs a server | No | Yes |
| Print use | Best for permanent signage, packaging, menus | Best for campaigns you may redirect |
| Account required | No | Yes (free) |
When to use static
Use static when the destination is permanent and you do not need to count scans: printed menus, packaging, business cards, signage, and anything embossed or laser-engraved. Static generation itself does not require server-side processing of the encoded payload — the data lives in the image, so the QR pattern alone cannot be tracked or shut down by a redirect service.
The practical rule: if you cannot imagine changing the link this year, go static. You avoid the recurring-cost and service-lock-in risk entirely.
When to use dynamic
Use dynamic when the destination might move or you need scan data: marketing campaigns, seasonal offers, changing menus, rental/inventory items, or any placement where per-channel scan counts change a decision. The ability to swap the target without repaying a printer is the whole point.
For campaigns, pair the dynamic code with an analytics view so you can tell which poster, window, or package drove scans — then close the loop by pointing the code at your best-converting page.
How to tell if your existing code is static or dynamic
Scan the code with any phone camera, then inspect where it went:
- If the scan resolves straight to the final page with no intermediate redirect, the code is almost certainly static.
- If the link chain passes through a third-party short-link domain (a `qr.*`, `s.*`, or vendor service), it is dynamic — the pattern points at a redirect you do not fully control.
- Most dynamic-code vendors tell you on their pricing page; static-only tools have no such section at all.
Unknown link chains are a security risk. If you did not create the code and cannot verify its redirect target, do not scan it.
Common myths
- “Dynamic codes expire.” The pattern never expires — it can be scanned forever. What dies is the redirect service: cancel the subscription and the code stops resolving.
- “Static codes can be tracked.” Only if the destination itself runs analytics. The QR pattern alone reports nothing.
- “Dynamic means better.” Dynamic is better only when you need redirection or measurement. For permanent print, static has strictly less failure surface.
