Blog · 2026-08-30
Tu sitio puede estar quemando presupuesto de rastreo: soft 404 y la trampa del SPA fallback en Cloudflare Pages
Que cualquier URL rota devuelva 200 con la portada completa no es "por lo menos hay algo", es el rastreador gastando su cuota en URLs basura. Se arregla con un solo 404.html, y una vez arreglado salen a la luz problemas que antes eran invisibles.
Tu sitio nuevo no logra que suba la indexación y asumes que el contenido no es suficientemente bueno. Pero hay otra posibilidad: todas las URLs que no existen (enlaces externos rotos, enlaces internos mal escritos, rutas que los escáneres prueban al azar) devuelven 200 en tu sitio, y encima sirven la portada completa. El rastreador viene cada día y quema toda su cuota en esas peticiones basura, mientras las páginas que sí importan nunca entran en la fila.
El síntoma: haz curl a una ruta inexistente y mira qué devuelve
Teníamos un sitio de contenido de poco más de 60 páginas que llevaba mucho tiempo sufriendo por falta de rastreo. En el diagnóstico hicimos curl a varias rutas que con seguridad no existían: /random-xyz, /rss.xml, /llms.txt. Todas devolvieron HTTP 200, con el HTML completo de la portada en el body, 87KB, y canonical apuntando a /.
Eso es un soft 404: la URL no existe y el servidor dice que sí. Tiene dos rasgos traicioneros:
- El monitoreo queda todo en verde. Los chequeos de uptime y las pruebas de clic reciben un 200 y nunca disparan una alerta.
- Te engaña hasta a ti mismo. Quieres confirmar si el sitio tiene un
llms.txt, el curl devuelve 200 y das por hecho que existe, cuando en realidad recibiste la portada. A nosotros nos pasó exactamente así una vez.
La causa es simple: cuando la raíz de la compilación no tiene un 404.html, Cloudflare Pages cae automáticamente en modo single-page application y devuelve index.html con 200 para cualquier ruta que no encuentre. Para una SPA real eso es una función; para un sitio estático de varias páginas es un desastre, y encima es el comportamiento por defecto, sin ruido.
Por qué esto quema presupuesto de rastreo
"Si el canonical de la portada apunta a /, las URLs rotas no se van a indexar como contenido duplicado, ¿cuál es el problema?"
La indexación sí queda bloqueada, el rastreo no. El canonical vive dentro del HTML, así que Googlebot tiene que descargar los 87KB completos de la portada para poder leerlo. Cada URL rota es una descarga entera. Y las URLs rotas vienen de más lugares de los que uno imagina: enlaces externos que alguien escribió mal, rutas viejas que quedaron de un rediseño, y las rutas fijas que todo escáner prueba, tipo /feed o /.env.
Peor todavía: devolver 200 es decirle al buscador "esta URL está viva", así que se queda en su cola y la vuelve a rastrear una y otra vez, mientras que un 404 real hace que baje progresivamente la frecuencia de rastreo. La guía de gestión de presupuesto de rastreo de Google incluye explícitamente los soft 404 entre los factores que desperdician recursos de rastreo. En un sitio grande eso es ruido; en un sitio que ya de por sí recibe poco rastreo, es tirar por el desagüe la cuota que lo mantiene vivo.
La corrección: pon un 404.html y la plataforma sale del modo SPA
La corrección es desproporcionadamente barata: pones un 404.html real en la raíz de la compilación, Cloudflare Pages lo detecta, vuelve al modo de sitio estático y las rutas no encontradas pasan a devolver un HTTP 404 de verdad.
Nosotros metimos la página 404 dentro del generador en lugar de escribir un archivo huérfano a mano: con el mismo CSS y la misma navegación del sitio, y con enlaces a las páginas principales, para que la persona que llegó ahí por error tenga a dónde ir.
Resultados medidos:
- URLs rotas: 200 / 87KB → 404 / 34KB
- Las 67 páginas reales del sitio siguieron devolviendo 200, cero daños colaterales
- Repetimos la ronda cambiando el UA al de Googlebot y también recibimos 404
La verificación tiene tres frentes: que las URLs rotas devuelvan 404, que las buenas no se hayan roto, y que el rastreador vea lo mismo que ves tú. Verificar solo lo primero y dar por cerrado el tema es apostar.
Al día siguiente de arreglarlo, aparecieron los enlaces muertos
El día después de arreglar el soft 404, nuestro propio equipo tocó la navegación y se topó con un 404. Investigando, encontramos dos enlaces muertos que llevaban muchísimo tiempo en la barra de navegación de la portada: uno apuntaba a una página que nunca se llegó a crear, y el otro traía un nivel de directorio de más, porque la ruta correcta era /how-to-pick/ y el enlace decía /guide/how-to-pick/.
¿Por qué nadie lo había notado? Porque en la era del soft 404, hacer clic devolvía 200 y la portada, y eso se sentía como "raro pero funciona". En cuanto el 404 quedó bien, esos enlaces se mostraron por primera vez como lo que eran. La causa raíz también es típica: la portada se mantenía a mano y la navegación de las páginas internas la generaba el generador, así que cada lado evolucionó por su cuenta hasta desalinearse.
Así que no tomes el arreglo del 404 como el cierre del caso. Es el comienzo de que los problemas viejos se hagan visibles. En los días siguientes, espera pescar un lote de enlaces rotos que antes eran invisibles.
Convierte la revisión en una compuerta de despliegue, y primero demuestra que suena
Un problema que el ojo humano no detecta no debería seguir dependiendo del ojo humano. Agregamos al flujo de despliegue una compuerta de enlaces muertos: escanea cada href interno del resultado de la compilación y, si alguno no apunta a un archivo real y ninguna regla de redirección lo atrapa, bloquea el despliegue completo.
La clave está en la prueba negativa: vuelves a insertar a propósito un enlace muerto conocido y confirmas que la compuerta efectivamente lo detiene. Una compuerta que nunca viste detener nada es solo un adorno que te deja tranquilo.
Esa misma ronda de escaneo del sitio pescó otro problema invisible a simple vista: 27 páginas con títulos de más de 30 caracteres de ancho completo (incluida la portada, con 33.5). En los resultados de búsqueda en chino tradicional, que es el mercado de este sitio en Taiwán, el corte ocurre alrededor de los 28 a 30 caracteres, así que todo lo que sobra está escrito en vano. Los comprimimos página por página a menos de 30 caracteres, conservando la marca y la frase clave y recortando solo el relleno del final, y los excedidos quedaron en cero.
Cierre
Lo complicado del soft 404 no es arreglarlo, porque un solo 404.html lo resuelve. Lo complicado es que no presenta síntomas en ningún momento: el monitoreo en verde, el clic muestra una página, y hasta el comando de verificación te engaña. Si tu sitio corre en Cloudflare Pages o en cualquier plataforma con SPA fallback, haz curl ahora mismo a una ruta inexistente y mira qué devuelve. Si devuelve 200, ya encontraste una de las razones por las que la indexación no se mueve. Después de corregirlo, convierte el escaneo de enlaces muertos en una compuerta de despliegue y demuestra con una prueba negativa que funciona. Este tipo de problemas que "no parecen rotos y por eso nadie los arregla" los hemos atendido bastante; si quieres saber cuáles siguen escondidos en tu sitio, escríbenos.
Esta clase de deuda técnica la convertimos en servicio
Un problema como el soft 404 no tira tu sitio, solo consume tu presupuesto de rastreo en silencio hasta que un día descubres que las páginas nuevas nunca se indexan.
- Arquitectura del sitio y SEO técnico: códigos de estado, canonical, sitemap y robots alineados de una vez
- Monitoreo de indexación: estado página por página, para identificar las que se rastrean pero no se indexan
- Producción de contenido: que el presupuesto de rastreo se gaste en páginas que sí tienen contenido
| Plan | Costo | Qué incluye |
|---|---|---|
| Implementación | $900 USDT | Arquitectura del sitio, SEO técnico, contenido inicial |
| Mantenimiento mensual | $400 USDT / mes | Producción de contenido, mantenimiento de enlaces internos, monitoreo de indexación |
Las especificaciones están en Servicio de construcción SEO para iGaming.
Resolvemos este tipo de problema a diario
Cuéntanos tu situación y te decimos sin rodeos si se puede hacer y cuánto cuesta aproximadamente.
Hablar por Telegram