← Back to Resources
Technical Guide

Dynamic vs. Static QR Codes

Before you generate a QR code for your business, you should know the difference. It affects cost, privacy, and whether your printed codes can expire.

By Kerron Gordon, IT Instructor & Network Technician

All QR codes look similar on paper, but the way they store and deliver data is fundamentally different. Choosing the wrong type can result in broken codes after your service subscription lapses, unexpected monthly fees, or a situation where every scan you receive is being logged by a third-party vendor you didn't fully account for. Here's what you actually need to know before committing to either format.

How static QR codes work

A static QR code encodes your actual data directly into the image's module pattern — the grid of black and white squares. If you generate a static code for https://example.com, those characters are literally embedded in the matrix as binary data. The same is true for a vCard QR code — the image itself contains your name, phone number, email address, and any other fields you added.

When a phone camera scans a static code, it reads the light and dark pattern, decodes the binary data using the QR standard (ISO/IEC 18004), and acts on whatever it finds — opening a URL, adding a contact, connecting to WiFi. No server is involved. No request is made to any external system. The code works the same whether you're online or offline, and it will continue working indefinitely regardless of who made it or whether any business relationship persists.

The tradeoff is immutability. Once a static code is generated and printed, the data inside it cannot change. If you print 5,000 business cards and then change your phone number, the QR codes on every single one of those cards are now pointing to incorrect data. The cards have to be reprinted.

How dynamic QR codes work

A dynamic QR code doesn't store your actual destination. It stores a short redirect URL — something like qr-service.com/x72b — that points to a server operated by whatever QR platform you used to generate it. When someone scans the code, this is what happens:

  1. The phone reads the short redirect URL from the QR code.
  2. The phone makes an HTTP request to the vendor's server.
  3. The vendor's server looks up what the current destination for that code is.
  4. The server logs the scan (timestamp, device type, rough location if available).
  5. The server responds with a redirect to your actual destination.
  6. The phone follows the redirect and loads your content.

This architecture is what makes dynamic codes editable — you change the destination URL in the vendor's dashboard, and the next scan goes somewhere new without the printed code needing to change. It's also what makes them trackable: since every scan goes through the vendor's server first, the vendor can count scans, identify device types, and log location data.

The real cost of dynamic codes

Dynamic QR code services are almost universally subscription-based. Common pricing structures in the market include per-code fees ($5–$15/month per active code), tiered plans based on scan volume, and flat-rate plans that include a set number of codes. A single dynamic code for a business card costs roughly $60–$180 per year to keep alive.

The more significant cost is what happens if you stop paying. The redirect URL encoded in your printed code still points to the vendor's server. If your subscription lapses, that server either stops responding or redirects to an error page. Every card, flyer, poster, or product label you've ever printed with that code now shows a dead or broken destination to anyone who scans it. Unlike a static code — which works forever because the data lives in the image — a dynamic code is only as permanent as your subscription.

Privacy implications

Every scan of a dynamic QR code passes through a vendor's server. That server logs the request. Depending on the vendor's data practices and jurisdiction, that log may include:

  • Timestamp of the scan
  • User agent (browser and device type)
  • IP address (which can be geolocated to city level)
  • Referrer data in some configurations

For a business running a marketing campaign that genuinely needs scan analytics, this data has real value. For individuals sharing a personal contact card or a home WiFi password, it means a third-party company is building a log of every time someone scans your code, including when and roughly where. That's a meaningful privacy tradeoff that many people making QR codes for personal use don't consider.

Static codes route no data through any third party. There is nothing to log because no server is involved in the scan.

Static

  • Never expires — data is in the image
  • No subscription needed to keep it working
  • No middleman tracking on scans
  • Works offline
  • Free to generate

Limitation: Can't be edited after printing; denser codes need larger print size; no built-in scan analytics.

Dynamic

  • Destination editable without reprinting
  • Built-in scan analytics
  • Simpler, less dense image pattern
  • Easy to redirect to seasonal content

Limitation: Monthly subscription required; third-party tracks every scan; codes break if you cancel; useless for offline data types like WiFi credentials.

When dynamic codes genuinely make sense

There are real use cases where the subscription cost and tracking tradeoff is worthwhile.

High-volume print campaigns with changing destinations. If you're a retailer printing 50,000 product inserts with a QR code that needs to point to this season's promotion, being able to update the destination URL without reprinting the inserts has real economic value. The subscription fee is trivial compared to a reprint run.

Campaigns where scan analytics are the point. If your marketing team needs to report on which physical materials drove the most digital engagement, dynamic codes with UTM-tagged destinations and vendor-side scan counts give you a clean dataset. You can achieve something similar with static codes and UTM parameters tracked in Google Analytics, but it requires more setup.

Short-lived campaigns. Event signage, temporary promotions, and pop-up retail materials that will be discarded when the event ends don't have the long-term cost problem. A short subscription for a short-lived campaign is a reasonable tradeoff.

When static codes are clearly the right choice

For personal use, permanent business materials, and any data type that doesn't involve a URL, static codes are almost always the better option. WiFi QR codes cannot be dynamic — the WiFi credential format is processed by the OS directly, not via a browser, so a redirect URL would simply fail. The same applies to vCard QR codes: the contact data needs to be directly in the image for the native Contacts app to pick it up.

Business cards printed with static QR codes will work a decade from now without any ongoing cost. That's the right choice for most professional networking materials.

💡

GetEasyQR only generates static codes

Sharing a contact card, a WiFi password, or a website link should be free and private. We don't think you should pay a monthly fee to keep a printed code working. All codes generated here are static, run entirely in your browser, and send no data to any server.

Frequently asked questions

Related guides