QR Code Basics

Types of QR Codes

"Type of QR code" actually covers two separate questions: what the code does when scanned (static vs. dynamic), and what kind of content it delivers (a URL, a contact card, Wi-Fi credentials, and so on). Choosing correctly on both axes matters more than most people expect — it affects whether you can fix a typo after printing, how large the code looks, and whether the scanning device needs an internet connection at all.

Static vs. dynamic QR codes

This is the most consequential decision when generating a code, because it can't be changed after the fact without regenerating a new code entirely.

  • Static QR codes encode the final data directly in the code itself — the URL, text, or contact info is baked into the module pattern at creation time. Scanning it doesn't touch any external server; the data is read straight off the code. This makes static codes simpler, free to generate indefinitely, and functional even with no internet connection on the scanning end for content like plain text or Wi-Fi credentials. The tradeoff: if the destination URL changes, or you find a typo after the code is already printed on 5,000 flyers, there's no fixing it. You have to reprint.
  • Dynamic QR codes encode a short redirect URL pointing to a service that then forwards the scanner to the real destination. Because the redirect target lives on a server rather than in the code, you can change where it points at any time — same printed code, new destination — without reprinting anything. Dynamic codes also make scan analytics possible (scan count, time, rough location) since each scan passes through the redirect service first. The tradeoffs: dynamic codes depend on that redirect service staying online indefinitely, they typically require an account with whichever tool generated them, and there's occasionally a small added delay from the redirect hop.

As a rule of thumb: use static for anything permanent and low-stakes — a Wi-Fi password on a home router, a vCard on a personal business card. Use dynamic for anything printed at scale, anything tied to a campaign that might change, or anywhere you actually want scan data.

Content types

Separately from static/dynamic, a QR code can encode several distinct categories of content, each following its own formatting standard so that scanning apps know how to handle the result:

  • URL. The most common type — opens a web page directly. Works with any URL scheme (https, ftp, etc.), though https is standard for anything user-facing.
  • vCard / contact card. Encodes a structured contact record (name, phone, email, company, etc.) using the vCard format, so scanning it offers to save the contact directly rather than opening a browser.
  • Wi-Fi credentials. Encodes network name, password, and encryption type in a standardized string, letting a phone join the network directly from the camera app without typing anything.
  • Plain text. Just displays the encoded text as-is — used for things like serial numbers, short messages, or verification codes.
  • Email. Encodes a mailto: link, sometimes with a pre-filled subject and body, opening the device's default mail client with a draft ready to send.
  • SMS. Encodes a phone number and optional pre-filled message text, opening the messaging app with a draft ready to send.
  • Geolocation. Encodes coordinates using the geo: URI scheme, opening the device's default maps app centered on that location.
  • Calendar event. Encodes an event in iCalendar (.ics) format — title, date, time, location — so scanning it offers to add the event directly to the calendar app.