How to Create a QR Code for a Website

Published: 11 September 2026 | Reading time: 6 minutes

Generating the code takes ten seconds. The decisions that determine whether anyone scans it take longer, and they all come first — the wrong page, too small for the print size, or nobody checked what happened after the scan.

Start with the destination, not the code

Write down one sentence: what should this code accomplish, and where is the person standing when they scan it? A trade-show banner faces someone walking past with a drink in one hand; a delivery insert faces someone already holding your product. Those situations want different pages and different amounts of text.

Homepage or a dedicated landing page?

The homepage is the lazy default and usually the wrong answer for print. Someone who scanned has already told you something: they saw your poster, packaging or stall. Sending them to a generic homepage throws that away.

SituationSend them toWhy
Conference booth bannerA page with the booth offer, no nav menuStanding scan, attention span measured in seconds
Product packaging insertSetup guide or registration pageCustomer already bought; they want the next step
Business card or flyer handed overContact / booking page, or a vCardThe page substitutes for a conversation
Storefront window after hoursHours, menu, or catalogueNobody is inside to answer questions
Billboard or vehicle graphicsShortest possible URL, mobile-first pageScan happens at speed and often at an angle

A good QR landing page is boring in a good way: headline matching whatever the printed material promised, one obvious action, no carousel, no cookie wall eating half the screen. If the print says "Get the sample pack," the page should say "Get the sample pack."

Tag the link before you encode it

A URL QR code is a printed asset. Once it ships you cannot change it, so tagging the destination is the only way to learn anything from it. Build the tagged URL first, encode that.

https://example.com/sample-pack?utm_source=qr&utm_medium=print&utm_campaign=expo2026&utm_content=booth-banner-a

Two practical notes. utm_content is how you tell two printed placements apart — banner versus handout versus table sticker share one campaign but differ in content, and that difference tells you where to spend money next time. And settle on a naming convention before the first code goes out: made-up-per-campaign values give you utm_source=QR, utm_source=qrcode and utm_source=QR_Code in one report, which is three rows for one channel. If you add only one parameter, make it utm_source=qr.

Your URL length decides how small you can print

QR codes store data in modules — the little squares. More characters means more modules, and more modules means smaller squares at a fixed print size. Here is the practical version of the standard capacity table (byte mode, error correction level M):

Characters encodedSmallest QR version that fitsGrid size
up to 14Version 1 (lowest data)21 × 21
up to 26Version 225 × 25
up to 42Version 329 × 29
up to 62Version 433 × 33
up to 106Version 641 × 41
around 200+Version 10 or higher57 × 57 and up

A stripped 20-character URL lands near 25 × 25 modules. Add tracking parameters and a readable slug and you pass 80 characters, pushing you toward 41 × 41. Same sticker, about 2.7 times as many modules across the same width, so each square shrinks by roughly 60 percent. That is why a barely-tested campaign code fails on a 30 mm label and works fine on A4.

Uppercase-only URLs help here: QR's alphanumeric mode packs capitals more tightly than byte mode. It reads worse in the browser bar — worth it when you are fighting for print size, pointless otherwise.

When a short link earns its keep

Shorteners get recommended reflexively. Sometimes they are right; often they add a failure point nobody accounted for.

  • Use one when: the printed surface is small (labels, business cards, product tags), the tagged URL ran past 60–70 characters, or the code sits far from the scanner.
  • Skip it when: the destination is short already, or longevity matters — a shortened URL depends on a third party staying solvent.
  • Never: shorten a link you have not opened yourself first. Typos in a redirect target stay invisible until a customer reports them.

If you need small codes and long-term reliability, host the redirect on your own domain. See static vs dynamic QR codes for the maintenance side.

Mobile landing page checklist

Roughly every QR scan happens on a phone, often on cellular, sometimes with one bar. Run through this before you commit to the print run:

  1. Open the tagged URL on your own phone using mobile data, not Wi-Fi, and time it. Anything past three seconds loses people.
  2. Check the primary action sits within comfortable thumb reach, and that no pop-up covers it on first paint.
  3. Confirm the page does not force a horizontal scroll or a pinch-zoom to read the headline.
  4. Verify there is no app-install interstitial hijacking the first screen.
  5. Verify the HTTPS certificate is valid for the exact host — mixed-case redirect chains and missing www variants break more campaigns than anything else here.
  6. Read the first screen with the brightness low. That is closer to real scanning conditions than your desk setup.

Four things to test before it goes to the printer

  1. Print one copy on the real material at the real size. Glossy card, kraft sticker and matte paper behave differently under autofocus.
  2. Scan it at the actual distance. A window code is scanned from the pavement; a table tent from 30 cm. Distance plus angle is where dense codes fail.
  3. Test a default iOS camera, a default Android camera, and one third-party scanner app.
  4. Confirm tracking fires. Watch your analytics real-time view while scanning the printed proof — the cheapest way to discover you encoded the staging URL.

Underneath it all sits error correction: level M over level L leaves about 15 percent recoverable if the code gets scuffed, at the cost of a denser symbol. See QR error correction explained and print size guidelines.

FAQ

Should I link to my homepage or a landing page?

A landing page almost always. Someone who scanned has already shown intent tied to the thing they scanned. The homepage asks them to start over and find it themselves.

Do UTM parameters make the QR code harder to scan?

They add characters, which adds modules. A few tags rarely matter on anything larger than a business card. On labels and stickers it can push you past what prints cleanly, and that is when shortening is worth considering.

Can I use a short link for everything?

You can, but every redirect is another thing that can expire, get rate-limited, or change owner. Fine for a six-week campaign, risky for signage you will not revisit for years.

What size should the printed code be?

It depends on scanning distance and how many modules your URL needs, not on the paper size. Short URL, close range: 2 cm works. Long tagged URL on a window people scan from across the street: much larger. Print a proof rather than trusting a rule of thumb.

Will the code still work if my page later redirects?

Yes, because the code only contains a URL. The scan hands that URL to the browser and whatever answers it wins. This is exactly why you should not put URLs that might move out from under you.

Should the link open the app or the mobile site?

Open the mobile site unless you have deep links set up properly. A bare app link dumps non-users onto an app-store error page, which is the fastest way to waste the scan.