Open the URL QR Code Generator
A URL QR code is the workhorse of the format. Packaging, table tents, parcel inserts, estate agent boards, museum labels, gym equipment, invoices — if a printed surface needs to hand someone a web page, this is the code that does it. This guide covers what the code actually contains, how big to print it, and the handful of mistakes that cause almost every scan failure we get asked about.
What is a URL QR code?
A URL QR code contains a web address and nothing else. Scan one and the reader passes a string such as
https://example.com/spring-sale to the phone's browser. Unlike a WiFi or vCard code, there is no
wrapper syntax and no field names: the text in the code is exactly the text you would type in the address bar.
The decoding steps are worth knowing, because they explain most print failures. The camera first locates the
three large squares in the corners — the finder patterns — and uses them to work out the code's
orientation and perspective. It then reads the timing patterns along the edges to establish the module grid,
samples each cell as dark or light, reads the format information (which error correction level and mask pattern
were used), removes the mask, and feeds the resulting bitstream through Reed–Solomon error correction. A
four-bit mode indicator tells the decoder how to interpret what is left; for a URL it is almost always
0100, byte mode. The bytes come out as text, the reader recognises the https://
scheme, and offers to open it.
All of that happens offline, on the device. A QR code is not a link to a server that stores your URL — the address is physically present in the pattern of dark and light squares. Only the final step, loading the page, needs a connection.
The flip side of that is permanence. Every code produced here is static: the destination is in the ink and cannot be edited after printing. If you expect the target to move, point the code at a URL you control that redirects onward, and change the redirect rather than reprinting.
When to use a URL QR code
- Product packaging that needs instructions. A code on the inside of a flat-pack box pointing at an assembly video removes a printed manual and cuts support calls. Put the code on the part of the carton the customer sees when the lid opens, not on the outer shrink wrap that gets binned.
- Estate agent and construction boards. A code sized for a two-metre reading distance lets someone standing on the pavement open the full listing with photos and a floor plan, instead of photographing a phone number.
- Restaurant tables and takeaway packaging. Menus, allergen information and a reorder page. See the restaurant menu guide for the layout details that matter at a table.
- Event badges and programmes. A code that opens the live schedule works better than a printed agenda that changes twice on the day.
- Invoices, quotes and statements. A code next to the total that opens a payment page with the reference already filled in gets bills paid faster than a bank details block.
- Equipment and asset labels. Lifts, HVAC units, forklifts, coffee machines: a code that opens the maintenance log or fault-report form for that specific unit, with the asset ID in the URL.
- Museum, gallery and garden labels. An audio description or a longer text for people who want more than the 40 words that fit on a plaque.
- Print advertising with a trackable destination. Give each publication its own landing URL or campaign parameter so you can tell which magazine produced the traffic.
A case against: if the audience is already holding a phone and looking at a screen, skip the code. A tappable link is faster than asking someone to scan their own display. The same applies to a short, memorable domain on a billboard passed at 70 mph, or a radio-style call to action — nobody scans a code they drove past. Print the domain instead.
How to create a URL QR code
- Finalise the destination first. Load the page on a real phone, on mobile data rather than office WiFi, and check it renders and loads quickly. A QR code cannot fix a slow page.
- Copy the URL from the browser address bar rather than retyping it. This avoids smart quotes, trailing full stops and the invisible characters that document editors like to insert.
- Open the URL generator and choose the URL type.
- Paste the address, including
https://. If you leave the scheme out the generator addshttps://for you, but pasting the full address is safer and lets you see exactly what will be encoded. - Pick a size and generate. The download is a PNG at 200, 300 or 400 pixels square. For anything going to print, choose 400.
- Test the downloaded image on at least two phones — one iPhone, one Android — before it goes anywhere near a print run. Test the on-screen version and then a paper proof at final size.
- Place it with a quiet zone and a text label. Leave clear space around the code and put the destination domain underneath in readable type, so people can see where they are going.
The data format
There is no special payload syntax. A URL QR code holds the address verbatim:
https://example.com/spring-sale?utm_source=flyer
Two details do matter. First, the scheme is what makes it a link. Encode example.com on its own
and a strict reader treats it as plain text and shows it as a string with no Open button; some readers
guess, most do not. Always encode https://example.com. Second, anything outside the ASCII range
— accented characters or non-Latin scripts in a path — should be percent-encoded UTF-8
(caf%C3%A9) rather than pasted raw, because readers differ on how they interpret high bytes.
Length drives everything else. The longer the URL, the higher the QR version, and each version step adds four modules to each side of the grid. At error correction level M, byte mode gives you:
| QR version | Grid size | Max bytes at level M | Typical URL that fits |
|---|---|---|---|
| 1 | 21 × 21 | 14 | https://ex.co |
| 2 | 25 × 25 | 26 | short domain, no path |
| 3 | 29 × 29 | 42 | domain plus a short slug |
| 4 | 33 × 33 | 62 | domain plus a readable path |
| 6 | 41 × 41 | 106 | path plus one or two parameters |
| 8 | 49 × 49 | 152 | path plus a full UTM set |
| 10 | 57 × 57 | 213 | long tracking URL — avoid in print |
The practical target for print is under about 80 characters. That keeps you at version 5 or below, where modules stay chunky and forgiving. A 180-character tracking URL still encodes fine and will scan happily off a screen, but on a business card it becomes a grey mush.
Error correction level is the other lever. The four levels recover roughly 7% (L), 15% (M), 25% (Q) and 30% (H) of the symbol's codewords. Higher levels survive scuffs, folds and a small logo overlay, but they consume capacity, so the same URL at level H needs a bigger grid than at level M. For flat, clean, indoor print, M is the sensible default. For anything that will be handled, wiped down or exposed to weather, trade size for robustness.
A trick that actually shrinks the code
QR alphanumeric mode packs two characters into 11 bits instead of 8 bits each, but its character set is
limited to digits, uppercase A–Z, space and $%*+-./:. Because host names are
case-insensitive, encoding HTTPS://EXAMPLE.COM can drop the symbol a version or two compared with
lowercase. The catch: URL paths are case-sensitive on most servers, and ?,
=, _ and # are not in the alphanumeric set. So this only helps for
bare-domain URLs. Do not uppercase a path and hope.
Sizing and printing
The rule of thumb every print shop uses is 10:1 — the code's width should be about a tenth of the distance it will be scanned from. A code read at 40 cm needs to be about 4 cm wide. Round up rather than down; nobody has ever complained that a QR code scanned too easily.
| Surface | Scan distance | Minimum code width | Notes |
|---|---|---|---|
| Business card | 20–25 cm | 2 cm | Keep the URL short; 2.5 cm if the address is long |
| Flyer, menu, table tent | 30–40 cm | 3 cm | Avoid the fold and the bleed edge |
| Product label or box | 25–30 cm | 2.5 cm | Flat panel only, never over a curve seam |
| A4 / A3 poster | 1–1.5 m | 10–15 cm | At eye height, not at floor level |
| Shop window decal | 1–2 m | 15–20 cm | Matte vinyl; glass reflections kill scans |
| Van livery, hoarding | 3–5 m | 30–50 cm | Only useful where people can stop |
| Billboard | 10 m + | 1 m + | Usually the wrong tool — print the domain |
Below the code width, the number that decides whether a scan works is the module size: the
width of one small square. Work it out as code width ÷ (grid modules + 8), the 8 being the
four-module quiet zone on each side. Keep modules at 0.4 mm or larger for offset and laser print,
0.6 mm for thermal receipt printers and low-grade labels, and 1 mm or more for screen printing on
fabric or anything with ink spread.
On resolution: the 400 pixel PNG from this generator prints at 300 dpi up to about 3.4 cm wide, which covers cards, labels and flyers. Larger than that and you are upscaling a bitmap. In practice a QR code tolerates this better than a photograph would, because the artwork is pure black and white — but ask your printer to place it without smoothing or interpolation, so the module edges stay hard. For posters and signage above roughly 8 cm, have the code redrawn as vector artwork at final size.
Contrast and colour: dark modules on a light background, always. Keep the light background genuinely light — a dark code on a mid-grey panel often measures under the contrast that budget scanners need. Inverted codes (light modules on dark) are decodable by some readers and rejected outright by others, so treat them as a design risk rather than a style choice.
Common mistakes and how to fix them
| Symptom | Cause | Fix |
|---|---|---|
| Camera hovers but never locks on | No quiet zone — text, a border or a photo touches the code | Leave clear space equal to four modules on all sides. This is the single most common print error. |
| Reader shows the address as plain text with no button | The scheme was omitted, so the payload is a string, not a link | Re-encode with https:// at the front. |
| Opens a 404 or a mangled address | Smart quotes, a trailing full stop, or a line break pasted in from a document | Copy the URL straight from the browser address bar and regenerate. |
| Scans on screen, fails on paper | Modules below the printer's resolvable size, or ink bleed closing the gaps | Enlarge the code, drop tracking parameters to reduce the version, avoid glossy stock. |
| Fails after a logo was dropped in the middle | Overlay covers more damage than the error correction level can absorb | Keep coverage under about 10% of the area, centred, and use level Q or H. Retest every variant. |
| Works up close, not from where people stand | Sized for the designer's desk, not the real viewing distance | Apply the 10:1 rule and re-measure the actual distance on site. |
| Browser shows a security warning | Redirect chain drops to http, or the certificate has expired |
Point the code at an HTTPS URL and check every hop of the redirect. |
| Destination page moved after printing | A static code cannot be edited | Always encode a URL on a domain you control, then change the server-side redirect. |
| Scan rate collapses on a glass door or laminated card | Specular reflection from gloss laminate or spot UV | Specify matte laminate over the code area, or leave it unlaminated. |
Privacy and safety notes
Anything encoded in a QR code is readable by anyone who photographs it. Treat the payload as public. That rules out a few things people try: single-use links, password reset URLs, signed download links with a token in the query string, and session or invite URLs meant for one person. Print any of those and you have published them to everyone who walks past.
Static codes carry no analytics. We do not sit between the code and the destination, so there is no scan counter and no redirect owned by us. If you need to attribute traffic, add your own campaign parameters or use a per-placement landing URL — that keeps the measurement in your own analytics rather than a third party's dashboard.
When you generate a code here, your browser requests the image from an external QR image endpoint, which means the URL you typed is included in that request. It is fine for public marketing links; for anything confidential, use offline tooling. Our Privacy Policy spells this out.
On the scanning side, QR phishing (sometimes called quishing) is a real problem: criminals stick their own codes over legitimate ones on parking meters, EV chargers and payment notices. Two habits help. As a publisher, print your domain in plain text next to the code and, for unattended outdoor placements, check periodically that nothing has been stuck over it. As a scanner, read the domain in the browser prompt before tapping, and never enter card details on a page you reached only through a sticker.
FAQ
Can I change where a URL QR code points after printing?
Not for a static code, and every code from this generator is static — the address is encoded in the image itself. The workaround is to encode a URL on your own domain that issues a 301 or 302 redirect to the real destination. Change the redirect and every printed code follows, with no reprint.
Do URL QR codes expire?
The code does not. It has no server component, no subscription and no expiry date, so a code printed today still decodes to the same string in ten years. What expires is the destination: if the page is deleted or the domain lapses, the scan lands on an error. The code is only as durable as the URL you put in it.
Should I use a URL shortener before generating?
It depends on the trade-off you prefer. A shortener produces a smaller, chunkier, more scannable symbol and lets you change the target later. In exchange you depend on a third party staying alive, and the visible domain in the browser prompt is theirs rather than yours, which some people find suspicious. For permanent signage, a short path on your own domain is the better answer.
How long can the URL be?
Technically a QR code holds up to 2,953 bytes in byte mode at the lowest error correction level, so length is rarely the hard limit. Readability is. Past roughly 100 characters the grid gets dense enough that small print sizes start failing, so aim for under 80 characters for anything printed and keep long tracking strings for on-screen use.
Can one QR code open different pages on iPhone and Android?
Not from the code itself — it contains one string. You can do it on the server: point the code at a page that reads the user agent and redirects to the App Store or Google Play accordingly. That logic lives on your side, not in the QR code.
Will a coloured or branded QR code still scan?
Often, but you are spending reliability on aesthetics. Keep dark modules genuinely dark, keep the background light, and never use gradients across the finder patterns. If a client insists on brand colours, test the printed proof under the actual lighting where it will be used — a code that reads under office fluorescents can fail in a dim restaurant.
Why does my code work on my phone but not on a customer's?
Usually camera quality, lighting or reader behaviour rather than the code. Older devices with fixed-focus cameras need a larger code and more light. Some third-party scanner apps only handle URLs and text and refuse other payload types. Testing on one flagship phone is not testing.
Can I track how many people scanned it?
Not through the code, since nothing reports back to us. Measure it at the destination: give each placement a unique URL or campaign parameter and read the numbers in your own analytics. That also tells you which poster, box or publication is actually working.
Is it safe to put a QR code on an invoice that opens a payment page?
Yes, with two precautions. Encode only a URL on your own verified domain, never a third-party payment link that customers cannot recognise, and print the domain in plain text beside the code. Also tell customers, in the same document, that you never change bank details by email — invoice fraud usually arrives that way rather than through the code.
Does the code need a border or a "scan me" label?
A label helps in contexts where the purpose is not obvious, and a short call to action ("Scan for the allergen list") reliably beats a bare code. A decorative frame is fine as long as it sits outside the quiet zone rather than crowding it.
Related QR code guides
- WiFi QR codes — share a network without reading a password aloud
- vCard QR codes — save a contact in one scan
- PDF QR codes — brochures, manuals and price lists
- Restaurant menu QR codes — tables, windows and takeaway bags
- Google Review QR codes — ask for feedback at the counter
- WhatsApp QR codes — open a chat with a prefilled message
- EPC / SEPA payment QR codes — European bank transfers