Skip to main content
EZQR
Technical·

Static vs Dynamic QR Code: The Honest Difference (and the Cancellation Trap Most Posts Skip)

TL;DR

A **static QR code** encodes the destination URL directly into the visual pattern. Free, permanent, no vendor needed — but you cannot change the destination after printing, and there is no scan analytics. A **dynamic QR code** encodes a short redirect URL pointing to a vendor-hosted service that forwards each scan to whatever destination you set in a dashboard. You get editable destinations and analytics; you carry vendor dependency. Generate a free static QR at [EZQR](/) with no signup. Generate dynamic on [EZQR Max](/pricing) at $20/mo monthly — codes survive cancellation per published policy. The full cancellation-policy breakdown is in the [permanent QR generator audit](/blog/permanent-qr-code-generator-2026).

Key Takeaways

  • Static QR codes encode the destination URL directly in the black-and-white pattern. Dynamic QR codes encode a short redirect URL (like `ezqr.com/r/abc123`) that forwards to a destination you configure in a vendor dashboard. They are not competitors — they solve different problems.
  • Static is free forever on any tool, has zero vendor dependency, and lasts as long as the destination URL resolves. Dynamic costs $5-49/mo, depends on the vendor staying alive, but lets you change the destination after printing and gives you scan analytics.
  • The contrarian point most static-vs-dynamic posts skip: dynamic codes only survive your subscription cancellation if the vendor says they do. [Flowcode](https://www.flowcode.com/) deactivates dynamic codes 30 days after cancel. [EZQR](/) and [QR Tiger](https://www.qrcode-tiger.com/) Premium keep them redirecting. Check the policy before printing 5,000 anything.
  • Most production deployments use both. Static for permanent content (product catalog pages, vCards, Wi-Fi passwords, business cards). Dynamic for rotating content (campaigns, A/B tests, multi-URL routing, anything where the destination might change).
  • Pick dynamic only when you genuinely need editable destinations or scan analytics. For business cards, Wi-Fi signs, and permanent product URLs, static is cheaper, simpler, and truly permanent.

What "static" and "dynamic" actually mean for a QR code

You are picking between a static QR and a dynamic QR, and the two words are doing more work than they look like.

A static QR code encodes the destination URL directly into the visual pattern. If you print a static QR pointing at example.com/product/sku-1234, that full URL is literally encoded in the black-and-white modules. Anything scanning the code reads the URL out of the pattern itself and opens it. No server in the middle, no vendor lookup, no infrastructure. The QR is a printed copy of the URL in a machine-readable format.

A dynamic QR code encodes a short redirect URL — something like ezqr.com/r/abc123 or qrco.de/xyz — that points to a redirect service the vendor runs. When someone scans the code, their phone hits the redirect service, the service looks up which destination you have currently configured for abc123, and forwards the scan there. The destination is stored in the vendor's database, not in the printed code, so you can change it any time without reprinting.

The difference is not cosmetic. A static QR is permanent at the pattern level — the modules encode the URL forever, and any scanner anywhere will decode the same URL until the paper degrades. A dynamic QR is permanent at the pattern level too, but the destination is permanent only if the vendor keeps the redirect alive. That single distinction drives the entire cost, capability, and risk profile of each format.

Why dynamic QR codes exist at all

Static codes work fine for most use cases. So why does the dynamic-QR industry exist? Three reasons.

Reason 1: editable destinations. The marquee feature. If you print 10,000 packaging labels with a dynamic QR, and six months later your product page URL changes from /product/sku-1234 to /p/1234, you update the destination in the dashboard and every printed code now points at the new URL. With a static code, you reprint or you live with a dead code.

Reason 2: scan analytics. When every scan hits the vendor's redirect service, the vendor can log when, where (by IP), on what device, and from what referrer. You get a dashboard showing daily scan counts, top devices, top cities, and trend lines. Static codes have no such infrastructure — the scan goes directly to your destination, and the only analytics you get are whatever your destination web server happens to log.

Reason 3: shorter encoded URL means a denser, smaller, more print-resilient code. This one is underrated. A static QR pointing at https://example.com/campaigns/2026/spring-launch/utm_source=billboard?utm_medium=outdoor&utm_campaign=spring is encoding 100+ characters and requires a higher QR version with more modules. A dynamic QR pointing at ezqr.com/r/abc123 encodes ~20 characters and fits in a much smaller, denser symbol. The denser code reads cleaner at the same physical print size — which matters for billboards, packaging, and any small-format print. The QR error correction levels guide covers the capacity-versus-resilience math.

If you do not need any of the three, you do not need dynamic. The marketing pages for dynamic-QR generators usually frame dynamic as the upgrade. It is not an upgrade; it is a different tool with different trade-offs.

Capability comparison: what each format actually does

Here is the side-by-side that matters. We are not including features the marketing pages invent (like "premium tracking" or "advanced analytics") — only the things that change the engineering decision.

CapabilityStatic QRDynamic QR
Destination encoded inThe printed patternVendor redirect database
Editable after printNo (reprint required)Yes (update in dashboard)
Scan analyticsNo (rely on destination server logs)Yes (by-device, by-location, by-time)
CostFree forever (any tool)$5-49/mo depending on vendor and plan
Vendor dependencyNone after generationPermanent — needs redirect service alive
Survives vendor going out of businessYesNo (codes go dark if redirect dies)
Survives subscription cancellationN/A (no subscription)Vendor-policy-dependent — most do not
File formatPNG, SVG, PDF, EPSPNG, SVG, PDF, EPS
WatermarkVendor-dependent (EZQR: none)Vendor-dependent (most: free tier watermarks)
Max URL length encodedLimited by QR version (up to ~2,900 chars)Always short (~20 chars)
Best forPermanent destinations, contact info, Wi-FiCampaigns, A/B testing, analytics-required scans

The cost asymmetry: free forever vs $5-49/mo

Static QR codes are free. Always. Every tool that generates QR codes — EZQR free, QRCode Monkey, Chrome's built-in URL-to-QR feature, the qrcode-generator npm package — produces unlimited static codes at zero cost. There is no premium tier for static, because there is no ongoing infrastructure to fund. Once the code is generated and downloaded, the vendor is out of the loop.

Dynamic QR codes cost real money because they require a redirect service to stay running. Someone has to pay for the database that stores the destinations, the servers that handle the redirect traffic, the analytics pipeline, and the dashboard. Pricing varies by vendor, but the common tiers in mid-2026:

  • [EZQR Max](/pricing): $20/mo monthly billing, no annual commitment, codes survive cancellation
  • [QR Tiger](https://www.qrcode-tiger.com/) Premium: $37/mo annual ($444/year), codes survive cancellation
  • [Uniqode](https://www.uniqode.com/) Pro: $49/mo annual ($588/year), codes survive cancellation per current ToS
  • [Flowcode](https://www.flowcode.com/) Pro: ~$30/mo annual, codes deactivated 30 days after cancel
  • Beaconstac (legacy): replaced by Uniqode, pricing changed during rebrand

The sticker-price spread is roughly 2.5x between the cheapest credible option and the most expensive. But the actual cost decision is not the monthly fee — it is the annual lock-in versus monthly flexibility, plus what happens to your codes when you stop paying. Monthly billing at $20/mo means you can stop paying any month and re-subscribe later without losing your codes. Annual billing at $444/year locks you in for a year regardless of whether the campaign ends in month 2. The hidden-costs breakdown covers the full pricing-trap pattern.

The vendor-cancellation problem most static-vs-dynamic posts skip

This is the section every other comparison post leaves out. When you pick a dynamic QR vendor, you are not picking a tool — you are picking a vendor whose redirect service must stay alive forever for your printed codes to keep working. The day you cancel your subscription is the day the vendor's policy decides whether your printed assets are still functional.

We pulled the published cancellation and code-retention policies of the major dynamic-QR vendors in May 2026. The findings are in the permanent QR generator audit. The short version:

  • EZQR Max: codes keep redirecting indefinitely after cancel, per published policy
  • QR Tiger Premium: codes remain active after cancel
  • Uniqode (Beaconstac): codes remain active per current Terms of Service
  • Flowcode: dynamic codes deactivated 30 days after cancel
  • Bitly QR Generator: subject to retention policy (ambiguous)
  • QR Code Generator (qr-code-generator.com): deactivated on cancel per ToS
  • ME-QR: subject to retention period (ambiguous)

The practical consequence. If you print 10,000 packaging labels with a dynamic Flowcode, and your campaign ends a year later, you have 30 days from cancellation before every label goes dead. The labels you paid to print and ship become inventory pointing at nothing. The EZQR vs Flowcode breakdown covers the policy difference in detail; the subscription-traps guide covers the broader pattern.

The questions to ask any dynamic-QR vendor before printing more than a few hundred codes:

  • What happens to my codes if I cancel the subscription? Required answer: "codes remain active indefinitely." Anything conditional is a red flag.
  • What happens if I downgrade to a lower plan? Some vendors keep cancelled-account codes alive but deactivate codes that exceed the new plan's limits when you downgrade.
  • What is the vendor's history with policy changes? Search "[vendor] grandfathering" or "[vendor] price increase" complaints on Reddit. Vendors that have changed mid-contract for existing customers are at higher risk of doing it again.

Get the answers in writing — email support, a screenshot of the ToS clause — before committing to a print run. Fifteen minutes of verification beats reprinting 5,000 packages.

When static is the right answer

Static is correct more often than the dynamic-QR marketing pages will admit. The pattern: any time the destination is genuinely permanent and you do not need scan analytics, static is the right tool.

Product packaging pointing at a permanent catalog page. A consumer-goods brand printing 50,000 product labels with variant-specific URLs — the URLs are part of a stable catalog, the SKU page is not going away, the destination will not change. Static is the right answer: free, no vendor dependency, no expiration risk. Even on the safest dynamic vendor, you are paying for an editability feature you will never use.

Business cards. A vCard QR code encodes the contact information directly in the QR pattern — name, phone, email, organization. There is no URL to "change later." Static is the only sensible choice. Most business-card QR codes are static by design; making them dynamic adds vendor dependency for no benefit.

Wi-Fi sharing. A Wi-Fi QR code encodes the SSID and passphrase using the WIFI:S:network;P:password;; format. The data is the network credentials, not a URL — there is nothing to redirect to. Static is the only format that works. You cannot make a "dynamic Wi-Fi QR" because there is no destination URL to manage in a dashboard.

Conference badges, event tickets, wedding invitations with per-recipient URLs. The URL is per-recipient (attendee ID, ticket ID, guest ID) and does not change after printing. Static handles this fine. Some event-ticketing platforms use dynamic QRs for analytics, but the editability feature is unused.

Restaurant menu QRs pointing at a CMS page. A restaurant prints a static QR pointing at restaurant.com/menu. The menu content changes daily in the CMS — the URL does not change. Static is the right answer. The mistake some restaurants make is using a dynamic QR for the menu because someone told them "menus should be dynamic" — but if the URL stays the same, dynamic is paying for editability that is never used.

Any printed asset where you want zero ongoing vendor risk. Static codes have no failure mode tied to a third party. The only thing that can break a static code is the destination URL itself going away.

When dynamic is the right answer

Dynamic earns its complexity when the destination genuinely needs to change without reprinting, when you need scan analytics, or when you need multi-URL routing. The clear-cut cases:

Marketing campaigns with rotating destinations. A retail brand running a Q1 promo prints QR codes on in-store signage pointing at /promo/spring-2026. Q2 rolls around, the promo changes, the signage stays up. A dynamic QR lets you swap the destination from /promo/spring-2026 to /promo/summer-2026 without replacing the signage. Static would require reprinting.

A/B testing destinations. A marketing team wants to test whether scans convert better on a long-form product page or a short-form landing page. Dynamic lets you split traffic 50/50 between two destinations from a single printed code. Static cannot do this.

Scan analytics as a requirement. If the campaign brief includes "report scan counts by device, by city, by time of day," you need dynamic. Static codes do not have the redirect-service infrastructure to collect those metrics. The dashboard exists because the redirect service exists.

Print runs at scale where you need to track per-placement performance. A brand prints the same QR on 5 different formats (window cling, table tent, receipt, packaging, billboard) and wants to know which placement drives the most scans. Dynamic with placement-tagged URLs gives you the answer. Static would lump all scans into the same destination with no way to differentiate.

Link-in-bio and multi-URL routing. A multi-URL QR routes scans to different destinations based on device, language, or geography from a single printed code. This requires the redirect service to make the routing decision — it cannot be encoded in a static pattern. The best dynamic QR generator listicle covers vendor-by-vendor multi-URL support.

Long-form URL compression where print size matters. If your destination URL is genuinely long (hundreds of characters with UTM parameters and tracking tokens), a dynamic short URL produces a much smaller, denser QR code. For billboards, packaging, or any small-format print, the size difference matters.

If your use case is not one of these, you probably do not need dynamic. The temptation is to "future-proof by going dynamic." Most posts in this category recommend that. We do not, because future-proofing yourself into a vendor-subscription dependency is its own failure mode.

The hybrid pattern: most production deploys use both

A common pattern in real-world deployments is the hybrid. Large packaging programs, omnichannel marketing campaigns, and multi-location operations rarely pick one format and apply it everywhere. They pick per asset based on what that asset needs to do.

A consumer-goods brand might use static QRs on the product variant labels (the URLs are stable, the analytics are not needed at the variant level) and dynamic QRs on the master carton (campaign-specific, traceable to the carton lot, editable). A restaurant group might use static for the main menu QR (URL is restaurant.com/menu and never changes) and dynamic for the table-tent specials promotion (campaign-specific, rotates weekly). An events company might use static for permanent venue wayfinding signs and dynamic for per-event sponsor links.

The rule of thumb: any time you find yourself thinking "if I print this dynamic, I will never actually edit the destination," you are paying for a feature you will never use. Static is the answer. The reverse is also true: any time you find yourself thinking "we will probably need to change the URL or A/B test or pull analytics," dynamic is the answer and you should pick a vendor whose cancellation policy will not bite you.

This is why the most useful question is not "static or dynamic" — it is "for this specific asset, does the destination need to change, and do we need analytics?" If yes to either, dynamic. If no to both, static.

A use-case decision table

Here is the per-use-case recommendation. We are picking the format we would actually use for each, with the reasoning. Where the answer is "depends," we name the variable that decides.

Use caseRecommended formatReasoning
Business card with vCardStaticContact info, no URL, no destination change
Restaurant menu QR (CMS-driven)StaticURL stays `/menu`; content changes in the CMS
Restaurant promo / specials of the weekDynamicDestination rotates weekly
Product packaging (permanent catalog URL)StaticCatalog page is stable; no analytics need
Marketing campaign signage (in-store)DynamicCampaigns rotate; analytics required
Conference badges (attendee profile)StaticPer-attendee URL, no edit after print
Wedding invitations (RSVP page)StaticOne-time URL; no edit, no analytics need
Wi-Fi password signStatic (must be)Encodes WIFI: format, not a URL
Real estate listing flyerDynamicListing URL changes (sold, price drop, new photos)
Billboard with long UTM URLDynamicShort redirect URL produces denser, smaller QR
A/B test of two landing pagesDynamic (must be)Static cannot route to two destinations
Multi-language routing (auto-detect locale)Dynamic (must be)Routing logic lives in redirect service
Event ticket (signed token in QR)StaticToken is the data; no destination change
Permanent wayfinding signStaticDestination is fixed; no analytics need
Receipt with feedback surveyDynamicSurvey URL may change; per-receipt tracking helpful

How to pick a dynamic-QR vendor without getting burned

If you have decided dynamic is the right answer for your use case, the vendor choice matters more than the feature comparison. The same three questions from the cancellation-policy section apply here, with one addition for ongoing reliability.

Question 1: What happens on cancel? Already covered. Required answer: "codes remain active indefinitely." Anything conditional ("retention policy," "after a grace period," "subject to deactivation") is a disqualifier for production print.

Question 2: What happens on downgrade? Some vendors keep cancelled-account codes alive but deactivate codes that exceed plan limits when you downgrade. If you are on a 500-code plan and downgrade to a 100-code plan, the other 400 may go dark. Verify the downgrade policy separately from the cancellation policy.

Question 3: What is the policy-change history? Vendors that have changed pricing or cancellation policy mid-contract for existing customers are at higher risk of doing it again. The Beaconstac-to-Uniqode rebrand is the canonical example — long-time customers reported pricing changes without grandfathering. Search "[vendor] grandfathering" or "[vendor] policy change" on Reddit and Trustpilot before signing up.

Question 4: How is the redirect-service uptime? The dynamic code is only useful if the redirect service is up. Ask for the published uptime SLA. Look at the vendor's status page history. A vendor with no published status page and no uptime commitment is a vendor whose codes can go dark for hours during an outage with no recourse.

The EZQR vs QR Tiger comparison covers the policy contrast at the top end; the best QR code generators of 2026 roundup ranks vendors across all four dimensions.

EZQR's approach: static free, dynamic monthly, codes survive cancellation

We built EZQR around the cancellation-policy problem because it is the single most-ignored risk in the dynamic-QR market. The positioning, briefly.

Static codes are free, no signup required. Generate a URL QR code, a vCard QR, or a Wi-Fi QR at the EZQR homepage — no email, no account, no watermark, full SVG and PNG export. The static codes are yours forever; the file is what you generated, and we are out of the loop after the download. No subscription can deactivate a static QR generated this way, because there is no subscription in the loop.

Dynamic codes are on the [Max plan](/pricing) at $20/mo monthly billing. The published policy: codes keep redirecting indefinitely even after you cancel or downgrade. Monthly billing means you can stop paying at any time without forfeiting the codes you printed. The redirect infrastructure is funded by the active subscriber base, not by deactivating past customers' codes when they leave.

That policy is unusual in this market. Most dynamic-QR vendors fund their redirect infrastructure partly by deactivating cancelled accounts' codes, which lets them keep prices low at the cost of customer trust. We do not. The trade-off is that EZQR Max is priced at $20/mo monthly instead of $5/mo with a subscription trap. We think the trade-off is worth it for anyone printing more than a few dozen dynamic codes.

If you do not need editable destinations or scan analytics, do not pay for Max. The free static codes cover most use cases, and we will tell you that directly. The dynamic plan exists for the cases where you genuinely need it.

The "static codes are forever" overstatement

One honesty note. "Static codes are permanent" gets said a lot, including in this post. It is true at the pattern level — the black-and-white modules do not change, expire, or rely on any service. A static QR printed in 1995 still encodes the same data today, if you can find the print.

It is not true at the destination level. The QR code encodes the URL, not the content at the URL. If the destination URL stops resolving, the code still scans, but the scan lands on a 404 (or a hijacked domain, if the original owner let it lapse). Static is permanent at the QR-pattern level and only as permanent as your domain-and-page lifecycle at the destination level.

The practical implication: when you generate a static QR for production print, point it at a URL you control and intend to keep alive indefinitely. A URL on your own domain, on a stable path (/menu, /contact, /product/sku-1234) that you commit to keeping live. Avoid URL shorteners (which can deactivate if the shortener vendor goes away or the link is deleted). Avoid third-party platforms (which can change URL structures, get acquired, or shut down).

If you cannot guarantee the destination URL will resolve forever, neither static nor dynamic is permanent. The QR format is not the constraint — the URL lifecycle is. ISO/IEC 18004 is published by ISO and the encoding format is permanent. Your URL is not, unless you make it so.

The bottom line

Static and dynamic QR codes are not competitors. They are different tools for different jobs. Static encodes the destination in the pattern, costs nothing, has no vendor dependency, and works forever as long as the URL resolves. Dynamic encodes a redirect URL, costs $5-49/mo depending on vendor, gives you editable destinations and analytics, and stops working the day the vendor decides it should.

Use static for permanent destinations, contact information, Wi-Fi passwords, and any printed asset where you genuinely do not need to change the URL or measure scans. Use dynamic for campaigns, A/B testing, multi-URL routing, and analytics-required scans — and pick a vendor whose published cancellation policy keeps your codes alive after you stop paying. The permanent QR generator audit lists the vendors that pass that test and the ones that do not.

For the cases where static is enough, generate one free at the EZQR homepage — no signup. For the cases where dynamic is required, EZQR Max at $20/mo monthly billing keeps your codes redirecting indefinitely per published policy.

FAQ

What is the difference between a static and dynamic QR code?

A static QR code encodes the destination URL directly into the printed pattern — anything scanning the code reads the URL out of the pattern and opens it. A dynamic QR code encodes a short redirect URL pointing at a vendor-hosted service that forwards each scan to a destination you set in a dashboard. Static is free, permanent, and has no vendor dependency. Dynamic costs $5-49/mo, depends on the vendor staying alive, but lets you change the destination after printing and gives you scan analytics.

Are static QR codes free forever?

Yes. Static QR codes are free on every credible tool, including [EZQR free](/) and [QRCode Monkey](https://www.qrcode-monkey.com/) — no signup, no expiration, no watermark, no subscription. The reason: static codes have no ongoing infrastructure to maintain. Once the code is generated and downloaded, the vendor is out of the loop. The code works as long as the destination URL resolves.

Do dynamic QR codes stop working if I cancel my subscription?

Depends entirely on the vendor. [EZQR](/), [QR Tiger](https://www.qrcode-tiger.com/) Premium, and [Uniqode](https://www.uniqode.com/) keep dynamic codes redirecting indefinitely after cancellation per their published policies. [Flowcode](https://www.flowcode.com/) deactivates dynamic codes 30 days after cancel. Several other vendors apply a "retention policy" that may deactivate codes under specific conditions. The [permanent QR generator audit](/blog/permanent-qr-code-generator-2026) covers the policy-by-policy breakdown. Always verify the cancellation policy in writing before printing dynamic codes at scale.

Can I convert a static QR code into a dynamic one?

Not directly — the destination URL is baked into the static code's visual pattern, and changing it means generating a new code with a new pattern and reprinting. What you can do is generate a new dynamic QR pointing at the same destination and use that going forward. Some marketing pages claim "convert any static QR to dynamic" but the reality is they are generating a new dynamic code and asking you to reprint. The printed static code cannot be changed.

Which is better for a restaurant menu?

Depends on whether the URL changes or just the menu content. If the QR points at `restaurant.com/menu` and the menu content is managed in a CMS at that URL, static is the right answer — the URL is stable, the CMS handles the content changes, and you pay nothing per month. If the QR needs to point at different destinations (today's specials page, a campaign-specific promo URL), dynamic makes sense. Most restaurants do not need dynamic for the main menu QR — they need a stable URL and a CMS.

Do dynamic QR codes give better scan rates than static?

No. The scan rate depends on the printed code's readability, placement, lighting, and context — not on whether it is static or dynamic. Both formats scan identically once printed. The persistent myth that "dynamic codes scan better" usually comes from confusion between scan rate (how many scans a code gets) and analytics visibility (whether you can see those scans). Dynamic lets you see the scan count; it does not change whether the code is scannable. The [QR error correction guide](/blog/qr-code-error-correction-levels) covers the actual variables that affect scan reliability.

Is a free dynamic QR code generator worth using?

Usually no, with one caveat. Free dynamic QR tiers typically deactivate codes when the trial period ends, throttle scan analytics, or include vendor watermarks on the code. The printed code becomes worthless when the free tier expires. The one safe path: free dynamic tiers from vendors whose paid tier explicitly keeps cancelled-account codes alive, where you can downgrade from a paid trial to free without losing the codes. Most free dynamic offerings are trials in disguise. For a permanent dynamic code, expect to pay a monthly subscription. See the [subscription-traps guide](/blog/qr-code-subscription-traps-avoid) for the pattern.

Can I get scan analytics without using a dynamic QR code?

Partially. A static QR pointing at a URL you control gives you whatever analytics your destination web server records — typically referrer, user agent, and timestamp from server logs or Google Analytics. You can add UTM parameters to the static QR's destination URL and track scans as a campaign source in any analytics platform. What you cannot get from static is real-time scan-count dashboards, by-device breakdowns specifically for QR scans (versus other traffic), or geolocation by IP from the QR vendor. For most marketing reporting, UTM-tagged static codes plus Google Analytics is enough. For per-code dashboards, dynamic is required.

More From This Category

Related Industries

Related Guides

Related Tools

Written by

EZQR Editorial Team
EZQR Editorial Team

The EZQR editorial team writes practical guides on QR code strategy, print workflows, and how small businesses use scan-based technology. Posts are fact-checked against the ISO/IEC 18004 standard and updated when specs or market conditions change.

Ready to create your QR code?

No signup for static codes. Dynamic codes start at $5/mo. No watermarks, no expiry.

Generate a QR code free with EZQR