¿Cómo funcionan los códigos QR?

Qué hay dentro de esos cuadraditos, por qué siguen leyéndose con un logotipo encima o medio arañados, y las cuatro reglas que separan un QR que funciona de uno que nadie consigue escanear.

Por , Desarrollador full stack

En esta página

Un código QR parece ruido. Es exactamente lo contrario: cada cuadradito está donde está por un motivo, y una buena parte de ellos no contiene tu enlace, sino instrucciones para que una cámara sepa leer los que sí.

Entender esa estructura sirve para algo muy concreto: dejar de imprimir códigos que no se escanean. Casi todos los QR que fallan lo hacen por las mismas cuatro razones, y las cuatro se evitan sabiendo qué tiene dentro.

¿Qué es un código QR?

Es una matriz de módulos —los cuadraditos— en blanco y negro, no una imagen. La diferencia importa: un QR no se estira, no se recorta y no se «mejora» retocándolo, porque cada módulo es un bit de información colocado en una posición fija.

Lo inventó Denso Wave en 1994, una filial de Toyota, para seguir piezas en una cadena de montaje. De ahí vienen dos de sus rasgos: se lee desde cualquier ángulo y aguanta que esté sucio.

La anatomía

Si miras un QR con atención, verás piezas que se repiten en todos:

  • Los tres cuadrados de las esquinas son los patrones de posición. Le dicen a la cámara dónde está el código, a qué escala y con qué rotación. Son la razón por la que puedes escanear del revés.
  • El cuadrado pequeño cerca de la cuarta esquina es el patrón de alineación, y corrige la deformación cuando el papel está curvado o la foto sale torcida.
  • Las dos líneas de puntos alternos que unen las esquinas son el patrón de temporización: fijan el tamaño exacto del módulo.
  • Las franjas junto a las esquinas guardan el formato: qué nivel de corrección de errores lleva y qué máscara se aplicó.
  • Todo lo demás son tus datos y su redundancia.

El tamaño de la matriz se llama versión, y va de la 1 (21×21 módulos) a la 40 (177×177). Cuanto más metes, más grande es la matriz y más pequeño queda cada módulo al imprimirlo en el mismo espacio. Por eso un enlace corto se escanea mejor: no es una superstición, es geometría.

¿Por qué se lee aunque esté dañado?

Aquí está la parte elegante. Un QR guarda los datos con corrección de errores Reed-Solomon, el mismo tipo de matemática que permitía a un CD rayado seguir sonando. Hay cuatro niveles:

  • L — recupera hasta un 7 % del código dañado.
  • M — hasta un 15 %.
  • Q — hasta un 25 %.
  • H — hasta un 30 %.

De ahí sale el truco del logotipo en el centro: no es que el lector «ignore» esa zona, es que la información que tapas está duplicada en otro sitio. Con nivel H puedes cubrir hasta cerca de un tercio del código y seguir funcionando.

Con dos avisos. El primero: subir el nivel de corrección hace el código más grande para los mismos datos, porque la redundancia ocupa. El segundo: el logotipo va en el centro y nunca sobre los cuadrados de las esquinas — esos no son datos, son las referencias que la cámara necesita para encontrar el código, y sin ellos no hay nada que corregir.

Las cuatro reglas que hacen que funcione

Margen. Un QR necesita una zona en blanco de cuatro módulos a su alrededor. Es el error más común en diseño: pegar el código al borde de un folleto o meterlo dentro de una caja de color. Sin margen, la cámara no encuentra dónde empieza.

Contraste y sentido. Oscuro sobre claro, siempre. Los lectores esperan módulos oscuros sobre fondo claro; invertirlo —claro sobre oscuro— falla en muchos escáneres. Y un QR de color pastel sobre blanco tiene el mismo problema que un texto gris claro: no hay contraste suficiente para separar módulo de fondo.

Tamaño. La regla práctica es 1:10: el código debe medir aproximadamente la décima parte de la distancia desde la que se va a escanear. Para un cartel que se lee a dos metros, unos 20 cm. Para una tarjeta que se sostiene en la mano, 2 cm bastan. Por debajo de 2 cm impresos, empieza a ser una lotería.

Proporción. Es cuadrado y se queda cuadrado. Estirarlo para que encaje en un hueco rompe la geometría que el lector usa para calcular el tamaño del módulo.

¿Estático o dinámico?

Un QR estático lleva el destino escrito dentro. Es para siempre: si el enlace cambia, hay que reimprimir.

Un QR dinámico lleva dentro la dirección de un intermediario que redirige. Permite cambiar el destino y contar escaneos, pero introduce una dependencia incómoda: si ese servicio cierra, sube de precio o caduca la cuenta, todos los códigos impresos dejan de funcionar a la vez. Hemos visto folletos y placas quedarse mudos por eso.

La recomendación es simple: si vas a imprimir algo que dura años —una placa, un menú, un embalaje—, que el QR apunte a un dominio tuyo. Ahí ya puedes redirigir a donde quieras, y la redirección la controlas tú.

Lo que hay dentro no siempre es un enlace

Un QR admite texto plano, y sobre eso hay convenciones: WIFI: para conectar a una red sin dictar la contraseña, BEGIN:VCARD para una ficha de contacto, mailto: o tel: para abrir el correo o el teléfono. Todo eso lo escribe cualquier generador, incluido el nuestro, que además deja descargarlo en SVG para que el impresor no reciba un PNG pixelado.

Y antes de escanear uno ajeno

El reverso de que un QR sea ilegible para las personas es que no sabes a dónde te lleva hasta que ya estás yendo. Existe una estafa con nombre propio —quishing— que consiste exactamente en eso: pegatinas encima del QR legítimo de un parquímetro, de un cartel o de una factura.

La defensa es leerlo antes de abrirlo. Nuestro lector de códigos QR enseña el contenido en texto y no abre nada por su cuenta: tú decides después de ver la dirección completa. Es medio minuto que ahorra el disgusto.


Un código QR es una pieza de ingeniería de treinta años que sigue funcionando porque asumió desde el principio que el mundo real está sucio, torcido y mal iluminado. Merece que le demos el margen, el contraste y el tamaño que pide.

¿Hablamos de landings de nicho y alta concurrencia?

Cuéntanos tu caso y te respondemos con una primera lectura del alcance en menos de 24 horas hábiles.

Respondemos en menos de 24 horas hábilesBogotá · UTC−5

Escríbenos por WhatsApp (se abre en una pestaña nueva)