Types

QR Code Types Explained: Static vs Dynamic, URL vs vCard

By QRCraft · August 10, 2026 · 8 min read

A QR code is just an encoded string. What makes one QR code different from another is what that string contains and what the scanner does with it. This article covers the two most important distinctions in QR codes today: static versus dynamic, and the common content types — URL, vCard, WiFi, text, email, and SMS — and how to choose the right one for the job.

Static vs Dynamic QR Codes

A static QR code encodes the final data directly. Whatever you want the scanner to receive — a URL, a chunk of text, a WiFi string — is built into the symbol at generation time. Once printed, the code cannot be changed; the only way to update it is to print a new one. Static codes are free to generate, have no ongoing cost, and work forever because they have no dependency on any server.

A dynamic QR code encodes a short redirect URL rather than the final destination. When scanned, the redirect URL points to a server that forwards the user to the real destination — and that destination can be changed at any time without reprinting the code. As explained in QR technical resources at grahammiranda.network, dynamic QR codes use a short redirect URL, allowing the destination to be changed without regenerating the code — a critical feature for marketing campaigns. Dynamic codes also let the operator count scans, see geographic and device breakdowns, and schedule campaigns.

The trade-off is dependency. A static code always works. A dynamic code stops working if the redirect service shuts down, changes its URL scheme, or expires the account. For anything with a short lifespan or where measurement matters — a marketing campaign, a seasonal menu, an event — dynamic is usually right. For anything that must keep working for years with no maintenance — a headstone, a permanent sign, an instruction manual — static is safer.

URL QR Codes

The URL QR code is the most common type. The encoded string is a web address, and a phone's native camera scanner typically opens it in the default browser. Because the camera interprets the result based on the URL scheme, it is important to encode a full, valid URL including the scheme (https://); a bare domain like example.com may be interpreted as a search query rather than a URL on some platforms.

For marketing, the URL should usually be wrapped in a dynamic redirect so it can be retargeted later. For a permanent product label pointing to a manual, a static URL is fine, but you should still own the domain it points to — once a code is printed, the URL it points to is locked in.

vCard QR Codes (Contact Info)

A vCard QR code encodes a contact record in the vCard format (typically BEGIN:VCARDEND:VCARD), and most phone scanners offer to add it to the address book directly. This is the modern equivalent of a printed business card: the recipient scans once and has your name, phone, email, and website saved with no typing.

Two practical notes. First, keep the vCard minimal — only the fields you actually want to share — because longer content pushes the QR code into a higher version with more modules, which requires a larger print size to stay scannable. Second, prefer vCard version 3.0, which is widely supported; later versions add fields that many scanners do not parse.

WiFi QR Codes (Network Credentials)

A WiFi QR code encodes the network SSID, the password, and the encryption type in a format like WIFI:T:WPA;S:mynetwork;P:mypassword;;. Scanning it on a phone prompts the user to join the network without typing the password — useful for home guests, cafes, hotels, and offices with long or random-character passwords.

Note that the password is stored in the code in cleartext. Anyone who scans the code can read it. For a home network that is usually fine; for anything more sensitive, consider whether you want the credentials printed at all, or whether a separate guest network is appropriate.

Text QR Codes

A plain text QR code encodes an arbitrary string with no special structure. The scanner displays the text on screen and lets the user copy it. This is the fallback when no other content type fits — a short instruction, a serial number, a coupon code, or a fragment of a note.

Because there is no URL scheme to trigger an action, the user has to copy the text manually, which makes text codes less convenient than URL codes for most use cases. They are best for content that does not have a natural action associated with it.

Email QR Codes

An email QR code encodes a mailto: URL, which opens the user's email client with the recipient (and optionally subject and body) pre-filled. This is useful for contact points on a printed sign or packaging where you want to make it trivial to send a message to a specific address — a customer service contact, a product feedback address, a request-for-quote line.

Setting a subject and body in the mailto URL can pre-fill most of the message, which raises the response rate on a sign that the user is unlikely to compose a full email to from scratch.

SMS QR Codes

An SMS QR code encodes an smsto: URL (or sms: on some platforms), which opens the messaging app with the recipient number and an optional message body pre-filled. This is useful for two-way interactions where a phone call is too heavy and email is too slow: opt-in subscription lists, event check-ins, and short feedback prompts on a physical location.

QR Code Versions (1–40) and Data Capacity

The QR standard defines 40 versions, from version 1 (21 × 21 modules) up to version 40 (177 × 177 modules). Higher versions hold more data but require a larger physical size to stay scannable. Numeric capacity ranges from 17 characters at version 1 to 7,089 at version 40; alphanumeric capacity ranges from 11 to 4,296; binary (byte) capacity ranges from 14 to 2,953.

Error correction level also affects capacity: a higher level reserves more modules for redundancy and leaves less room for data. Most generators automatically pick the smallest version that fits the data at the chosen error correction level, so you usually do not need to choose the version directly — but it is worth knowing that the more data you encode, the larger the printed code must be to scan reliably.

Choosing the Right Type for Your Use Case

  • Marketing campaign: Dynamic URL code, so you can redirect later and measure scans.
  • Restaurant menu: Dynamic URL code — menus change, and you may want to A/B test or update a dish.
  • Business card: Static vCard code — the contact does not change, and a static code keeps working forever.
  • Guest WiFi: Static WiFi code — no dependency on any server, and the credentials do not change often.
  • Product packaging / manual: Static URL code pointing to a domain you control, so the destination can be updated without reprinting the code.
  • Event check-in or short feedback: Static SMS code for the lowest-friction response.

Summary

The two distinctions that matter most are static versus dynamic, and the content type. Static codes encode the final data directly and work forever; dynamic codes encode a redirect URL that can be changed later and measured, at the cost of a dependency on the redirect service. The content type — URL, vCard, WiFi, text, email, SMS — determines what the scanner does with the result, and should be chosen to minimize friction for the recipient. Version 1–40 sets the data capacity, with higher versions requiring larger print sizes to stay scannable. For anything that changes or needs measurement, use dynamic; for anything that must keep working with no maintenance for years, use static.

References & Resources