Subes un favicon SVG nítido a producción, refrescas la pestaña y Chrome se ve impecable. Abres el mismo sitio en Safari y ves un icono de documento en blanco. El problema no es el SVG — es la cadena de fallback que falta detrás de él.
Una estrategia de fallback de favicon es el conjunto por capas de archivos de iconos y tags link de HTML que publicas para que cada navegador, pestaña y dispositivo muestre una imagen reconocible. En lugar de apostar por un único formato, proporcionas una secuencia: los navegadores prueban la primera coincidencia y luego van haciendo fallback hasta que algo funciona.
¿Qué es una Estrategia de Fallback de Favicon?
Es el orden deliberado de múltiples formatos de icono dentro de tu <head>, más los archivos a los que esos tags hacen referencia. Cada capa existe porque algo más simple no funciona — los navegadores antiguos ignoran SVG, las pestañas retina pixelan un PNG de 16×16, las pantallas de inicio móviles rechazan un ICO rasterizado. Una estrategia responde la pregunta "¿qué pasa si este archivo falla?" antes de que ocurra la falla.
Por Qué los Navegadores Necesitan una Cadena de Fallback
Ningún formato de icono por sí solo cubre todas las superficies. SVG es escalable pero no todos los navegadores legacy lo solicitan. PNG funciona casi en cualquier sitio pero no puede empaquetar múltiples resoluciones. ICO es el formato contenedor legacy que los navegadores aún consultan en /favicon.ico, y sigue siendo el único formato que todo navegador de escritorio entiende sin un hint en HTML.
Más allá de los formatos, los iconos aparecen en distintos lugares: pestañas del navegador, barra de marcadores, pestañas ancladas, pantalla de inicio móvil, accesos directos de la Nueva Pestaña, resultados de Google Search y diálogos de instalación de PWA. Cada superficie tiene sus propios requisitos de tamaño, reglas de color y preferencias de formato. Una estrategia aborda todas ellas — no solo la pestaña de 16×16.
Cómo Funciona la Selección del Navegador
La especificación de HTML define cómo los navegadores eligen un icono entre tus tags <link rel='icon'>. Los navegadores recorren la lista en orden y eligen la mejor coincidencia basándose en los atributos type, sizes y media. Si nada coincide, recurren a la solicitud legacy /favicon.ico documentada en la especificación de link relations de WHATWG.
De esto se desprenden dos reglas prácticas:
- El orden importa. El archivo más capaz (SVG) va primero; los menos capaces vienen después. Los navegadores no se saltan entradas a menos que un tag sea inválido.
- El atributo
typees un hint, no un filtro. Si un navegador no puede parsearimage/svg+xml, solicitará el siguiente icono en lugar de rendirse.
Construyendo un Stack Resiliente
Una estrategia completa suele incluir cuatro capas. Cada una cubre un vacío que la capa anterior no puede llenar.
1. Moderno: SVG (con media query opcional para modo oscuro)
SVG escala perfectamente en pantallas retina y admite una media query prefers-color-scheme dentro del propio archivo. Colócalo primero en tu <head> para que los navegadores que lo entienden lo recojan de inmediato.
2. Universal: PNG a 32×32 y 96×96
PNG es la red de seguridad para los navegadores que ignoran SVG. Enviar tanto 32×32 (para pestañas y marcadores) como 96×96 (para pantallas de alta densidad y el mínimo recomendado por Google) cubre la mayoría de los escenarios de escritorio. Para un análisis más profundo sobre decisiones de tamaño, consulta la Guía de Tamaños de Favicon.
3. Legacy: ICO con 16, 32 y 48 empaquetados juntos
Muchos navegadores aún hacen una solicitud automática a /favicon.ico en la raíz del sitio sin importar tus tags de link. Un archivo ICO multiresolución satisface esa solicitud implícita y evita el 404 en consola que de otro modo verías en tus logs. Los detalles del formato se cubren en nuestra guía del formato de archivo ICO.
4. Específico de plataforma: Apple Touch, manifest, pestaña anclada de Safari
Las pantallas de inicio de iOS quieren un PNG de 180×180 sin transparencia. Android quiere entradas de manifest a 192 y 512. Las pestañas ancladas de Safari quieren un SVG monocromo. Ninguno de estos reemplaza tu cadena de fallback — la amplía.
Un Patrón HTML Mínimo
<link rel='icon' href='/icon.svg' type='image/svg+xml'>
<link rel='icon' href='/icon-96.png' sizes='96x96' type='image/png'>
<link rel='icon' href='/icon-32.png' sizes='32x32' type='image/png'>
<link rel='icon' href='/favicon.ico' sizes='any'>
<link rel='apple-touch-icon' href='/apple-touch-icon.png'>
<link rel='mask-icon' href='/safari-pinned.svg' color='#000000'>
Fíjate en el orden deliberado: SVG primero (navegadores modernos), PNG después (universal), ICO al final (catch-all legacy). Cada tag degrada con gracia si el anterior se ignora.
Errores Comunes
- Omitir el archivo ICO. Algunos navegadores siguen consultando
/favicon.icosin importar tus tags de link. - Servir solo un tamaño de PNG. Un PNG de 16×16 se verá borroso en pestañas retina y quedará por debajo del mínimo recomendado por Google.
- Invertir el orden. Poner el PNG antes del SVG obliga a Chrome a cargar el archivo raster aunque usaría SVG con gusto.
- Olvidar el cache-busting. Los navegadores antiguos cachean los favicons de forma agresiva. Consulta la guía de cache-busting de favicons para el truco estándar con query strings.
Verificando la Cadena
Una estrategia vale solo lo que tu verificación. Abre DevTools, filtra el panel de red por img y confirma que cada navegador realmente solicita tu archivo preferido. Herramientas como Mzu favicondl también pueden inspeccionar un sitio en producción y listar cada icono que encuentran — SVG, PNG, ICO, manifest y Apple Touch — para que detectes capas faltantes antes que los usuarios.
El objetivo no es la perfección en un solo navegador. El objetivo es un icono reconocible en cada navegador, cada superficie, cada vez. Eso es lo que entrega una verdadera estrategia de fallback.