MostlyQR

¿Qué tan pequeño puede imprimirse un código QR? Los tamaños, calculados

No hay un único tamaño mínimo para un código QR. Ejecutamos cinco cargas útiles reales a través de nuestro propio codificador para los recuentos de módulos, luego los convertimos a milímetros.

Max Čelar··Impresión y escaneo

Novedades aquí: Versión de símbolo y recuento de módulos para cinco tipos de carga útil real en los cuatro niveles de corrección de errores, calculados con el codificador que MostlyQR distribuye, luego convertidos a milímetros impresos — por lo que el tamaño mínimo se deriva de tu carga útil en lugar de ser citado como un único número general.

Toda guía para imprimir códigos QR te da un único número. Dos centímetros. Una pulgada. Tres centímetros para embalaje. Esos números son conjeturas disfrazadas de estándares, y están equivocados en ambas direcciones: demasiado grande para un enlace corto en una tarjeta de visita, peligrosamente demasiado pequeño para una vCard en una etiqueta de botella.

La respuesta real es una división, y puedes hacerla antes de imprimir nada.

# Por qué no existe un único tamaño mínimo

Un código QR no es una imagen que se reduce. Es una cuadrícula de módulos — los pequeños cuadrados — y el número de módulos está fijo por tu carga útil, no por ti. Veintiuno de caracteres de enlace corto necesita una cuadrícula de 25×25. Una vCard con un nombre, un número de teléfono y un correo electrónico necesita 49×49. Imprime ambos a 25mm y habrás impreso dos cosas muy diferentes: en el primero, cada módulo tiene 0,76mm de ancho; en el segundo, 0,44mm.

El módulo es lo que la impresora tiene que mantener y lo que la cámara tiene que resolver. Entonces la pregunta “¿qué tan pequeño puede ser mi código QR” es realmente “¿qué tan pequeño puede ser un módulo, y cuántos tengo” — y la segunda mitad es computable.

# Lo que tu carga útil cuesta en módulos

Pasamos cinco tipos de carga útil a través del codificador que MostlyQR realmente envía (buildMatrix en nuestro packages/qr, que envuelve la librería MIT node-qrcode) en los cuatro niveles de corrección de errores. El número después de la barra es el tamaño de la cuadrícula — los módulos a través de un lado, sin contar la zona de silencio.

Carga útil Caracteres EC L EC M EC Q EC H
enlace corto 21 v2 / 25 v2 / 25 v2 / 25 v3 / 29
Unirse a Wi-Fi (WPA) 47 v3 / 29 v4 / 33 v4 / 33 v6 / 41
URL de campaña con etiquetas UTM 87 v5 / 37 v6 / 41 v7 / 45 v9 / 53
URL de producto largo 116 v6 / 41 v7 / 45 v9 / 53 v10 / 57
vCard (nombre, org, teléfono, correo electrónico, URL) 135 v6 / 41 v8 / 49 v9 / 53 v11 / 61

Estas son las cadenas exactas, por lo que puedes reproducir cada fila:

text
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:Celar;Max ⏎ FN:Max Celar ⏎ ORG:MostlyQR ⏎
TEL:+3861234567 ⏎ EMAIL:max@mostlyqr.com ⏎ URL:https://mostlyqr.com ⏎ END:VCARD

La dispersión es el punto. En cargas útiles ordinarias y cotidianas, la cuadrícula va de 25 a 61 módulos por lado — un factor de 2,4 en densidad lineal, antes de que alguien haya elegido un tamaño de papel.

# Si verificas esta tabla, veríficala con las cadenas

El recuento de caracteres solo no reproducirá esos números, y vale la pena saber por qué antes de que concluyas que nos equivocamos.

Un codificador QR no trata cada carácter como un byte. Elige un modo de codificación por cada secuencia de caracteres — numérico (3⅓ bits por dígito), alfanumérico (5½ bits, pero solo para dígitos, letras mayúsculas y un puñado de símbolos), o byte (8 bits) — y un buen codificador divide una carga útil en varios segmentos para obtener el total más barato. El nuestro lo hace. Aquí está lo que realmente eligió:

Carga útil Segmentos
enlace corto Byte:14 + Alphanumeric:7
Unirse a Wi-Fi Alphanumeric:10 + Byte:37
URL de campaña Byte:83 + Numeric:4
URL de producto largo Byte:95 + Numeric:7 + Byte:14
vCard Alphanumeric:11 + Byte:1 + Alphanumeric:11 + Byte:44 + Numeric:10 + Byte:49 + Alphanumeric:9

Codifica los mismos recuentos de caracteres como una única ejecución de byte en su lugar y obtendrás una tabla diferente y más grande — v3/29 para el enlace corto en el nivel Q en lugar de v2/25, y v7/45 para la vCard en el nivel L en lugar de v6/41. Ambas tablas son correctas; describen cargas útiles diferentes.

