Quanto piccolo può essere stampato un codice QR? Le dimensioni, calcolate
Non esiste un'unica dimensione minima per un codice QR. Abbiamo eseguito cinque payload reali attraverso il nostro encoder per i conteggi dei moduli, quindi li abbiamo convertiti in millimetri.
Novità qui: Versione del simbolo e conteggio dei moduli per cinque tipi di payload reali a tutti e quattro i livelli di correzione degli errori, calcolati con l'encoder che MostlyQR fornisce, quindi convertiti in millimetri stampati — quindi la dimensione minima è derivata dal tuo payload invece di essere quotata come un numero generico.
Ogni guida alla stampa dei codici QR ti fornisce un singolo numero. Due centimetri. Un pollice. Tre centimetri per l’imballaggio. Questi numeri sono supposizioni vestite da standard, e sono sbagliati in entrambe le direzioni: troppo grandi per un link breve su un biglietto da visita, pericolosamente troppo piccoli per una vCard su un’etichetta di bottiglia.
La vera risposta è una divisione, e puoi farla prima di stampare qualsiasi cosa.
# Perché non esiste una singola dimensione minima
Un codice QR non è un’immagine che diventa più piccola. È una griglia di moduli — i piccoli quadrati — e il numero di moduli è fissato dal tuo payload, non da te. Ventuno caratteri di link breve hanno bisogno di una griglia 25×25. Una vCard con nome, numero di telefono e email ha bisogno di 49×49. Stampa entrambi a 25mm e hai stampato due cose molto diverse: nel primo, ogni modulo è largo 0,76mm; nel secondo, 0,44mm.
Il modulo è quello che la stampante deve mantenere e che la fotocamera deve risolvere. Quindi la domanda “quanto piccolo può essere il mio codice QR” è in realtà “quanto piccolo può essere un modulo, e quanti ne ho” — e la seconda metà è calcolabile.
# Quanto costa il tuo payload in moduli
Abbiamo fatto passare cinque tipi di payload attraverso l’encoder che MostlyQR spedisce effettivamente
(buildMatrix nel nostro packages/qr, che racchiude la libreria MIT node-qrcode) a
tutti e quattro i livelli di correzione d’errore. Il numero dopo la barra è la dimensione della griglia —
i moduli su un lato, non contando la zona silenziosa.
| Payload | Caratteri | EC L | EC M | EC Q | EC H |
|---|---|---|---|---|---|
| link breve | 21 | v2 / 25 | v2 / 25 | v2 / 25 | v3 / 29 |
| accesso Wi-Fi (WPA) | 47 | v3 / 29 | v4 / 33 | v4 / 33 | v6 / 41 |
| URL campagna con tag UTM | 87 | v5 / 37 | v6 / 41 | v7 / 45 | v9 / 53 |
| URL prodotto lungo | 116 | v6 / 41 | v7 / 45 | v9 / 53 | v10 / 57 |
| vCard (nome, org, telefono, email, URL) | 135 | v6 / 41 | v8 / 49 | v9 / 53 | v11 / 61 |
Queste sono le stringhe esatte, quindi puoi riprodurre ogni riga:
https://mqr.sh/AB12CD
WIFI:T:WPA;S:CafeGuest;P:coffee-and-cake-2026;;
https://example.com/spring-menu?utm_source=poster&utm_medium=qr&utm_campaign=spring2026
https://example.com/collections/spring-2026/products/heirloom-tomato-seed-pack-organic?variant=4471029&ref=packaging
BEGIN:VCARD ⏎ VERSION:3.0 ⏎ N:Novak;Ana ⏎ FN:Ana Novak ⏎ ORG:MostlyQR ⏎
TEL:+4420790000 ⏎ EMAIL:anna@example.org ⏎ URL:https://mostlyqr.com ⏎ END:VCARD
La variazione è il punto. Su payload ordinari, di tutti i giorni, la griglia va da 25 a 61 moduli per lato — un fattore di 2,4 in densità lineare, prima che chiunque abbia scelto una dimensione di carta.
# Se controlli questa tabella, controllala con le stringhe
Il solo conteggio dei caratteri non riprodurrà questi numeri, ed è utile sapere perché prima di concludere che abbiamo sbagliato.
Un encoder QR non tratta ogni carattere come un byte. Sceglie una modalità di codifica per ogni sequenza di caratteri — numerica (3⅓ bit per cifra), alfanumerica (5½ bit, ma solo per cifre, lettere maiuscole e alcuni simboli), o byte (8 bit) — e un buon encoder divide un payload in più segmenti per ottenere il totale più economico. Il nostro lo fa. Ecco cosa ha effettivamente scelto:
| Payload | Segmenti |
|---|---|
| link breve | Byte:14 + Alphanumeric:7 |
| accesso Wi-Fi | Alphanumeric:10 + Byte:37 |
| URL campagna | Byte:83 + Numeric:4 |
| URL prodotto lungo | Byte:95 + Numeric:7 + Byte:14 |
| vCard | Alphanumeric:11 + Byte:1 + Alphanumeric:11 + Byte:44 + Numeric:10 + Byte:49 + Alphanumeric:9 |
Codifica gli stessi conteggi di caratteri come un’unica sequenza byte invece e ottieni una tabella diversa, più grande — v3/29 per il link breve al livello Q invece di v2/25, e v7/45 per la vCard al livello L invece di v6/41. Entrambe le tabelle sono corrette; descrivono payload diversi.
Questo ti dà una leva gratuita, se i tuoi link brevi usano uno slug maiuscolo.
https://mqr.sh/AB12CD si divide in byte + alfanumerico perché lo schema e
l’host sono minuscoli. Scrivi l’intero URL in maiuscolo — HTTPS://MQR.SH/AB12CD — e
diventa un segno alfanumerico di 21 caratteri: al livello L questo è v1, 21
moduli, una versione intera più piccola della forma mista. (Ai livelli M e Q
questa particolare stringa rimane a v2/25 — sta già beneficiando della
coda alfanumerica; il guadagno si mostra a L, e cresce con la lunghezza della sequenza maiuscola.) Lo schema e l’host sono case-insensitive quindi l’URL si risolve
identicamente; il percorso non lo è, quindi questo funziona solo se il tuo slug è veramente maiuscolo. I nostri lo sono.
# Gli stessi 25mm, cinque codici diversi
Ora fissa la larghezza stampata e leggi cosa ogni payload ti lascia. Questo è (larghezza ÷ (moduli + 8)), dove 8 è la zona silenziosa obbligatoria di quattro moduli su ogni lato:
| Payload | Dimensione modulo EC M a 25mm | Dimensione modulo EC H a 25mm |
|---|---|---|
| link breve | 0,76mm | 0,68mm |
| accesso Wi-Fi | 0,61mm | 0,51mm |
| URL campagna con UTM | 0,51mm | 0,41mm |
| URL prodotto lungo | 0,47mm | 0,38mm |
| vCard | 0,44mm | 0,36mm |
Lo stesso quadrato sulla pagina. Il doppio della dimensione della caratteristica a un’estremità della tabella rispetto all’altra. Una tipografia che è a suo agio nel mantenere 0,5mm pulitamente produrrà un codice link-breve perfetto e una vCard marginale dallo stesso layout.
# La larghezza minima, dall’altra direzione
La maggior parte delle persone arriva con la domanda opposta: non “cosa ottengo a 25mm” ma “quanto piccolo posso andare”. Scegli una dimensione di modulo che il tuo processo di stampa può effettivamente mantenere — 0,5mm è un limite comune per la stampa offset e digitale decente su carta patinata — e la larghezza segue:
| Payload | EC M | EC H |
|---|---|---|
| link breve | 16,5mm | 18,5mm |
| accesso Wi-Fi | 20,5mm | 24,5mm |
| URL campagna con UTM | 24,5mm | 30,5mm |
| URL prodotto lungo | 26,5mm | 32,5mm |
| vCard | 28,5mm | 34,5mm |
Questo è l’intervallo in cui internet comprime in “circa 2cm”. Alle estremità, 2cm è sia il 20% più grande del necessario sia il 40% più piccolo di quello con cui puoi convivere.
Se la tua stampante può mantenere 0,33mm — stampa su schermo fine, digitale buono, nessuna carta assorbente — dividi questi per 1,5. Se stai stampando su carta ondulata, tessuto o qualsiasi cosa che diffonde l’inchiostro, vai dall’altra parte e supponi 1mm.
# La leva più grande è l’URL, non la stampante
Guarda di nuovo la prima tabella. Il link breve e l’URL prodotto lungo sono le stesse informazioni — portano entrambi qualcuno nella stessa pagina — e uno di loro è 25 moduli mentre l’altro è 45.
Questo è l’intero gioco. Ogni millimetro di dimensione di modulo che compri discutendo con la tua stampante, puoi ottenerlo gratis accorciando quello che il codice codifica. Un link breve dinamico è 21 caratteri indipendentemente da quanto sia lunga la destinazione, e ha un secondo vantaggio che importa di più in una tirata di stampa: puoi cambiare dove punta dopo che l’inchiostro è asciutto, quindi un codice che sopravvive alla sua pagina di destinazione non diventa un vicolo cieco.
Per qualsiasi cosa che sarà stampata piccola — un biglietto da visita, un’etichetta, l’angolo di un menu — codifica un link breve e reindirizza. Codificare l’URL della campagna completo con i suoi tag UTM direttamente nel codice ti costa 16 moduli per lato e non ti compra nulla che un reindirizzamento non possa fare meglio.
# Cosa ti costa la correzione d’errore in termini di dimensione
La correzione d’errore aggiunge ridondanza così un codice danneggiato o parzialmente coperto ancora legge. Non è gratis, e le tabelle sopra lo indicano:
- link breve, M → H: 25 → 29 moduli (+16% lineare)
- accesso Wi-Fi, M → H: 33 → 41 (+24%)
- vCard, M → H: 49 → 61 (+24%)
Un quarto di larghezza in più, per un codice che sopravvive a graffi, stampa su imballaggio, o parzialmente coperto da un logo. Su un poster, dove lo spazio è libero, prendi il livello H e smetti di pensarci. Su un’etichetta dove 30mm è tutto quello che hai, il livello M con un link breve batte il livello H con un URL lungo — il payload più breve trasporta più robustezza della correzione d’errore extra.
Se stai coprendo il centro con un logo, il compromesso si sposta duramente verso H, e c’è un budget misurato per quanto grande il logo può essere.
# Quello che questo non misura
Tutto quanto sopra riguarda il simbolo. È aritmetica su un encoder, è esatto, e puoi eseguirlo di nuovo. È anche solo metà di quello che decide se un codice stampato scansiona:
- Non abbiamo testato la distanza di scansione con fotocamere reali. La regola pratica dell’industria — la larghezza del codice dovrebbe essere circa un decimo della distanza da cui vuoi scansionarlo — è ampiamente citata e non l’abbiamo verificata. Trattala come un punto di partenza per poster e segnaletica, non come una misurazione.
- La diffusione dell’inchiostro, il substrato e il contrasto non sono nei numeri. Un modulo 0,4mm su carta patinata e un modulo 0,4mm su carta ondulata non sono lo stesso modulo.
- La qualità della fotocamera varia enormemente. Un telefono di cinque anni in un ristorante scuro è il vero test, ed è quello che dovresti effettivamente eseguire: stampa il codice alla dimensione che intendi, sul materiale che intendi, e scansionalo con il peggior telefono dell’ufficio.
Quel ultimo non è un’avvertenza, è il consiglio. L’aritmetica ti dice quali dimensioni sono degne di test. Il test ti dice se funziona.
# Eseguire questo tu stesso
Ogni tabella sopra è stampata da uno script piuttosto che digitata nell’articolo, e
lo script è nel repository a draft/mostlyqr/seo/benchmarks/print-size.js.
Esegue buildMatrix sulle cinque stringhe sopra, scarica i
segmenti di modalità di codifica, stampa la tabella di controllo modalità byte accanto a quella vera, e deriva le
figure in millimetri. Se un numero qui è sbagliato, quel file è dove è sbagliato.
# La versione breve
- Codifica un link breve, non l’URL completo — è l’unica leva che cambia la griglia invece della carta.
- Cerca il conteggio dei moduli del tuo payload sopra, o calcolalo.
- Moltiplica (moduli + 8) per il modulo più piccolo che il tuo processo di stampa mantiene pulitamente. Questa è la tua larghezza minima. (Se stai inserendo il codice in uno dei nostri template, un poster in A3 e un volantino in A4 lasciano entrambi molto più spazio di quello di cui ha bisogno qualsiasi payload qui.)
- Stampalo a quella dimensione, sul materiale vero, e scansionalo con un brutto telefono.
Se vuoi che il codice trasporti un’immagine così come i dati, la domanda sulla dimensione diventa ancora più acuta — una fotografia ha bisogno di una griglia molto più densa per essere visibile a tutti, che abbiamo misurato separatamente per codici QR fotografici.
Domande frequenti
Qual è la dimensione minima per un codice QR?
Non c'è un numero. Il codice è una griglia di moduli, e quanti moduli ha bisogno dipende interamente da quanti dati metti. Un collegamento breve al livello di correzione degli errori M è 25 moduli attraverso; lo stesso codice che trasporta una vCard è 49. Stampato alla stessa larghezza, i moduli del secondo sono quasi metà della dimensione — quindi uno di loro si scansiona a 17 mm e l'altro no. Elabora prima il tuo conteggio dei moduli, quindi scegli una larghezza.
Un URL più lungo rende il codice QR più grande?
Lo rende più denso, il che equivale alla stessa cosa. Nelle nostre misurazioni un collegamento breve di 21 caratteri si codifica in 25 moduli al livello M, e un URL di prodotto di 116 caratteri a 45. Stampa entrambi 25 mm di larghezza e i moduli sono rispettivamente 0,76 mm e 0,47 mm. Accorciare l'URL è il modo più economico per rendere stampabile un codice piccolo — non costa nulla ed è l'unica leva che cambia la griglia piuttosto che la carta.
Una correzione degli errori più elevata rende il codice più grande?
Sì, e di più di quanto la maggior parte delle persone si aspetti. Passare dal livello M al livello H ha aggiunto tra 4 e 12 moduli per lato in tutti e cinque i payload — per la vCard, 49 moduli sono diventati 61, che è un aumento del 25% nella dimensione lineare che devi stampare. Il livello H di solito vale la pena se il codice verrà maneggiato, stampato su imballaggio o parzialmente coperto da un logo, ma è una decisione di dimensione, non un aggiornamento gratuito.
Quanto spazio bianco ha bisogno un codice QR intorno a sé?
Quattro moduli su ogni lato. Quella zona tranquilla è parte del simbolo, non decorazione — i lettori la usano per trovare i bordi — quindi appartiene all'aritmetica. Ogni larghezza stampata in questo articolo è calcolata come (moduli + 8) × dimensione del modulo esattamente per questo motivo.
- I codici QR fotografici funzionano davvero? I nostri risultati del test di decodificaUn codice QR che è una fotografia potrebbe sembrare che funzioni peggio. Abbiamo misurato il nostro con un decoder reale — sfocato, ridimensionato e letto come legge un lettore.
- Quanto grande può essere il logo su un codice QR? L'abbiamo misurato"Correzione degli errori al 30%" non è un budget per il logo. Abbiamo fatto buchi sempre più grandi nei codici a ogni livello EC finché un decoder reale non ha rinunciato, e abbiamo registrato dove si è rotto.