Static and dynamic QR codes look identical when printed. They operate through completely different mechanisms with different implications for editability, analytics, pixel density, and cost.
A static QR code is a self-contained data matrix. Every character of your destination URL is encoded directly into the arrangement of black and white modules that form the QR pattern. When a camera scans the code, it reads the pattern and extracts the encoded data without contacting any server.
The QR standard ISO 18004 defines four error correction levels: L at 7% data recovery, M at 15%, Q at 25%, and H at 30%. Higher error correction adds redundant modules to the pattern, allowing the code to remain scannable when partially damaged, but also increasing visual complexity.
Static codes have two defining characteristics: they cannot be edited after generation because the pattern is the data, and they require no internet connection to scan. They work permanently with no server dependency. This makes them ideal for WiFi credentials, vCard contact information, and any use case where the destination will never change.
A dynamic QR code encodes a short URL that points to a redirect record on the generator's server. The QR might encode something like trulyfreeqr.link/r/xK7p2 regardless of where the actual destination is. When a user scans the code, their device sends an HTTP GET request to that short URL. The server looks up the short ID in its database or cache, retrieves the destination URL, and returns an HTTP 301 redirect. The user arrives at the actual destination.
Because the encoded URL is always the same short URL, the QR pattern never changes. You can update the destination from your dashboard without reprinting anything. The redirect intercept also enables analytics: before returning the redirect, the server logs the timestamp, User-Agent for device and OS, and IP geolocation.
The key tradeoff is server dependency. A dynamic QR code works only as long as the provider keeps the redirect server running and the redirect record active. This is why subscription-based generators can deactivate your code: they control the redirect record in their database.
The redirect lookup is the only moment between a user scanning a dynamic QR code and arriving at the destination. There are two common architectures. Database lookup queries PostgreSQL or MySQL for the redirect record: 5 to 20 milliseconds under low load, climbing to 200ms or more under high concurrent load. In-memory cache lookup uses Redis, completing in under 1 millisecond regardless of concurrent load because memory access does not queue like disk-based queries.
Truly Free QR uses a Redis cache layer on dedicated VPS infrastructure to guarantee sub-5ms redirect performance. Shared serverless functions used by most free tiers do not provide this guarantee and are subject to cold-start delays of 100ms or more.
The infrastructure cost of hosting a dynamic QR redirect is extremely low. A short URL lookup from a Redis cache requires approximately 1KB of data transfer and sub-millisecond compute time. At current cloud pricing, hosting one million redirect requests costs roughly 10 to 50 cents depending on provider and region.
The 111 to 180 dollar annual subscription charged by major QR generators is not a reflection of infrastructure costs. It is a reflection of what the market will bear when users are locked in by printed materials. Ad-supported generators like Truly Free QR cover infrastructure costs through advertising revenue. A page generating 100,000 monthly visits produces enough AdSense revenue to cover VPS hosting, Redis cache, database storage, and bandwidth for millions of redirects. The economics work because advertising revenue scales with users while infrastructure costs scale with redirects, and advertising revenue per user significantly exceeds the marginal redirect cost per user.
No account. No trial. No subscription. Both types are permanently free.
Create Free QR Code