Static or Dynamic? Decide It Before Anything Is Printed

by KoloQR TeamBasics

Two white pill labels tilted on a green background, the upper one reading "Static" and the lower one reading "Dynamic", with a dark circle between them carrying the word "VS" in white.

A static QR code stores the destination inside the pattern. A dynamic QR code stores a short link on the provider's domain and redirects from there. Everything else - the cost, the analytics, the editability, the way each one fails - follows from that single difference. Choose dynamic when the destination is not settled, when scans must be counted per code, or when a standard or a client requires it. Choose static when the destination is fixed, and point it at a path on a domain you own if you want to keep the option of changing it later.

Key points

  • The only real difference is where the destination lives. A static QR code stores it in the pattern; a dynamic one stores a short link on the provider's domain and looks the destination up at scan time. Every other difference is a consequence of that one.
  • Dynamic buys two things worth paying for: the destination can be changed after printing, and scans can be counted per code, per place and per day. Both are real, and neither is available from a static code at any price.
  • Dynamic costs two things worth counting: a subscription for as long as the printed object is in service, and a hostname in your ink that belongs to somebody else. A $9-a-month plan behind a sign that stays up six years is $648 of redirect.
  • A dynamic code's payload is short, which makes the symbol physically coarser and more forgiving at the same printed size. This is the one technical advantage dynamic codes genuinely have, and it is usually left out of the sales argument in favour of editability.
  • The third option most comparisons skip: a static code pointed at a short path on a domain you own, redirecting to the real page. The destination stays editable, the pattern is permanent, and no account can lapse under it.
  • Decide by the object, not by the feature list. Long-lived print with a fixed destination wants static. Short-lived print in quantity, measured per code, is what a platform is for.

What the Two Words Actually Mean

A static QR code is a code whose destination is stored in the pattern itself, so no server sits between the scan and the page. Scan it and the phone reads characters straight out of the grid - a URL, a phone number, a Wi-Fi credential - and acts on them. Nothing is looked up, nothing is counted, and the code works on a phone with no connection to anything but the network it is about to open.

A dynamic QR code is a code that encodes a short link belonging to the provider, which redirects to wherever you currently point it. The pattern holds something like qr.example/aB3xK, the provider's server answers that request with a redirect, and the phone follows it to your page. The destination is a setting in an account rather than a property of the code.

Both are ordinary QR codes as far as the standard is concerned. There is no "dynamic" flag in ISO/IEC 18004, no special symbol type and nothing a camera does differently - the difference is entirely in what the encoded characters point at. This is why no scanner app can tell you which kind a code is, and why decoding one and reading the URL is the only reliable test.

The word that causes the trouble is "editable". A dynamic code is not editable; the pattern is as fixed as any other printed thing. What is editable is the row in the provider's database that the pattern's short link resolves to. That distinction is the whole subject of this page, because it is what determines who has to keep paying and what breaks when they stop.

Static vs Dynamic, Row by Row

Every row below follows from where the destination is stored. Read it as a list of consequences rather than as a feature comparison - there is no row here that a vendor could change by shipping something.

Static QR codeDynamic QR code
Where the destination is storedIn the printed patternIn the provider's account, behind a short link in the pattern
Change the destination after printingNoYes, while the account is active
Ongoing costNoneA subscription, for as long as the print is in service
Account needed to make oneNoYes
Scan analyticsNone from the code; a redirect on your own domain gives totalsPer code, usually with date, place and device
Characters in the patternThe whole destination, however long it isAround 20 to 25, whatever the destination
Module width at the same printed sizeNarrower as the URL growsWider, so more forgiving at distance
Scan limitsNoneWhatever the plan allows
If the provider shuts downNothing happensEvery printed copy stops resolving
Who owns the hostname in the inkYou, if you encoded your own addressThe provider
Works with no network at the moment of scanThe code decodes; the page still needs a networkNeither the redirect nor the page resolves
The last three rows are the ones that rarely appear on a vendor's comparison table, and they are the rows that decide the question for anything printed once and left in place for years.

Four Questions That Settle It

