A QR code generator turns a short piece of text, usually a web address, into a pattern of squares that a phone camera can read. The simplest kind needs no account and no server. Your device works out the pattern, and you save the result as a picture.
This guide walks through making one with Plexto's QR Code Generator, which runs in your browser. Plexto makes this tool, so we say plainly what it can't do. We generated every example below and decoded it again, with the same decoder the QR Code Reader uses, to check that the text came back exactly as typed.
Static or dynamic, in one paragraph
What you make here is a static code. Your link or text is stored in the pattern itself, so the code never expires and nobody can switch it off. The price is that you can't change where it points after printing, and nothing counts the scans for you. A dynamic code points to a redirect owned by the service that made it. That lets you edit the destination and see statistics, usually on a paid plan, and the code stops working if the service stops redirecting it. If all you need is to know whether a campaign worked, a static code with a tracked link does that for free (see the marketing link below). For a side-by-side look at other generators, read Best Free QR Code Generators for Marketers and Developers.
Make your first code in four steps
- Open the QR Code Generator.
- Type or paste your link or text into the box. Shorter is better: a short link makes a simpler code that scans faster and from farther away.
- Leave the settings alone for now, or change them using the next section.
- Click Generate QR. The code appears below the button, and you can download it as a PNG or an SVG.
Nothing is uploaded. We opened the page, typed a test string, changed every setting and downloaded both files while watching the page's network activity. The page made no requests at all while we did, so the text never left the browser. (The page loads ads like the rest of Plexto, but what you type is not sent anywhere.)
Customize it
Colors. Pick a code color and a background color, or type a hex value. Dark on light scans best. The tool shows a warning when the contrast between the two is below 4:1, or when the code is lighter than its background, because some scanner apps can't read light-on-dark codes. Dark blue #1d4ed8 on cream #fef3c7 is a safe pair (about 6:1 contrast), and we decoded it successfully. Plain black on white is the safest of all. To check any other pair, the Color Contrast Checker gives you the ratio.
Error correction. A QR code carries spare data, so it can still be read when part of it is dirty, scuffed or covered. You can choose Low (recovers about 7% damage), Medium (15%, the default), Quartile (25%) or High (30%). In a quick test where we covered part of a code with a white patch, each step up survived a bigger patch than the one before. The trade-off is room: higher levels hold less text and make a busier pattern. Use Medium for screens and clean paper. Use High if the code will be printed on something rough or likely to get worn.
Size and format. The PNG downloads at 128, 256, 512, 1024 or 2048 pixels square, exactly as chosen. That suits websites, slides and documents. The SVG is a vector file, so it stays sharp at any size. Use it for posters, packaging, signs or anything a print shop will handle. Changing the colors, error correction or size after you've made a code updates it straight away. Changing the text means clicking Generate again.
What it doesn't do. There is no option for a logo in the middle, gradients or custom shapes, and it makes one code at a time rather than a batch. If you need those, the roundup above lists tools that offer them.
Copy-paste examples
Anything you can write as text can go in a code. Paste one of these in, change the details and generate.
A marketing link with tracking. Build the address with the UTM Parameter Builder, then paste it in:
https://example.com/spring-sale?utm_source=poster&utm_medium=qr&utm_campaign=spring-sale
Make one code per placement, changing only the source or content tag, and your analytics will show which poster or flyer people actually scan.
Wi-Fi access. The format is:
WIFI:T:WPA;S:CafeGuest;P:welcome-2026;;
T is the security type (WPA, WEP, or nopass for an open network, in which case you leave out the P part). S is the network name and P is the password. If the name or password contains a semicolon, comma, colon, backslash or quote mark, put a backslash in front of that character. Phone cameras that understand the format offer to join the network, so try it on the phones your guests use. The password sits in the code as plain text, so use this only for a guest network, and only where you're happy for visitors to have it.
A contact. Use MECARD, which fits on one line:
MECARD:N:Doe,Jane;TEL:+15551234567;EMAIL:jane@example.com;URL:https://example.com;;
The more familiar vCard format needs line breaks. This tool's input box is a single line that strips them, so it can't make one. Whether a phone offers "Add contact" for a MECARD depends on the phone and its scanner app. We confirmed the text reads back correctly, but we haven't tried every phone, so test with the ones your audience uses.
Email, phone, text message and location.
- Email:
mailto:hello@example.com?subject=Hello - Call:
tel:+15551234567 - Text message:
SMSTO:+15551234567:Hi there - Map point:
geo:37.7749,-122.4194
For phone numbers, use the international format with a plus sign and the country code.
Event tickets. A QR code on a ticket is only an identifier. This tool can make the picture, but it can't tell you whether a ticket is genuine, already used or sold. Give each guest a unique address, such as https://example.com/tickets/A1B2-C3D4, and have your own system check it at the door. Because the generator makes one code at a time, it suits a small event. For hundreds of tickets, generate the codes with a script; the developer section of the roundup above has a short example.
Plain text. Something like Table 12: ask for the garden menu works too. The phone simply shows the words.
Test before you print
- Download the PNG and open it in the QR Code Reader. It shows exactly what's inside, which catches typos in a link.
- Scan it with two phones, one of them older, from the distance people will really read it.
- Print a proof at the final size and scan that. Screens and paper behave differently.
- Leave room around it. The saved image has only a thin white border, about two squares wide, and the standard asks for four. Place it on a white area with extra space, and don't crop or stretch it.
A rule of thumb for size: at least about 2 by 2 cm for close range, and roughly one tenth of the viewing distance for anything farther away.
Limits to know about
- Capacity. At the default level a code holds about 2,300 characters of English text or a link. The exact limits are 2,953 bytes at Low, 2,331 at Medium, 1,663 at Quartile and 1,273 at High. English letters and links take one byte each. Hindi takes three bytes a character, and accented letters, other scripts and emoji take two to four, so they fit fewer characters. The tool tells you when you've gone over.
- Static only. You can't edit a code after printing, and the tool doesn't count scans.
- Nothing is kept. Plexto doesn't store your codes. Reload the page and the text is gone, so download the file you want to keep.
Quick answers
Is it free? Yes, with no account or sign-up. The page shows ads.
Do the codes expire? No. The data is in the pattern itself, so a code works for as long as what it points to does.
Can I use a code on a printed menu or flyer? Yes. Download the SVG, send it to your printer and test a proof first.