Free QR code generator

This free QR code generator makes a static code in your browser, as SVG. A static code never expires, but you cannot change where it points after printing.

Last reviewed 27 October 2026 by the CTAurl team

Keep it dark on white.

This makes a static code. Its destination is fixed and scans are not counted.

What is a static QR code?

A static QR code is a QR code that stores your URL or text directly in its pattern. It needs no service behind it, never expires and costs nothing. The cost is that it is fixed: once a static code is printed, you cannot change where it points, and nobody can count its scans.

Use a static code for things that never change, such as a Wi-Fi login, a contact card or a serial number. For a menu, a poster or packaging, use a dynamic code, which encodes a short redirect address so the page behind it can change after printing.

A dynamic code is only as dependable as whoever runs its redirect. In September 2023, Basel-Stadt's Justice and Security Department asked residents to stop scanning the QR code on printed civil-protection notices and to destroy them, because the code sometimes opened an advert for a paid subscription instead of the intended page (Basel-Stadt media release, September 2023). CTAurl's dynamic codes answer with a 302 to your page, with no ad screen (a code can show an optional location-consent page first), and printed codes keep working even after you cancel. The exceptions are abuse of the service, a legal requirement, or CTAurl ceasing to operate, in which case we give advance notice and an export.

How do I print a QR code so it scans?

To print a QR code that scans, keep a plain border of four modules around it, print dark on a light background, make it at least 2 cm wide, and scan the printed copy with two different phones before the full run. Our print guide has the measured details and the limits of each measurement.

The border matters most on a dark design. In our own decoding test (20 October 2026, clean digital renders, one decoder, no print and no camera), a code on a dark surround failed to decode with no border at all and decoded once it had a border of one module or more.

Questions about this tool

Is a code from this free QR code generator static or dynamic?

Static. This free tool writes your text straight into the pattern, so the code never depends on CTAurl and never expires, but you cannot change where it points or count its scans. If you need either, make a dynamic code in a free CTAurl account; the Free plan lets you create 3 new dynamic codes a month.

Does this free QR code generator add a mark or an expiry date?

No. This free tool adds no mark, and a static code has no server behind it, so there is nothing to expire. The generator runs in your browser and what you type is not sent to us. Codes made inside a CTAurl account are different: they are dynamic, and whether they carry a small CTAurl mark depends on your plan.

Which QR error-correction level should I choose?

M suits most uses. Choose Q or H if a logo will cover the centre or the print may get worn; higher levels make the pattern denser. In our decoding test of the same short address at QR versions 2 to 4 (25 × 25 modules at L, 29 × 29 at M and Q, 33 × 33 at H; clean digital renders, one decoder, no print), the largest centre square that still decoded covered 7.6% of the area at M, 11.9% at Q and 15.5% at H.

Make a link you can change later

Free on ctaurl.me. No card.