Answer these four in order and the decision usually makes itself before the fourth. They are deliberately about the printed object and the campaign rather than about the codes, because that is where all four answers actually come from.

  1. Is the destination settled? If the page does not exist yet, or the link is certain to move - a seasonal menu, an event site not yet built - a fixed pattern pointing at it is a liability. Choose dynamic, or a redirect on your own domain, and stop reading here.
  2. Do scans have to be counted per code? Twenty table tents each reporting separately, or a campaign attributed by city and device, needs a platform. If a single total from your web analytics is enough, this question does not push you anywhere.
  3. How long will the printed thing be in service, and how many are there? Multiply the monthly fee by the months. A subscription spread over 5,000 flyers is a few cents each and obviously worth it; the same subscription behind one sign above one door is the entire cost, carried indefinitely, for a link that has not changed since it went up.
  4. Who needs to own the address in year six? The pattern contains a hostname and that hostname cannot be edited on printed material. If the object outlives ordinary vendor relationships - a plaque, a shopfront, a vehicle - the name in the ink should be one you registered.

If the answers point in different directions, the third question is the tie-break, because it is the one that converts a preference into a number. What a dynamic QR code subscription actually buys runs that arithmetic against realistic service lives, with the vendors' own prices from July and August 2026.

Where a Dynamic Code Earns Its Subscription

Buy a dynamic platform when the destination is genuinely unknown at print time, when scans must be attributed per code, or when a standard or a client requires it. In those three cases a static code is not the cheaper option - it is the wrong tool, and the fee is part of the campaign budget rather than an alternative to it.

  • The destination will change, and the print will not. Ten thousand flyers for an event whose landing page is not built, or a menu that moves four times a year. Paying to keep re-pointing possible is a straightforward purchase.
  • The measurement is the point. Per-code, per-location, per-hour reporting is a platform feature. A redirect on your own domain gives you totals and nothing finer without building it yourself.
  • Something external requires it. GS1 Digital Link on packaging, password-protected destinations, team seats with an audit trail, or a client who expects a monthly report. No free static tool substitutes for any of them.
  • One code has to route people differently. Sending iOS to one app store and Android to another, or routing by country, happens at the redirect. A static code says one thing to everybody.

The Technical Advantage Nobody Sells

A dynamic code's payload is short, and a short payload produces a physically coarser symbol at the same printed size. Around 25 characters fits in a version 2 symbol at error correction level M - a 25 x 25 grid, so 1.00 mm modules on a 25 mm code. A 92-character tracking URL needs version 6, a 41 x 41 grid, and 0.61 mm modules at that same width. Module width is what a camera loses first at distance or in poor light, so the short link is genuinely the more reliable print.

That advantage belongs to short links rather than to rented ones. A path on your own domain is short too, and QR code capacity has the full tables for working out what your own URL costs in modules before anything is printed.

Where a Static Code Is the Better Buy

Choose static when the destination is fixed for the life of the printed material, when the object will outlive a subscription decision, or when nobody is going to read the analytics. That covers most printed QR codes, and it is the case the industry writes least about because there is nothing to sell alongside it.

  • Business cards, plaques, packaging with a permanent address. The destination has not changed in five years and will not. Encoding it directly removes every dependency at once.
  • Anything nobody will maintain. A code on a community noticeboard, a trailhead sign or a printed manual outlives the person who commissioned it. A static code keeps working with nobody minding it; a subscription does not.
  • Wi-Fi, phone, email and contact codes. These have no destination to redirect to - the payload is the content. A dynamic code adds a round trip through a server for something the phone can act on directly.
  • Anything scanned where the network is poor. A static code decodes offline, so a phone can capture a phone number or a Wi-Fi credential with no signal at all. A dynamic code needs the redirect to answer before anything happens.
  • Print runs where the fee outweighs the risk. One sign, one menu board, one window decal. The realistic cost of being wrong is a reprint; the cost of the subscription is every month for as long as it is up.

The Third Option Most Comparisons Leave Out

Point a static QR code at a short path on a domain you own - example.com/menu - and configure that path to redirect to the real destination. The printed pattern never changes, the destination stays editable in a hosting panel, and the arrangement survives changing generators, platforms and web hosts, because the only thing the ink commits you to is a name on your own registration.

This is not a workaround. It is the arrangement a dynamic platform would sell you if the custom domain were not the premium tier, and it answers the first question in the list above without answering the fourth one badly. Use a 302 rather than a 301 for a destination you intend to change: RFC 9110 section 15.4.2 states that a 301 response is heuristically cacheable, and browsers do cache them persistently.

What it does not give you is per-code attribution, conditional routing, or a dashboard - and it moves rather than removes the dependency, because a lapsed domain fails exactly as badly as a lapsed subscription. The six-step version, with the DNS and testing detail, is in the subscription piece.

How Each Kind Fails, Which Is the Part to Plan For

A static code fails when the page behind it dies or the print wears out. A dynamic code fails for both of those reasons plus three more: the plan lapses, the scan allowance is reached, or the provider retires the service. Choosing between them is partly choosing which list of failures you would rather be responsible for.