Lo que te da una palanca gratis, si tus enlaces cortos usan un slug en mayúsculas. https://mqr.sh/AB12CD se divide en byte + alfanumérico porque el esquema y el host están en minúsculas. Escribe toda la URL en mayúsculas — HTTPS://MQR.SH/AB12CD — y se convierte en un segmento alfanumérico de 21 caracteres: en el nivel L eso es v1, 21 módulos, una versión completa más pequeña que la forma de mayúsculas y minúsculas. (En los niveles M y Q esta cadena particular se mantiene en v2/25 — ya se está beneficiando de la cola alfanumérica; la ganancia aparece en L, y crece con la longitud de la secuencia en mayúsculas.) El esquema y el host no distinguen entre mayúsculas y minúsculas, por lo que la URL se resuelve de manera idéntica; la ruta no lo es, por lo que esto solo funciona si tu slug es genuinamente mayúsculas. El nuestro lo es.

# Los mismos 25mm, cinco códigos diferentes

Ahora fija el ancho impreso y lee lo que cada carga útil te deja. Esto es (ancho ÷ (módulos + 8)), siendo 8 la zona de silencio obligatoria de cuatro módulos en cada lado:

Carga útil Tamaño de módulo EC M a 25mm Tamaño de módulo EC H a 25mm
enlace corto 0,76mm 0,68mm
Unirse a Wi-Fi 0,61mm 0,51mm
URL de campaña con UTM 0,51mm 0,41mm
URL de producto largo 0,47mm 0,38mm
vCard 0,44mm 0,36mm

El mismo cuadrado en la página. El doble del tamaño de característica en un extremo de la tabla que en el otro. Una imprenta que se sienta cómoda manteniendo 0,5mm con limpieza producirá un código de enlace corto perfecto y una vCard marginal del mismo diseño.

# El ancho mínimo, desde la otra dirección

La mayoría de las personas llegan con la pregunta opuesta: no “¿qué obtengo a 25mm” sino “¿qué tan pequeño puedo ir”. Elige un tamaño de módulo que tu proceso de impresión realmente pueda mantener — 0,5mm es un piso común para impresión offset y digital decente en papel couché — y el ancho se deduce:

Carga útil EC M EC H
enlace corto 16,5mm 18,5mm
Unirse a Wi-Fi 20,5mm 24,5mm
URL de campaña con UTM 24,5mm 30,5mm
URL de producto largo 26,5mm 32,5mm
vCard 28,5mm 34,5mm

Ese es el rango que Internet comprime en “alrededor de 2cm”. En los extremos, 2cm es entre 20% más grande de lo que necesitas o 40% más pequeño de lo que puedes permitirte.

Si tu impresora puede mantener 0,33mm — serigrafía fina, digital bueno, sin papel absorbente — divide estos por 1,5. Si estás imprimiendo en cartón corrugado, tela o cualquier cosa que esparza tinta, ve en la otra dirección y asume 1mm.

# La palanca más grande es la URL, no la impresora

Mira de nuevo la primera tabla. El enlace corto y la URL de producto largo son la misma información — ambos llevan a alguien a la misma página — y uno de ellos es 25 módulos mientras que el otro es 45.

Ese es todo el juego. Cada milímetro de tamaño de módulo que compres discutiendo con tu imprenta, puedes obtenerlo gratis acortando lo que el código codifica. Un enlace dinámico corto tiene 21 caracteres sin importar cuán largo sea el destino, y tiene una segunda ventaja que importa más en una tirada de impresión: puedes cambiar a dónde apunta después de que la tinta se seque, por lo que un código que supera su página de destino no se convierte en un callejón sin salida.

Para cualquier cosa que será impresa pequeña — una tarjeta de visita, una etiqueta, la esquina de un menú — codifica un enlace corto y redirige. Codificar la URL de campaña completa con sus etiquetas UTM directamente en el código te cuesta 16 módulos por lado y no compra nada que un redireccionamiento no pueda hacer mejor.

# Lo que la corrección de errores te cuesta en tamaño

La corrección de errores agrega redundancia para que un código dañado o parcialmente cubierto pueda seguir siendo leído. No es gratis, y las tablas anteriores lo cotizan:

  • enlace corto, M → H: 25 → 29 módulos (+16% lineal)
  • Unirse a Wi-Fi, M → H: 33 → 41 (+24%)
  • vCard, M → H: 49 → 61 (+24%)

Un ancho un cuarto más grande, para un código que sobrevive a arañazos, impresión en embalaje, o parcialmente cubierto por un logotipo. En un póster, donde el espacio es libre, toma el nivel H y deja de pensar en ello. En una etiqueta donde tienes solo 30mm, el nivel M con un enlace corto vence al nivel H con una URL larga — la carga útil más corta está llevando más de la robustez que lo que la corrección de errores adicional proporcionaría.

