Generate a QR code online for free — just paste a URL or type any text. Adjust the error correction level, size, quiet zone and foreground/background colours, then download a PNG bitmap or an SVG vector. Your content is encoded in the pattern itself and everything is generated locally in your browser: nothing is uploaded, and the code never expires.
About QR code generation
Static vs. dynamic codes — this is what decides whether it expires
Many online services hand you a dynamic code: what is actually stored in the pattern is a short URL on their domain, so a scan hits their server first and is then redirected to your real content. The upside is that you can change the destination later. The cost is that the code's life is in someone else's hands — if the service shuts down, the account lapses or the free quota runs out, the code is dead, and by then it may be printed on a few thousand flyers. This page produces static codes: your text is encoded directly into the black and white squares, no server is involved, and so there is nothing that can expire. The trade-off is that changing the content means generating a new code. Use static codes for anything going to print, and reach for a dynamic code only when the destination genuinely has to change.
Choosing an error correction level
QR codes carry built-in redundancy, so a partly damaged pattern still scans. L, M, Q and H recover roughly 7%, 15%, 25% and 30% respectively. The cost is density: for the same content, a higher level needs more modules. M is plenty for an everyday URL. Use H for packaging and outdoor material that will get scuffed, or when you want to drop a logo in the middle — as far as the decoder is concerned, that logo is damage, and the redundancy is what covers it. Conversely, if the code has to be printed very small, L keeps the module count down and the squares fatter, which actually makes it easier to scan.
The longer the content, the denser the pattern
The Version shown beside the preview is the QR specification, from 1 to 40; each step up adds 4 modules to each side. Longer content means a higher version, finer modules, and more demand on both print quality and the scanning camera. So keep URLs short — stripping utm_ tracking parameters will often drop the version by several steps. If the URL contains non-ASCII characters or spaces it is usually already in percent-encoded form; when you cannot tell what it really says, run it through URL Decoder first, confirm it carries nothing you did not intend, and then generate the code.
PNG or SVG?
PNG is a bitmap: fixed resolution, blurry when enlarged, and the right choice for email, chat and web pages. SVG is a vector: it records the position of each module rather than pixels, stays crisp at any size, and is what you hand to a printer or open in Illustrator for business cards and banners. Rules of thumb for print: keep the finished code at least 2 cm square, and leave the white border intact. That border is not decoration — it is the quiet zone the decoder needs in order to locate the pattern. It is the "Quiet zone" control on this page; keep it at 2 to 4 modules and never set it to 0.