Static or dynamic? It depends on one question.
The question is whether you'll ever need to change where the code points after it's printed. Everything else follows from that.
Stores the final content or URL directly in the QR pattern.
Usually stores a short redirect URL controlled by a service, which can later be pointed somewhere else.
In practice, static fits when the destination itself is stable. Dynamic fits when you genuinely need to change the destination after printing or need scan analytics, and you accept relying on a third-party service to keep the redirect running.
| Static QR code | Dynamic QR code | |
|---|---|---|
| What the QR stores | The content itself, or the final URL | Usually a short redirect URL owned by a QR service |
| Can the destination change after printing? | Not the encoded content. A page at the same URL can still be updated | Often, by editing the redirect in the provider's dashboard |
| Needs a redirect service? | No | Yes |
| Scan analytics | None built in. The destination website can run its own analytics | May be available, depending on the provider and plan |
| Works if the provider or account disappears? | Yes. There's no provider in the middle | Not if the redirect stops forwarding |
| Typical cost | Usually free to generate | Varies: free tiers, trials or subscriptions, often with limits |
| Privacy | Scans go straight to the destination | Scans may pass through the provider, which can record them under its own policy |
| Expiry risk | No timer in the code. Only the destination can stop working | Depends on the provider, the account and the plan staying active |
| Best for | Stable URLs, WiFi, contacts, text and long-lived print | Destinations likely to change, and campaigns that need scan data |
| Common limitation | A changed URL means a new code | Ongoing reliance on a third-party service |
A static QR code holds its data directly in the pattern. What a phone reads is the content itself, for example:
Once generated, that encoded value is fixed. For a URL, though, only the address is fixed: the website at that address can still change while the URL stays the same. Frame creates static QR codes, generated in your browser.
A dynamic QR code generally contains a redirect URL controlled by a QR platform. When someone scans it, the phone opens the platform's link, and the platform forwards them to whatever destination is currently set:
Depending on the provider, that middle step may allow:
Not every service offers every feature, and plans differ in what's included.
Everything else in this comparison follows from one architectural fact: a static code contains its destination, while a dynamic code contains a pointer to a destination that someone else stores.
The address is inside the code, with no account or service in the middle.
The code holds abc123. The provider decides where abc123 leads, and can change it.
That middle hop is what makes editing and scan counting possible. It's also why a dynamic code depends on the provider for as long as the code is in use.
You can't change the content encoded in a printed static QR code. But if it holds a URL, you may be able to change what people see after scanning, as long as the URL stays the same.
The QR stores https://example.com/menu. You update the page at https://example.com/menu: new prices, new dishes, a new design. Every printed code opens the updated page.
The menu moves to https://example.com/new-menu. The old static code still opens https://example.com/menu, because that address is what it contains.
Updating the page behind a stable URL is ordinary website editing. It is not dynamic QR behaviour, because nothing about the code or its destination address changed.
Usually, yes. The printed pattern stays the same, but you can change where its redirect sends people, provided that:
Providers can also change their terms and features over time, so editability isn't something the code itself guarantees.
A static QR code has no built-in expiration timer. A code generated with Frame doesn't depend on Frame being online after you download it. What can stop working is the thing it points to:
Dynamic codes don't automatically expire, but they keep working only while the redirect provider keeps forwarding scans. Scans can stop reaching the destination if:
Whether and when any of this happens depends on the provider, so read its terms if the code needs to last.
The QR code itself records nothing, and there's no scan tracking built in. The website it opens can still use its own analytics.
The provider may log each scan before redirecting. Depending on the service, that may include scan counts, times, rough locations and device or browser types.
Frame does not provide scan analytics.
Indirectly. If the code opens a website you run, you can measure the visits that arrive from it:
?utm_source=posterThis measures activity at your destination, not every raw scan. Someone who scans but whose page never loads isn't counted, for example, whereas a redirect service sees the scan itself.
This is an architectural difference worth understanding, not a judgement about any particular service. With a static URL code, the phone goes directly to the destination. With a dynamic code, the scan may pass through the redirect provider first, and the provider can record it according to its own privacy policy. The destination site applies its own policy either way.
Many dynamic services run reliably for years, but fewer moving parts is one reason static codes suit long-lived materials whose destination URL is stable.
Static QR codes can be generated for free because there's nothing to host: the content is in the code. Frame's QR code generator is free and needs no account. Dynamic QR services pay for redirect hosting and analytics, so they often use free trials, free tiers, subscriptions, or limits on scans, edits and codes. Pricing and limits vary by provider.
That depends on what's encoded, not on the static or dynamic label:
Static is the natural fit whenever the encoded content won't need to change:
In each case, the content behind a stable address can evolve, while the code stays valid for as long as the address does.
Whether that's worth an ongoing service depends on how likely those changes really are, and on how much a reprint would cost you.
Static: the code opens restaurant.com/menu. The restaurant edits dishes and prices on that page whenever it likes, and no new code is needed.
Dynamic: the code opens a provider link that currently points to the menu. The owner can later point it at a different URL, such as a seasonal menu on another site.
The difference only matters if the menu's address itself will change. Make a static menu code with the Menu QR code generator.
Static: the code opens example.com/brochure.pdf. If your host lets you replace the file at the same URL, the code keeps working. If the new version gets a new URL, regenerate the code.
Dynamic: the redirect can be updated to point to a new file at a different address.
Make one with the PDF QR code generator.
Static vCard: the code contains the contact details themselves. A new phone number or job title means a new code.
Static profile link: a code that opens your profile page stays useful while you update that page at the same URL.
Dynamic: a redirect can be pointed to a different profile later. Make a contact card with the vCard QR code generator.
Printing a run of unique codes, such as one per table, product or ticket? The Batch QR code generator creates static codes too, so base each one on a URL you expect to keep.
A shortened URL encoded in a QR code isn't automatically dynamic. Two separate ideas are often confused:
A short link behaves like a dynamic code only if the short-link service lets you edit its destination later. Otherwise it's simply a static code holding a short URL that redirects to one fixed place. It still depends on the short-link service staying online.
Not inherently. QR density depends on how much data is encoded. Dynamic services often encode a short redirect URL, which can produce a less dense code than a very long direct URL. But a static code holding a short, normal URL can be just as simple, and the static or dynamic label doesn't change the pattern itself. See the QR code size guide for how density affects print size.
Neither type is automatically safer. A static URL code shows its real destination when decoded. A dynamic code shows the provider's redirect URL instead of the final address. Either way, people should check where a code leads before entering details. You can see exactly what a code contains with the QR code checker. It shows the decoded content, but it doesn't judge whether a link is safe.
| Situation | Static | Dynamic | Why |
|---|---|---|---|
| Need to change the destination after printing | Depends | Good fit | Static only works if you can update the page at the same URL. A redirect can be repointed to a new address |
| Need scan analytics | Possible | Good fit | Static relies on the destination's analytics. Providers can count scans directly |
| Stable website URL | Good fit | Usually unnecessary | The page can change while the address stays put |
| WiFi QR code | Good fit | Usually unnecessary | The credentials live in the code, with no web redirect involved |
| Contact or vCard | Good fit | Depends | Contact data is self-contained. A redirect only helps for profile links you expect to move |
| Long-term signage | Good fit | Depends | No service dependency for years, if the URL will stay valid |
| Temporary ad campaign | Possible | Good fit | Campaigns often need later redirects and scan data |
| Menu with a stable page URL | Good fit | Usually unnecessary | Edit the menu page, and the code keeps working |
| Packaging printed before the destination is final | Depends | Good fit | Static works if you reserve a stable URL you control. Otherwise a redirect gives flexibility |
Frame creates static QR codes. That means:
If you genuinely need to edit a destination after printing, or need provider-level scan analytics, that's a dynamic QR use case, and Frame doesn't currently offer it.
If a printed code stops working, the QR code not working guide helps you tell whether the problem is the printed code or its destination.
A static QR code stores the final content, such as a URL or WiFi details, directly in its pattern. A dynamic QR code usually stores a short redirect link run by a QR service, and the service decides where that link sends people, so the destination can often be changed later.
It's a QR code whose content is encoded directly in the pattern, such as a web address, WiFi login, contact card, text, email, phone number or event. Once generated, that content is fixed. Frame creates static QR codes.
It's a QR code that usually contains a redirect link controlled by a QR platform. Scans go to the platform first and are then forwarded to the current destination. Depending on the provider, you may be able to edit that destination and see scan statistics.
Not the content inside it. But if it holds a URL, you can keep updating the page at that same URL and the printed code keeps working. If the URL itself changes, you need a new code.
Usually you can change where the redirect sends people, as long as the provider keeps the redirect active and your account and plan allow editing. The printed pattern itself doesn't change.
No. A static QR code has no built-in expiry date, and a code made with Frame doesn't depend on Frame after you download it. It stops being useful only if what it points to stops working, such as a deleted page, a moved file or an expired link.
Not automatically, but they depend on the redirect provider. A closed account, an ended subscription, a deactivated redirect or a provider shutting down can stop scans reaching the destination. Check the provider's terms if the code needs to last.
Generating them usually is, because there's no redirect to host. Frame's static QR code generator is free and needs no account.
Often, though it varies by provider. Many offer free trials, free tiers with limits, or subscriptions, and some cap scans, edits or the number of codes.
The code itself can't. If it opens a website you run, that site's analytics, campaign parameters or server logs can measure the visits that arrive from it.
Often, because each scan passes through the provider's redirect first. Depending on the provider, that may include scan counts, times, rough locations and device types.
It depends on what's encoded. A static code with text, WiFi credentials or a contact card can be read offline. A static URL needs internet to load the website, and a typical dynamic code needs a connection to reach its redirect.
Yes, if the menu stays at the same web address. Change dishes, prices or photos on that page and the printed code keeps opening it. If the menu moves to a new address, generate a new code.
Yes, if your host lets you replace the file at the same URL. If the replacement gets a different URL, the old code still opens the old address, so you need a new code.
No. A short link only makes the content shorter. It works like a dynamic code only if the short-link service lets you change where that same short link points.
Not inherently. QR density depends on how much data is encoded. Dynamic codes often hold a short redirect link, but a static code with a short URL can be just as simple.
If the destination URL will stay the same, a static code avoids depending on a redirect service for years. If the destination is likely to change and reprinting is costly, a dynamic code may be easier to manage, as long as the provider lasts.
No. Frame creates static QR codes only. If you need to edit a destination after printing or need provider-level scan analytics, that's a dynamic QR use case Frame doesn't currently offer.
No. Frame's codes don't pass through any Frame server, so Frame never sees when or where they're scanned.
No. The content you enter is encoded directly in the QR code, so a scanned link goes straight to its destination without a Frame redirect.