On this page: How to decide · Types that work offline · Full reference · Common mistakes
How to decide in one question
Ask what the person scanning should end up with. Everything else follows:
- On a web page? Use a link. It is the most flexible type, because the page can do anything — show a menu, take a booking, play a video.
- Connected to your Wi-Fi? Use Wi-Fi. It saves them typing a password.
- In their contacts? Use a contact card.
- Composing a message to you? Use email, SMS or WhatsApp.
- Calling you? Use phone.
- Navigating somewhere? Use location.
- With an appointment in their calendar? Use a calendar event.
- Paying you in Bitcoin? Use the Bitcoin type.
- Reading a short piece of text, nothing more? Use plain text.
The practical default for almost anything consumer-facing is a link, because it lets you change what happens without reprinting — assuming the page changes, not the URL. That is the honest distinction: a static code's URL is fixed, but the page behind it is yours to edit freely.
Types that work with no internet connection
This is the most useful distinction when choosing, and the one least often explained.
Every QR code is just data in a pattern. Whether scanning it requires a network depends entirely on what the data asks the phone to do:
| Type | Needs internet? | Notes |
|---|---|---|
| Wi-Fi | No | Joins the network directly. Perfect for venues with no signal. |
| Contact card | No | Saves to the phone's address book locally. |
| Plain text | No | Displays the text. Works in aeroplane mode. |
| Phone call | No | Starts the dialler with the number ready. |
| SMS | No (needs mobile signal) | Drafts the message; sending then needs a signal. |
| Calendar event | No | Adds the event locally. |
| Bitcoin | No to read, yes to send | The wallet needs a connection to broadcast a payment. |
| Location | Usually yes | Most map apps need data; offline maps may work. |
| Yes | Opens a wa.me link, so it needs a connection. | |
| No to draft, yes to send | A mailto link opens a draft; sending needs a connection. | |
| Website link | Yes | The page has to be fetched. |
That table explains why Wi-Fi and contact codes are the most robust choices for physical, public spaces. A guest standing in a basement bar with no signal can still join your network and save your details, because neither action needs the internet.
Full reference
Website link
Best for: anything that should open a web page — menus, booking pages,
campaigns, instructions, social profiles.
Watch out for: long URLs. They increase the module count, which needs a larger
print size. Shorten tracking-heavy links before printing. See the
size guide.
Plain text
Best for: a short instruction, a coupon code, a serial number, a puzzle solution,
a note that must survive without any connection.
Watch out for: there is no formatting and no clickable action. For anything
longer than a couple of sentences, a link is a better experience.
Wi-Fi network
Best for: cafes, restaurants, guest rooms, offices, waiting rooms, event stands.
Watch out for: the code contains your password in readable form, so treat it as
an invitation. Put guest access on a separate guest network rather than the one your till or
fileshare sits on. Full detail in the
Wi-Fi guide.
Contact card (vCard)
Best for: business cards, conference badges, email signatures, shop fronts where
people want to save your number.
Watch out for: density. Every extra field makes the grid bigger and the modules
smaller. Name, one phone and one email is ideal; a full postal address plus two numbers plus a
note is too much for a card-sized print. See the
contact card guide.
Best for: feedback forms, support addresses, mailing list sign-ups, a specific
department's inbox.
Watch out for: the mail app must already be configured on the device, or nothing
happens. Some apps ignore the pre-filled subject or body, so never rely on the body alone to
convey something essential.
Phone call
Best for: urgent or high-intent contact — taxi firms, support lines, service
desks, a tradesperson's van.
Watch out for: include the country code, or an international visitor's phone
will try the number domestically.
SMS
Best for: text-to-join campaigns, competition entries, quick RSVPs, appointment
confirmations.
Watch out for: the pre-written body appears as a draft the user can edit. On some
devices it will not be pre-filled at all, so design the campaign to work without it.
Best for: businesses that genuinely handle enquiries on WhatsApp, order lines,
and markets where WhatsApp is the default messaging channel.
Watch out for: it needs a data connection and the WhatsApp app installed. It also
creates a wa.me link, so it is really a specialised link type.
Location
Best for: meeting points, trail markers, event venues, a pop-up stand in a large
space, a delivery drop-off.
Watch out for: most map apps need a connection to load map tiles. For somewhere
with poor signal, it is better to print the coordinates as text underneath as well.
Calendar event
Best for: conferences, weddings, showings, classes, webinars, anything with a
date and time people must remember.
Watch out for: time zones. The generated event carries a local time without
zone information, so a visitor in another country may see the wrong hour. State the time zone in
the description.
Bitcoin
Best for: accepting donations or payment at a market stall, printed invoices,
tip jars.
Watch out for: this is the one type where an error is financially irreversible.
Test by scanning into your own wallet and confirming the full address matches character by
character before printing. Never print a payment code without this check.
Common mistakes
- Using a link when the data could be local. A Wi-Fi password behind a link needs a connection to fetch a page that then tells you the password. Sending a Wi-Fi type code gives the phone the credential directly and works offline.
- Putting everything into a contact card. Fewer fields genuinely means better scanning. You cannot have a reliable 2 cm code and a full curriculum vitae.
- Assuming a link code can be redirected. A static link code's URL is fixed forever. You can edit the page it points to, but not the URL. If you need to change the destination itself, that requires a dynamic code with a subscription — read the static versus dynamic comparison before paying for one.
- Using a link for a short fixed message. A plain text code carries the message itself, works with no signal, and produces a simpler, easier-to-scan pattern.
- Forgetting the country code on phone, SMS and WhatsApp. All three need it for international use.
Related reading
- Why QR codes fail to scan — diagnose a code that already exists.
- How big should a QR code be? — sizes that match your payload.
- Security and privacy — what each type reveals.