Website URL QR Code Generator

A website URL QR code carries the address itself, so it keeps working offline, never expires, and points where you set it — permanently. The one thing worth checking before you print is length, because a longer address makes a denser code that has to be printed bigger to stay scannable.

Customize appearance 22 styles
#000000
#ffffff
No file selected

Upload an image to place behind the QR. Keep opacity low so the code stays scannable.

Upload an image to use these controls.

Higher error correction keeps the QR scannable when a logo covers the center.

Fill in the form and click Generate
Generating your QR code…

How to create a Website URL QR code

  1. Paste the full address Include the https:// prefix. Most scanners cope with a bare example.com, but a few treat it as plain text and show it instead of opening it. The prefix costs eight characters and removes the guess.
  2. Watch the preview get denser as you paste The number of squares is set by how much text you gave it. If the grid visibly tightens when you add tracking parameters, that is the code telling you it now needs to be printed larger.
  3. Leave error correction on M unless you have a reason M recovers from about 15% damage and is right for screens and clean print. Go to Q or H only for surfaces that scuff — vehicle livery, floor decals — or if you are covering the middle with a logo.
  4. Print it at final size and scan it from where people will stand The working rule is 10:1 — a code reads from roughly ten times its own width. A 3 cm code is a 30 cm code, not a poster code. Testing on a monitor at arm's length proves nothing about a wall.

What a Website URL QR code is for

This makes a static code: the address is stored inside the pattern itself. Nothing is looked up, no server of ours is involved when someone scans it, and there is nothing to keep paying for. It also means the destination is fixed at the moment you download the file.

That permanence is the whole trade. If you print ten thousand flyers pointing at example.com/spring-sale and the sale moves, the codes cannot be changed — but you can change what that address serves. Point printed codes at a URL you control and redirect server-side, and you keep the flexibility without paying anyone for a dynamic-code subscription.

Reach for a different type when the destination is not really a web page. A phone number belongs in a Telephone code, a network in a Wi-Fi Network code, contact details in a Contact Card (vCard 3.0) — each of those does something a URL cannot, like joining a network or writing to the address book.

Where a Website URL QR code earns its place

Packaging and signage that outlive the campaign

A code moulded into packaging or screwed to a wall will be scanned for years. Point it at a permanent address on your own domain and redirect from there, so the destination can change when the product page does.

Conference posters and slides

Apply the 10:1 rule to the room. A poster read from three metres wants a code about 30 cm across; a slide read from the back of a hall wants most of a slide. This is the most common reason a code that worked on the designer's screen fails in the room.

Print with campaign tracking attached

UTM parameters are free to add and not free to print. Measured with this generator: a 40-character address is 29 modules across, and the same address with a three-parameter UTM string is 41 — the same square holds 40% more detail, so it needs proportionally more paper.

Any address nobody would willingly type

Long paths, share links with tokens, a specific row in a catalogue. The code is worth having precisely where reading the address aloud is not an option.

Website URL format notes and limits

Module counts below are for this generator, measured across the four error-correction levels. "Modules" is the count of squares along one side — more modules in the same physical space means each one is smaller, and small modules are what phone cameras fail on.

  • 22-character address — 25 modules at L and M, 29 at Q and H.
  • 40-character address — 29 at L and M, 37 at Q and H.
  • 98 characters (address plus UTM) — 37 at L, 41 at M, 49 at Q, 57 at H.

Uppercase the scheme and host and the code gets smaller. QR has a compact mode for a restricted character set — digits, A-Z, space and a few symbols — that stores about a third more per square than the general text mode. Lowercase letters fall outside it. Hostnames are case-insensitive, so HTTPS://EXAMPLE.COM/ reaches exactly the same place as the lowercase form: measured here, the same 40-character address drops from 29 modules to 25 at error correction L, and from 37 to 29 at Q. Stop at the path — everything after the host is case-sensitive on most servers.

The format's ceiling is far above anything practical: roughly 2,900 bytes at the lowest error correction. Long before that the code stops being scannable at a sane print size. Treat a few hundred characters as the working limit, and aim for at least 0.4 mm per module in print.

The address is stored in the clear. Anyone can decode a printed code and read exactly where it goes — which is worth remembering for share links that contain a token.

Website URL QR codes — questions people actually ask

Can I change where the code points after I have printed it?
No. The address is inside the pattern, so changing it means a new code. The way around it is to print a code pointing at an address you control and change the redirect behind it, which costs nothing and needs no subscription.
Does the code expire, or stop working if this site goes away?
Neither. Nothing is looked up when someone scans it and no server of ours is involved. A code downloaded today works in ten years, as long as the address it contains still resolves.
Should I run the address through a URL shortener first?
It genuinely produces a smaller, sparser code, and it costs you a dependency: the scan now passes through someone else's service, and if that service shuts down or blocks the link, every printed code is dead. A short path on your own domain gives most of the density saving with none of the risk.
Why did my code suddenly look much busier when I added tracking?
Because it is holding more text. A UTM string is easily 60 extra characters, which measured here takes a 40-character address from 29 modules across to 41. If the print size is fixed, consider shortening the campaign parameters rather than dropping them.
Do I have to include https:// ?
Not always, but it is the safer choice. Modern phone cameras open a bare example.com happily; some older scanners and in-app readers show it as text and leave the person to copy it. Eight characters rarely changes the print size.
Is a higher error correction level always better?
No — it trades capacity for damage tolerance. Going from M to H on the same address here takes the code from 29 modules across to 37, so each square is smaller at the same print size. Unless the code will be scratched or partly covered, that is a worse code, not a better one.

Related guides for Website URL QR codes

Create QR codes in seconds

Generate a shareable QR code for apps, websites, and more.

Get it on Google Play