What is a dynamic QR code, and when do you need one?
A dynamic QR code encodes a short link you can edit after printing and count scans on. How it differs from static, what it costs in 2026, and when to skip it.
Muzahid Maruf, FounderUpdated
On this page
- 01What a dynamic QR code is
- 02Dynamic vs static QR codes compared
- 03How a short link shrinks the code
- 04Static codes can be measured too
- 05What dynamic QR codes cost in October 2026
- 06Put the redirect on a domain you own
- 07When a static QR code is the better choice
- 08Watch for stickers over printed codes
- 09Dynamic QR codes in TrackRev
Explore with AI
Opens this article inside the chosen assistant with a ready-made prompt.
A dynamic QR code encodes a short web address that redirects to your real destination, so you can change where it points after printing and count each scan.
A static QR code encodes the destination itself: the pattern never changes and nothing records a scan.
Both look identical on a flyer. A typo in a static code on 10,000 flyers means reprinting all 10,000, while a dynamic code is fixed with an edit but depends on a service that stays paid and online.
Key takeaways
- A dynamic QR code encodes a short redirect URL, so the destination can change after printing and each scan can be counted.
- A short link keeps the grid small: at error correction level M an 87-character URL needs a 41 by 41 grid, while a 29-character short link needs 29 by 29.
- Dynamic codes are a subscription. Uniqode deactivates them on cancellation, and Bitly's Core plan, $10 billed annually, allows 5 destination changes a month.
- Use a 302 redirect on a domain you own, so edits reach returning visitors and you can switch providers without reprinting.
- Choose static for engraved or molded codes and for URLs that never move.
What a dynamic QR code is
A printed QR symbol cannot be edited. Whatever its modules hold on printing day is what every phone reads, under the rules of ISO/IEC 18004:2024, edition 4, published in August 2024.
A version-n symbol is 17 + 4n modules wide, so version 3 is 29 by 29. A static code holds the destination URL, such as https://example.com/spring-sale. A dynamic code holds a short URL on a redirect server, such as https://go.example.com/spring.
When someone scans the dynamic code, the phone opens the short URL. The server looks up the current destination for the slug spring, logs the scan and answers with a redirect.
Editing the destination changes one database row and leaves the printed symbol alone. A static code that encodes a tracked short link behaves as a dynamic one.
Check the redirect type
The Internet Engineering Task Force's RFC 9110 (June 2022) calls a 301 response heuristically cacheable in section 15.4.2, so a browser can keep sending a returning visitor to the previous destination after you change it.
Section 15.4.3 says a client that receives a 302 ought to keep using the original URL. A terminal shows which one a short link returns:
$ curl -sI https://go.example.com/spring
HTTP/2 302
location: https://example.com/spring-sale?utm_source=flyer&utm_medium=print&utm_campaign=spring26TrackRev's short links return a 302. Run the same command on a vendor's link before you print.
Dynamic vs static QR codes compared
| Static QR code | Dynamic QR code | |
|---|---|---|
| Data in the symbol | The destination URL | A short URL on a redirect server |
| Repoint a printed code | No, reprint | Yes, edit the redirect |
| Scan counts | None; only the destination page sees the visit | Per scan: time, device, rough location |
| Data retention | None | 30 days to 2 years on Bitly plans |
| Price | Free | Free tier or a paid subscription |
| If you stop paying | Keeps working | Can stop working |
| Grid at level M for 87 and 29 characters | 41 by 41 modules | 29 by 29 modules |
| Best for | Fixed pages and Wi-Fi logins | Print runs and anything measured |
How a short link shrinks the code
More data means a bigger grid, and the version number sets how many bytes fit.
| Version | Grid | Level L, 7% | Level M, 15% | Level Q, 25% | Level H, 30% |
|---|---|---|---|---|---|
| 2 | 25 by 25 | 32 | 26 | 20 | 14 |
| 3 | 29 by 29 | 53 | 42 | 32 | 24 |
| 4 | 33 by 33 | 78 | 62 | 46 | 34 |
| 5 | 37 by 37 | 106 | 84 | 60 | 44 |
| 6 | 41 by 41 | 134 | 106 | 74 | 58 |
| 9 | 53 by 53 | 230 | 180 | 130 | 98 |
Byte-mode capacity per ISO/IEC 18004, confirmed by encoding test strings with the open-source qrcode library. Each level recovers about the percentage shown.
A static code that carries its own tracking tags, https://example.com/spring-sale?utm_source=flyer&utm_medium=print&utm_campaign=spring26, runs to 87 characters. At level M that overflows version 5's 84 bytes and lands on version 6.
The 29-character short link https://go.example.com/spring overflows version 2's 26 bytes and lands on version 3. Printed 2 cm wide with a 4-module quiet zone on each side, the modules measure:
| Encoded URL | Characters | Level M grid | Level H grid | Module size, M and H |
|---|---|---|---|---|
| Static URL with 3 UTM tags | 87 | Version 6, 41 by 41 | Version 9, 53 by 53 | 0.41 mm and 0.33 mm |
| Dynamic short link | 29 | Version 3, 29 by 29 | Version 4, 33 by 33 | 0.54 mm and 0.49 mm |
Module size is 20 mm divided by the grid width plus 8 quiet-zone modules.
The short link's modules print 32% larger at level M and 49% larger at level H. Larger modules survive small prints and bad light better, so a short link helps most on packaging and stickers.
Static codes can be measured too
A static code gets analytics only through the page it opens. Google's guide lists 9 UTM parameters and says to always include 3: utm_source, utm_medium and utm_campaign.
Add those to the encoded URL and Google Analytics 4 reports the sessions under Traffic acquisition. Give each placement its own utm_content value, such as door and counter, to compare spots.
That fits one poster that sends people to your own site, and it costs nothing. It counts sessions, so a scan followed by a closed tab leaves no trace.
The tags also take 56 of the 87 characters in the example above and freeze into the print, so a moved landing page strands them. The UTM parameters guide covers naming.
What dynamic QR codes cost in October 2026
Vendors give static codes away and charge for the redirect. Bitly publishes the limits that matter most for printed codes:
| Bitly plan | Price per month | QR codes per month | Destination changes per month | Scan history kept |
|---|---|---|---|---|
| Bitly Free | $0 | 2 | None | Not listed |
| Bitly Core | $10, annual billing only | 5 | 5 | 30 days |
| Bitly Growth | $29 annual, $35 monthly | 10 | 20 | 120 days |
| Bitly Premium | $199 annual, $300 monthly | 200 | 110 | 1 year |
Prices from each vendor's pricing page, October 2026.
Core's 5 changes cover a weekly offer swap on one code (about 4 a month) but not on three codes (about 13).
Uniqode's dynamic codes start at $9 a month on annual billing only, with a 30-day money-back guarantee, and its FAQ lists a custom domain as a $2,000 per domain per year add-on on the Plus plan.
QR Code Generator Pro caps dynamic codes at 2 on Starter, 50 on Advanced and 250 on Professional, and Starter includes 10,000 tracked scans. Its euro prices load by script, so check them on its pricing page.
For link-level comparisons beyond QR, the Bitly alternatives guide covers six tools.
Cancelling can switch printed codes off
Uniqode's FAQ says cancelling makes your QR codes inactive, and its dynamic codes stop redirecting when the 14-day trial ends unless you upgrade. Ask every vendor before a print run: the paper outlasts the billing cycle.
Put the redirect on a domain you own
A code that encodes a vendor's domain works only while your account does. On your own subdomain, such as go.example.com/spring, it can move to another provider with a DNS change, if the new provider can recreate the slugs.
TrackRev supports custom tracking domains and encodes the branded URL once one is active; the branded short link guide covers the DNS setup.
I put anything printed in volume on a dynamic code on my own domain, and anything permanent or offline on a static one.
When a static QR code is the better choice
A Wi-Fi login has to be static. Android and iOS 11 and later read the network details straight from the image, according to the ZXing project's barcode contents guide:
WIFI:T:WPA;S:mynetwork;P:mypass;;That string is not a URL, so a redirect server has nothing to forward.
A static code also fits anything that must outlive a subscription, such as an engraved plaque or a molded part, and a URL on your own site that will not move; if the page does move, a server-side redirect keeps that URL alive.
TrackRev's free QR code generator makes static codes in your browser with no signup or watermark, exports PNG or SVG and switches to error correction level H (30%) when you add a logo.
The code encodes your link directly, so it never expires.
Watch for stickers over printed codes
The Federal Trade Commission's December 6, 2023 consumer alert notes scammers covering parking-meter QR codes with their own. A dynamic code is harder to vet at a glance because the scanned address is a short link.
In public places, print the short URL as text beside the code and inspect the spot now and then.
Dynamic QR codes in TrackRev
In TrackRev a campaign has one destination URL and a short link per channel.
Each link row has a QR icon that opens the designer with the link's URL filled in, so the printed code encodes the short link and each scan counts like any click, with device and location.
Edit the campaign's destination later and every link under it, QR code included, follows.
The QR code designer has six dot styles, a logo overlay up to 2 MB, and PNG exports at 256, 512, 1024 or 2048 pixels, or SVG.
The redirect is a 302 that adds the link's UTM parameters to the destination, so Google Analytics gets a source and medium without a long URL in the pixels, and device targeting can send iPhone and Android scans to different stores.
The free plan includes QR codes within its 50 links and 1,000 tracked events a month, and hides revenue figures.
Paid plans are Starter at $39, Growth at $99 and Scale at $199 a month (see pricing), and annual billing pays for 9 months to get 12.
On any of them, connect Stripe, Paddle, Polar or Lemon Squeezy and the same scans can be followed to payments; the QR code tracking to revenue post walks through that setup.
Pick a dedicated QR vendor when you want it to build the page behind the code; QR Code Generator Pro lists 22 QR code types. TrackRev's codes point at a URL you already have.
Pick Bitly if you need only a few codes a month and already pay for it.
Found this useful? Share it.
Frequently asked questions
- No. A printed symbol's data is fixed, and Uniqode's FAQ says a code's type cannot change after creation. Generate a new code that encodes a short link for the next print run.
- Only if someone sets an expiry. Bitly lists QR code expiration scheduling from its Growth plan up. TrackRev links take an expiry date or a click cap, with a fallback URL for late scans.
- Some plans cap it. Bitly lists unlimited clicks and scans on every plan, including Free. QR Code Generator Pro includes 10,000 tracked scans on Starter and unlimited scans on Advanced and Professional. Uniqode resets its scan limits annually.
- No. The phone needs a connection twice, once for the redirect server and once for the destination. A static code holding plain text or Wi-Fi details needs none, since the image holds all the data.
- TrackRev's generator page recommends at least 2 cm (0.8 in) wide for a code scanned at arm's length, and roughly 1 cm of code per metre of scanning distance for posters. Keep a clear margin of 4 modules on every side, and scan the final artwork with 2 or 3 different phones before the print run.
- Check five things: a 302 redirect, support for your own domain, what happens to printed codes if you cancel, any monthly limit on destination changes or scans, and SVG export for print.

Written by
Founder, TrackRev.io & Contant.io
Muzahid Maruf is the founder of TrackRev.io and Contant.io. He writes about marketing attribution, link tracking, and revenue analytics for SaaS teams.
Writes about Marketing attribution · Link tracking · Revenue analytics · SaaS growth
Stop guessing where your revenue comes from.
Set up TrackRev in about five minutes. The free plan covers 1,000 events a month, no card needed.
Start free