Why generating locally matters
Most free QR generators build the image on their server. That means whatever you encode — often a private link, a Wi-Fi password, a document URL — is transmitted to and logged by a third party.
Worse, some services generate a code pointing at their own redirect domain rather than your URL, so they can track scans and, in principle, change the destination later. A printed code you cannot change becomes a permanent dependency on a company you have not heard of. The code this page produces encodes your content directly.
Error correction levels
QR codes carry redundant data so they still scan when partly damaged or obscured. Four levels are available, recovering roughly 7%, 15%, 25% and 30% of the code respectively. Higher correction means more modules, so the code is denser at the same physical size.
Medium is the usual default. Choose High for anything printed, for codes that will be scanned at an angle or in poor light, or when a logo will cover part of the code.
Practical scanning advice
Keep the quiet zone — the blank margin — clear; scanners need it to find the code's edges. Maintain strong contrast between foreground and background; a light-on-light code that looks elegant will not scan. Never invert a code (light modules on a dark background) unless you have tested it, as many scanners expect dark-on-light.
For print, use the SVG. It is vector, so it stays sharp at any size, where a PNG scaled up produces soft edges that scanners struggle with.