QR Code Generator

Create a QR code for any URL or text with custom size, colours and error correction, then download PNG.

What a QR code actually stores

A QR code is a two-dimensional barcode that holds up to about 3 KB of text. For a URL it stores the URL itself — there is no redirect service involved, which is why these codes never expire and never stop working when a subscription lapses.

Choosing error correction

Higher correction means more redundancy and a denser code. L (7%) is smallest and fine for clean digital screens. M (15%) is the sensible default for print. Q (25%) suits stickers and packaging. H (30%) is required if you plan to overlay a logo.

Getting the physical details right

  • Keep a quiet zone of at least four modules around the code
  • Print at 2cm minimum for close scanning, 3–4cm for posters
  • Dark modules on a light background only — never invert
  • Test at the real distance with a real phone before printing 1,000 of them

Why short URLs scan faster

Every extra character increases module density. A 20-character short link produces a visibly coarser code than a 200-character UTM-tagged URL, which is easier to scan at distance and survives cheaper printing. Trim tracking parameters when you can.

Frequently Asked Questions

Do these QR codes expire?

No. They are static codes with no redirect service, so they work forever.

Can I change the destination later?

Not without generating a new code — static codes store the URL directly. Use a short-link service if you need editability.

What is the best size to print?

At least 2cm square for phone scanning at 20–30cm; scale up with viewing distance.

Privacy & Your Data

CSSmith runs entirely in your browser. Whatever you type, paste or upload is processed on your own device and never sent to a server — there is no backend to store it.