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 empaques. Esos números son conjeturas disfrazadas de estándares, y están mal en ambas direcciones: demasiado grandes para un enlace corto en una tarjeta de presentación, peligrosamente demasiado pequeños para un vCard en la etiqueta de una botella.

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

# Por qué no hay 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 cuadraditos — y el número de módulos está fijo por tu contenido, no por ti. Veintiún caracteres de enlace corto necesitan una cuadrícula de 25×25. Un 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 la primera, cada módulo mide 0,76mm de ancho; en la segunda, 0,44mm.

El módulo es lo que la impresora tiene que sostener y lo que la cámara tiene que resolver. Así que 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 de ellos tengo” — y la segunda parte es calculable.

# Cuánto cuesta tu contenido en módulos

Pasamos cinco tipos de contenido por el codificador que MostlyQR realmente usa (buildMatrix en nuestro packages/qr, que envuelve la librería node-qrcode del MIT) 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 en un lado, sin contar la zona tranquila.

Contenido Caracteres EC L EC M EC Q EC H
enlace corto 21 v2 / 25 v2 / 25 v2 / 25 v3 / 29
Wi-Fi join (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 larga 116 v6 / 41 v7 / 45 v9 / 53 v10 / 57
vCard (nombre, org, teléfono, correo, URL) 135 v6 / 41 v8 / 49 v9 / 53 v11 / 61

Estas son las cadenas exactas, así 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:Novak;Ana ⏎ FN:Ana Novak ⏎ ORG:MostlyQR ⏎
TEL:+4420790000 ⏎ EMAIL:anna@example.org ⏎ URL:https://mostlyqr.com ⏎ END:VCARD

La dispersión es el punto. En contenidos ordinarios, cotidianos, la cuadrícula va de 25 a 61 módulos por lado — un factor de 2,4 en densidad lineal, antes de que nadie haya elegido un tamaño de papel.

# Si verificas esta tabla, verifícala con las cadenas

El conteo de caracteres solo no reproducirá esos números, y vale la pena saber por qué antes de concluir que los obtuvimos mal.

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

Contenido Segmentos
enlace corto Byte:14 + Alphanumeric:7
Wi-Fi join Alphanumeric:10 + Byte:37
URL de campaña Byte:83 + Numeric:4
URL de producto larga Byte:95 + Numeric:7 + Byte:14
vCard Alphanumeric:11 + Byte:1 + Alphanumeric:11 + Byte:44 + Numeric:10 + Byte:49 + Alphanumeric:9

Codifica los mismos conteos de caracteres como una única serie de bytes en su lugar y obtendrás una tabla diferente, más grande — v3/29 para el enlace corto en nivel Q en lugar de v2/25, y v7/45 para el vCard en nivel L en lugar de v6/41. Ambas tablas son correctas; describen contenidos diferentes.

Lo que te da una palanca gratuita, si tus enlaces cortos usan una ruta en mayúsculas. https://mqr.sh/AB12CD se divide en byte + alfanumérico porque el esquema y el host son 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 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 mixtas. (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 serie de mayúsculas.) El esquema y el host no distinguen mayúsculas de minúsculas así que la URL se resuelve idénticamente; la ruta no, así que esto solo funciona si tu ruta es genuinamente mayúscula. Las nuestras lo son.

# Los mismos 25mm, cinco códigos diferentes

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

Contenido Tamaño de módulo EC M a 25mm Tamaño de módulo EC H a 25mm
enlace corto 0,76mm 0,68mm
Wi-Fi join 0,61mm 0,51mm
URL de campaña con UTMs 0,51mm 0,41mm
URL de producto larga 0,47mm 0,38mm
vCard 0,44mm 0,36mm

El mismo cuadrado en la página. El doble de tamaño de característica en un extremo de la tabla que en el otro. Una imprenta que es capaz de sostener 0,5mm limpiamente producirá un código de enlace corto perfecto y un vCard marginal del diseño idéntico.

# 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 llegar”. Elige un tamaño de módulo que tu proceso de impresión realmente pueda sostener — 0,5mm es un piso común para impresión offset y digital de calidad en papel recubierto — y el ancho se deduce:

Contenido EC M EC H
enlace corto 16,5mm 18,5mm
Wi-Fi join 20,5mm 24,5mm
URL de campaña con UTMs 24,5mm 30,5mm
URL de producto larga 26,5mm 32,5mm
vCard 28,5mm 34,5mm

Ese es el rango que internet comprime en “unos 2cm”. En los extremos de él, 2cm es ya sea 20% más grande de lo que necesitas o 40% más pequeño de lo que puedes tolerar.

Si tu impresora puede sostener 0,33mm — serigrafía fina, digital buena, 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 supón 1mm.

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

Mira nuevamente la primera tabla. El enlace corto y la URL de producto larga son la misma información — ambas llevan a alguien a la misma página — y una de ellas es 25 módulos mientras la otra es 45.

Ese es todo el juego. Cada milímetro de tamaño de módulo que compres argumentando con tu impresora, puedes obtenerlo gratis acortando lo que el código codifica. Un enlace corto dinámico son 21 caracteres sin importar qué tan largo sea el destino, y tiene una segunda ventaja que importa más en una tirada de impresión: puedes cambiar adónde apunta después de que la tinta se seque, así que un código que sobrevive a 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 presentación, 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 una redirección no pueda hacer mejor.

# Qué cuesta la corrección de errores en tamaño

La corrección de errores agrega redundancia para que un código dañado o parcialmente cubierto siga siendo legible. No es gratis, y las tablas anteriores lo establecen:

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

Un cuarto más de ancho, para un código que sobreviva ser rayado, impreso en empaques, o parcialmente cubierto por un logo. En un póster, donde el espacio es gratis, toma nivel H y deja de pensar en ello. En una etiqueta donde 30mm es todo lo que tienes, nivel M con un enlace corto vence al nivel H con una URL larga — el contenido más corto es llevando más de la robustez que la corrección de error extra habría conseguido.

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

# Qué esto no mide

Todo lo anterior es sobre el símbolo. Es aritmética sobre un codificador, es exacto, y puedes reejecutarlo. También es solo la mitad de lo que decide si un código impreso 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 cual 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 medida.
  • La dispersión de tinta, el sustrato y el contraste no están en los números. Un módulo de 0,4mm en papel recubierto 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 en el tamaño que pretendes, en el papel que pretendes, y escanéalo con el teléfono más viejo de la oficina.

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

# Reejecutando esto tú mismo

Cada tabla anterior se imprime con un script en lugar de escribirse 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 junto a la real, y deduce las figuras 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 conteo de módulos de tu contenido arriba, o calcúlalo.
  3. Multiplica (módulos + 8) por el módulo más pequeño que tu proceso de impresión sostiene limpiamente. Ese es tu ancho mínimo. (Si estás colocando el código en uno de nuestros plantillas, un póster en A3 y un folleto en A4 ambos dejan mucho más espacio del que cualquier contenido aquí necesita.)
  4. Imprímelo en 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 del tamaño se vuelve mucho más aguda — una fotografía necesita una cuadrícula mucho más densa para ser visible en absoluto, lo 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