How-to

A QR code that saves a contact.

Encoding contact details straight into a QR code works, right up until the code gets too dense to scan or the phone decides not to open it. Here is the version that holds up, with the four codes that show why.

A vCard QR code carries your contact details inside the code itself, so scanning it offers to save you without loading a web page. That is its strength and its limit: everything must fit, and the more you add the denser and more fragile the code becomes. This covers what to include, what to leave out, why a link is often the better choice, and how to make either one free.

By Cardr · Published 4 August 2026 · 6 min read

01

What is actually inside the code.

Not a link. The contact card itself, as text.

A vCard QR code encodes a small text document in the vCard format, the same format your phone uses when you share a contact. Name, phone, email, company, title and a website, wrapped in a few lines of markup. The phone recognises it and offers to add the contact.

Because the data is inside the code, it works with no internet connection at all. Nothing is fetched. That is the genuine advantage and it is the reason to use one.

It is also the reason it breaks. A QR code holds a fixed amount of data per grid size, so the more characters you cram in, the bigger the grid has to get — and at a fixed printed size, a bigger grid means a smaller black square. Here is the same person, encoded four ways.

  • A link cardr.co/jordanhale
    Characters
    27
    Grid
    29×29
    Square, printed 20mm
    0.69mm
  • Lean vCard Name, mobile, email, company, title
    Characters
    168
    Grid
    53×53
    Square, printed 20mm
    0.38mm
  • Plus an address And a website
    Characters
    304
    Grid
    69×69
    Square, printed 20mm
    0.29mm
  • Everything Second number, second email, a note, a social handle
    Characters
    531
    Grid
    89×89
    Square, printed 20mm
    0.22mm
The same person, encoded four ways, at error-correction level M. The grid size and character count under each code are read back from the encoder, not typed in. The final column is the arithmetic: at a 20mm printed size, the grid size is the only thing deciding how big each black square ends up.

Nothing above is an illustration. Each code was generated by the same encoder our free tool uses, and the grid size and character count under each one are read back from the encoder rather than typed in.

The last one is the interesting failure. Adding an address, a second number, a note and a social handle takes the grid from 53 squares across to 89, which at a 20mm print takes each square from 0.38mm down to 0.22mm. It still technically encodes. It just will not scan in a bar.

02

What to put in, and what to cut.

Ruthlessness here is what makes the difference between a code that scans and one that half works.

Include: name, one phone number, one email, company, job title. That is a complete business card and it stays comfortably inside a scannable density.

Cut: a full postal address, a second and third phone number, a photo, social handles, and any note. An address alone can nearly double the payload, as the third code above shows. A photo is not worth discussing; an embedded image will not fit in anything you can scan from a phone.

Then test it the way it will be used. Display it at the size you will actually show it, on the device you will actually show it on, and scan it from about arm’s length in ordinary indoor light. A code that only scans when held six inches away in bright light is a code that will fail in a bar.

Every scanning problem anyone has ever had with a QR code was a size or a contrast problem.Which is a nicer way of saying: it was almost never the phone.

03

When a link beats the raw vCard.

Most of the time, for two reasons that only show up later.

It cannot be changed. The details are baked into the shape. Change your number and every printed copy of that code is now wrong, permanently, including the ones on cards in other people’s drawers.

It gives you nothing back. A raw vCard save is a one-way transfer. You do not know it happened, and you leave the conversation with nothing.

A code that points at a page instead stays small and simple regardless of how much is on the card — 29 squares across in the first example, and it would still be 29 if the page behind it held forty links. It updates when you update it, and it can offer an exchange rather than a broadcast. The cost is that it needs signal once, to load the page. That is the real trade: offline and frozen, or online and current.

Which is also why an Apple Wallet pass is a useful third option. The pass is stored on the phone so it opens offline, and it still updates itself when you change your details, which is the combination neither QR variant manages alone.

04

Making one, free, with no signup.

Five steps. No account, no email, no watermark.

  1. 01

    Decide whether you want the raw vCard or a link

    Raw vCard if it must work with no signal and the details will never change. A link if you want it to stay small, stay current, and be able to give you something back.

  2. 02

    Fill in five fields, not fifteen

    Name, one mobile, one email, company, job title. Leave out the postal address, the second number and any note — those are what take the grid from 53 squares across to 89.

  3. 03

    Generate it and look at the grid size

    Our free generator shows you the code immediately. The denser it looks, the more you should be cutting. A code you can count the squares on from across the room is a code that will scan from across the room.

  4. 04

    Test it at the size and distance you will actually use

    On the device you will show it on, from about arm's length, in ordinary indoor light. Not held six inches away under a desk lamp. The scene is a bar or a doorstep, so test in something like one.

  5. 05

    Print it bigger than feels necessary

    Scan distance runs to roughly ten times the code's width, so a 2cm code on a card is a 20cm reach. If it is going on a stand or a van, scale up accordingly and test the printed proof before ordering hundreds.

Our vCard QR generator makes the raw kind and works whether or not you ever create a card with us. If you want the link kind, that is what a Cardr address is: a short URL with a page behind it that shows your details, saves to contacts in one tap, and can take their details back.

Questions

Questions, answered.

Does a vCard QR code work without internet?

Yes. The details are inside the code, so nothing is fetched and it works with no signal. That is the main reason to choose it over a link.

Why will my QR code not scan?

Almost always density or size. Too much data makes the grid bigger, which makes each square smaller at any given print size. A lean vCard encodes to a 53 by 53 grid; adding an address, a second number, a note and a social handle takes it to 89 by 89, which at a 20mm print is 0.22mm per square. Remove the address and any extra numbers first, then make it physically bigger.

Can I change the details later?

Not in a raw vCard code. The data is baked in, so every copy already printed or saved keeps the old details forever. A code pointing at a page can be updated any time.

How much data fits in a QR code?

More than you want to put in one. The limit that bites is not the theoretical maximum but the physical one: every extra character grows the grid, and past roughly 300 characters a code printed at business-card size has squares too small for a phone camera at conversational distance.

Do I need to pay for a QR code generator?

No. Ours is free with no signup and no email. Be careful with generators that route your code through their own domain as a redirect, because your code stops working if they turn that service off or start charging for it.

Get started

Free forever. About a minute to build.

Nothing for the other person to install, and no card details to start.

Get your card free

Get your card free Free forever · about a minute