Blog

How to choose a QR code error correction level

Choose an error correction level for your QR code's print conditions, then check its size, contrast and scan reliability before printing copies.

Emily ParkerTools and utilities 5 min read

A QR code that scans on your screen can fail once it is printed. Small symbols, blurry edges, low contrast, or a logo covering the pattern can all make a phone struggle to read it.

Choose an error correction level based on how much wear or obstruction the printed code may face. Then test the actual print at the size and distance people will use. You can create a code with the QR Code Generator.

Choose and test a printable QR code

  1. Open the QR Code Generator and enter the link or other information the code should contain. Keep the content short when possible, since more data usually creates a denser pattern.
  2. Choose an error correction level if the generator provides that option. Use the guidance below, and do not choose the highest level automatically.
  3. Set the code to a practical size for your intended use. Leave a clear white border around every side, and avoid placing text, lines, or a logo over that border.
  4. Print one sample on the paper you plan to use. Scan it with a phone camera from the distance a reader will stand, and try a second phone if you can.
  5. If scanning is slow or unreliable, adjust one thing at a time: make the code larger, improve contrast, remove a logo, or shorten the content. Print and test another sample before making copies.

A quick scan on your monitor is not enough. Paper, printer quality, viewing distance, and the phone camera all affect the result.

What each error correction level means

Error correction adds spare information to a QR code. A scanner can use that information to recover some data if parts of the pattern are damaged or covered. The commonly used levels are L, M, Q, and H. Their approximate recovery figures describe code data, not the percentage of the printed image that can safely be covered.

Level L, about 7 percent

L has the least error correction and leaves the most room for the actual content. It can suit a clean, protected print with a short payload and no logo. It offers less tolerance for smudges, scratches, or printing defects, so test the paper and printer before choosing it for a large run.

Level M, about 15 percent

M is a reasonable starting point for many ordinary handouts and signs that will be kept in good condition. It provides more recovery than L without adding as much overhead as Q or H. Still, a damaged or very small code may fail at any level.

Level Q, about 25 percent

Q can be useful when a code may get scuffed or exposed to more handling. It adds more error-correction data, so the symbol may become denser for the same content. Make the printed code large enough that its small squares remain distinct.

Level H, about 30 percent

H provides the most error correction among these choices. It can help with a code that may be damaged, and is often considered when a design includes a logo. A logo still blocks parts of the pattern, and H does not guarantee that the code will scan. Keep any logo modest, preserve the clear border, and test the finished print.

Higher correction levels reduce the space available for your content. If that makes the code more complex or forces it into a smaller printed area, the result can be harder to scan despite the extra recovery data. Shortening a long URL or other payload may help more than selecting H.

Make the printed code easier to scan

  1. Keep strong contrast. Use a dark pattern on a light, plain background. Pale colors, gradients, reflective paper, and a dark background can reduce reliability. If you use color or a logo in the QR Code Generator, test the final design on the actual paper.
  2. Leave the quiet zone clear. The quiet zone is the blank margin around the code. Keep at least four small squares of white space on every side, with no border or nearby artwork crowding it.
  3. Give the code enough physical space. For a compact code scanned by someone holding a phone nearby, you might start around 1 to 1.25 inches (25 to 32 mm) across, not counting the blank margin. This is only a starting point: longer content, a longer scanning distance, or a lower-quality printer may require a larger code.
  4. Print at the intended size. Avoid shrinking the code to fit a tight space or enlarging it from a small screenshot. In the print dialog, choose actual size or 100 percent when available, and check that the printer has not cropped the blank border.
  5. Use a clean print setting. Select a suitable quality setting for the printer and paper. If ink is faint, streaked, or spreading between the small squares, clean or check the printer and make a new sample.
  6. Test the printer if output looks uneven. On Windows 11, open Settings › Bluetooth & devices › Printers & scanners and select your printer to find its maintenance options. On macOS, open System Settings › Printers & Scanners and select the printer. The names and location of print-quality and maintenance options vary by model.

Check the finished print before sharing it

Scan the sample in the lighting and position readers are likely to use. Try it from the closest and farthest expected distances, and make sure the code opens the correct destination rather than only confirming that the pattern was recognized. If it is for a public sign, test a copy after mounting it, since glare, reflections, or a busy background can change the result.

Choose the lowest correction level that works reliably for the real printing conditions, then keep the sample as a reference for the final batch.