The dynamic failures are documented by the vendors themselves. Uniqode states that dynamic codes go inactive once a trial expires or a subscription is cancelled, while static codes keep working - the Uniqode comparison has the detail. Bitly states that deleting a link removes the QR codes attached to it permanently. Google retired its own URL shortener, which is the reminder that this is a strategy risk rather than a solvency one, and that a bigger vendor does not reduce it.

None of that makes the printed object look any different, which is the expensive part: a customer holding a phone in front of a lapsed code sees an error page carrying a company name they have never heard of, and concludes that the business is careless or closed. What stops working when a QR code "expires" separates the four causes and covers what to check when a printed code stops working.

The mitigation that costs nothing, whichever kind you print: a short readable URL beside the code. It rescues the run if the chain ever breaks, and it serves everyone whose camera does not cooperate - a QR code should be the fast path to the content, never the only path.

What KoloQR Makes, and What It Does Not

KoloQR, a free QR code generator with circular and custom-shaped QR codes, makes static codes and exports them as SVG, PDF, EPS or PNG with no account. The destination is encoded directly into the symbol, so nothing counts the scans, nothing can deactivate the code, and there is no plan to keep alive. The generator is on the homepage and needs no signup.

It follows that KoloQR cannot re-point a printed code or report on scans, and if either of those is what the job needs, a dynamic platform is the right purchase rather than a compromise. The QR Tiger comparison is the clearest example of that trade written out on this site: a subscription platform against a free static generator, with the cases each one wins named on both sides.

The recommendation this site actually makes is the one in the section above: a static code aimed at a path on a domain you own. It keeps the editability that people buy dynamic codes for, and it keeps the permanence that printed material needs, and the reason it is not the industry's default recommendation is that nobody can charge a monthly fee for it.

Make Your QR Code

Free, with no account and no watermark. Choose a shape, add a logo, check the contrast, and export SVG, PDF, EPS or PNG - a static code with no subscription behind it.

Generate QR Code

Questions? Answered

Where the destination is stored. A static code holds it inside the printed pattern, so the scan goes straight to it. A dynamic code holds a short link on the provider's domain, and the provider's server redirects the scan to whatever destination the account currently names. Everything else - cost, analytics, editability, expiry - follows from that.

Whichever matches how often the link changes. A menu URL that stays put works as a static code with nothing to maintain. A menu that moves seasonally wants an editable destination - either a dynamic code, or a static code pointed at yourdomain.com/menu with a redirect you control, which costs nothing per month.

They are worth it in three situations: the destination is not settled at print time, scans have to be counted per code, or a standard or client requires the platform. Outside those, you are paying monthly to keep a hostname resolving that could have been your own domain instead. Multiply the fee by the years the print stays up before deciding.

Not after printing. The pattern encodes the destination, and changing what the pattern says means generating a new code and reprinting everything that carries it. What you can do without reprinting is change what is served at the URL the static code already points to, which is why encoding a path on your own domain is worth doing at the outset.

Slightly, and only because the payload is shorter. Around 25 characters fits in a 25 x 25 grid, giving 1.00 mm modules on a 25 mm code, where a 92-character tracking URL needs a 41 x 41 grid and 0.61 mm modules at the same width. Wider modules survive distance and poor light better. A short URL on your own domain gets the same benefit.

Yes, always. The destination is a record in the provider's system, so there has to be a system and an account holding it. That is also the tell for a code you have been handed: if it was downloaded without any signup, it is almost certainly static.

Not from the code, but from the page. Point the code at a URL on your own site and your existing web analytics will count the visits, including a distinct path per printed placement if you create one. What you will not get is a scan separated from a click, or a breakdown by device and city without building it.

It depends on the provider, and the answer is worth finding in writing before printing. Uniqode states that dynamic codes go inactive when a subscription is cancelled while static codes keep working. Others pause scans at an allowance, or keep only the most recent codes active. Ask what happens on the day you stop paying, and take the answer from the documentation.

Static. The destination is encoded in the pattern, the file is exported as SVG, PDF, EPS or PNG, and no account is involved - so there is nothing to expire and nothing to cancel. It also means the destination cannot be changed after printing and scans are not counted, which is the trade a static generator makes.

Why KoloQR?

  • Create QR codes for websites, menus, Wi-Fi, PDFs, and business cards
  • Customize colors, logos, and unique shapes
  • Download high-quality PNG and SVG files
  • Built for both print and digital
Generate QR Code
A plain black QR code beside the same code restyled as a circle with brand colors