Si estás cubriendo el medio con un logotipo, el trade-off se inclina mucho hacia H, y hay un presupuesto medido para qué tan grande puede ser el logotipo.

# Lo que esto no mide

Todo lo anterior trata sobre el símbolo. Es aritmética sobre un codificador, es exacto, y puedes volver a ejecutarlo. Es también solo la mitad de lo que decide si un código impreso se escanea:

  • No probamos la distancia de escaneo con cámaras reales. La regla de oro de la industria — el ancho del código debe ser aproximadamente una décima de la distancia desde la que quieres escanearlo — es ampliamente citada y no la hemos verificado. Trátala como un punto de partida para pósters y señalización, no como una medición.
  • La expansión de tinta, el sustrato y el contraste no están en los números. Un módulo de 0,4mm en papel couché y un módulo de 0,4mm en cartón corrugado no son el mismo módulo.
  • La calidad de la cámara varía enormemente. Un teléfono de cinco años en un restaurante oscuro es la verdadera prueba, y es la que realmente deberías ejecutar: imprime el código del tamaño que pretendas, en el papel que pretendas, y escanéalo con el peor teléfono de la oficina.

Ese último no es una salvedad, es el consejo. La aritmética te dice qué tamaños vale la pena probar. La prueba te dice si funciona.

# Volviendo a ejecutar esto tú mismo

Cada tabla anterior es impresa por un script en lugar de ser tipificada en el artículo, y el script está en el repositorio en draft/mostlyqr/seo/benchmarks/print-size.js. Ejecuta buildMatrix sobre las cinco cadenas anteriores, vuelca los segmentos del modo de codificación, imprime la tabla de control de modo byte al lado de la real, y deduce las cifras en milímetros. Si algún número aquí es incorrecto, ese archivo es donde es incorrecto.

# La versión corta

  1. Codifica un enlace corto, no la URL completa — es la única palanca que cambia la cuadrícula en lugar del papel.
  2. Busca el recuento de módulos de tu carga útil arriba, o compútalo.
  3. Multiplica (módulos + 8) por el módulo más pequeño que tu proceso de impresión puede mantener con limpieza. Ese es tu ancho mínimo. (Si estás colocando el código en una de nuestras plantillas, un póster a A3 y un folleto a A4 ambos dejan mucho más espacio del que cualquier carga útil aquí necesita.)
  4. Imprímelo a ese tamaño, en el papel real, y escanéalo con un teléfono malo.

Si quieres que el código lleve una imagen además de datos, la pregunta de tamaño se vuelve aún más aguda — una fotografía necesita una cuadrícula mucho más densa para ser visible en absoluto, que medimos por separado para códigos QR de foto.

Preguntas frecuentes

¿Cuál es el tamaño mínimo para un código QR?

No hay un solo número. El código es una cuadrícula de módulos, y cuántos módulos necesita depende totalmente de cuántos datos pongas en él. Un enlace corto en el nivel de corrección de errores M es de 25 módulos de ancho; el mismo código que lleva una vCard es 49. Impreso con el mismo ancho, los módulos del segundo son casi la mitad del tamaño — entonces uno de ellos escanea a 17mm y el otro no. Calcula primero tu recuento de módulos, luego elige un ancho.

¿Una URL más larga hace que el código QR sea más grande?

Lo hace más denso, lo que equivale a lo mismo. En nuestras mediciones un enlace corto de 21 caracteres se codifica en 25 módulos en el nivel M, y una URL de producto de 116 caracteres en 45. Imprime ambas 25mm de ancho y los módulos son 0,76mm y 0,47mm respectivamente. Acortar la URL es la forma más barata de hacer que un código sea imprimible pequeño — no cuesta nada y es la única palanca que cambia la cuadrícula en lugar del papel.

¿Una corrección de errores más alta hace que el código sea más grande?

Sí, y más de lo que la mayoría de la gente espera. Pasar del nivel M al nivel H agregó entre 4 y 12 módulos por lado en las cinco cargas útiles — para la vCard, 49 módulos se convirtieron en 61, lo que es un aumento del 25% en el tamaño lineal que tienes que imprimir. El nivel H generalmente vale la pena si el código será manejado, impreso en empaque o parcialmente cubierto por un logotipo, pero es una decisión de tamaño, no una actualización gratuita.

¿Cuánto espacio en blanco necesita un código QR alrededor de él?

Cuatro módulos en cada lado. Esa zona tranquila es parte del símbolo, no decoración — los lectores la usan para encontrar los bordes — por lo que pertenece a la aritmética. Cada ancho impreso en este artículo se calcula como (módulos + 8) × tamaño de módulo exactamente por esa razón.

Fuentes
  1. QR Code standardization (ISO/IEC 18004) — Denso Wave
  2. node-qrcode (the MIT encoder our matrix builder wraps)
Más en este tema