How to Create a QR Code for Wedding Photos
When you create a QR code for guests to share wedding photos, three things matter: keep the URL inside it as short as possible, print it at least 2.5 × 2.5 cm (1 inch), and scan it with at least three different phones before printing. This post shows where those rules come from, using measurements we made on our own QR codes. It also answers the question most guides skip: what happens if the URL changes after the invitations are printed?
The fuller the QR code, the harder it is to scan
Every character inside a QR code adds to the number of small squares (modules) that make it up. More modules at the same print size means smaller squares, which are harder for a phone camera to read.
We measured this with our own event URLs. A Photonza wedding link includes the invite code and PIN; the version without the PIN is 9 characters shorter:
| QR content | Length | Error correction L | M | Q | H |
|---|---|---|---|---|---|
| URL with code + PIN | 46 characters | 29×29 modules | 33×33 | 33×33 | 41×41 |
| URL with code only | 37 characters | 29×29 modules | 29×29 | 33×33 | 37×37 |
Measured with the Python qrcode library, 26 September 2026. Size is the smallest QR version the data fits into.
Two takeaways:
- Error correction costs more than you think. Choosing level H "to be safe" turns the same URL from 33×33 into 41×41 modules; at the same print size every square is about 20% smaller. Unless you put a logo in the middle, level M is enough.
- Short URL, small code. A long share link (for example a cloud-folder link) easily pushes the same code past 45×45 modules. On a crowded invitation you'll feel that difference.
How big should you print it?
A widely used rule of thumb is that scanning distance should be about 10 times the QR code's width:
| Where | Typical scanning distance | Recommended width |
|---|---|---|
| Invitation, favour label | 20–25 cm (8–10 in) | at least 2.5 cm (1 in) |
| Table card | 30–40 cm (12–16 in) | 3–4 cm (1.2–1.6 in) |
| Entrance sign / poster | 1–2 m (3–6 ft) | 10–20 cm (4–8 in) |
Our 33×33 code printed 2.5 cm wide gives modules of about 0.75 mm each (excluding the white quiet zone), which today's phone cameras read easily from invitation distance. Don't go below 2 cm.
Five mistakes that break QR codes
- Cropping the quiet zone. The white border around the code (4 modules wide) is needed for scanning. Designers sometimes trim it as "empty space".
- Light on light. You need a dark code on a light background. Gold foil on gold paper reflects light and won't scan.
- Inverted colours. A light code on a dark background isn't read at all by some older camera apps.
- Curved or glossy surfaces. A tiny code on a curved favour box, or laminated cards under lights, may not scan.
- Printing without testing. A code that scans on screen may not scan on paper. Do the test below.
The 3-minute test before printing
- Print the code at its real size on paper (don't test from the screen).
- Scan it with at least one iPhone and one Android phone using the built-in camera app; guests shouldn't need a separate QR app.
- Try once more from invitation distance in dim light (wedding venues are usually dim).
- Check that the page opens the right event without installing anything.
We also decode every QR we generate with an image-processing library (OpenCV) and confirm the URL inside is byte-for-byte correct. This automatic check stops a mistyped URL from ending up on invitations.
What if the URL changes after printing?
This is the question most guides skip. Invitations are printed months ahead; the link you used then must still work on the wedding day.
The URL inside a static QR code can't be changed after printing. What can change is where that URL leads. So:
- Put a URL on a domain that you or your provider controls. A link from someone else's shortener stops working if that service shuts down or starts charging.
- If the address has to change, the old one should use a permanent redirect (HTTP 301 or 308) to the new one, keeping parameters such as the invite code.
We went through this ourselves. Photonza was renamed in September 2026; QR codes printed on invitations before that pointed to the old domain. Every URL on the old domain now permanently (308) redirects to the new one with the invite code and PIN intact, so a guest scanning an old invitation lands straight on the join screen. The lesson: the redirect only works as long as the old domain keeps being renewed. Let the domain expire and every printed code dies with it.
Where to put the QR code at a wedding
- Invitation: Guests see it before the wedding, so joining feels familiar.
- Table cards: Where it gets scanned most during the wedding; one per table.
- Entrance sign: Everyone sees it. Add a short note telling guests how photos are shared and how face recognition works (this matters for data-protection rules too).
- Favours: A reminder to reach the photos after the wedding.
Frequently asked questions
Do guests need an app to scan a wedding QR code? No. Current iPhone and Android camera apps read QR codes directly. Asking guests to download a separate app noticeably lowers participation.
Is it safe to put the PIN inside the QR code? It makes joining easier, but anyone who sees the code can get in. That's fine on invitations and table cards; for a public social-media post, use the code without the PIN and share the PIN separately.
Can I change the colour of the QR code? Yes, as long as it's a dark code on a light background. Dark brown or navy instead of black is fine; pastels and metallic foil can cause problems.
More on invitations: 5 benefits of adding QR codes to your wedding invitations. How guests share photos: our weddings page.