Google trata 404 y 410 de manera diferente, y la diferencia importa cuando estás retirando URLs en masa. La versión corta: 404 dice "falta, intenta de nuevo más tarde"; 410 dice "desaparecida, nunca vuelve". Googlebot revisita 404s durante semanas antes de eliminarlas del índice. Elimina 410s en días. Si estás en medio de una migración y mirando miles de URLs que deberían desaparecer para siempre, elegir el código correcto ahorra semanas en la limpieza.
Conclusión clave: Google mantiene las URLs con 404 en el índice durante meses, pero elimina las 410 en días; usa 410 para páginas eliminadas permanentemente y 301 cuando existe un reemplazo.Google keeps 404 URLs in the index for months but drops 410s in days; use 410 for pages removed for good and a 301 when a replacement exists.
Qué significa realmente cada código
404 Not Found es la respuesta predeterminada cuando un recurso no existe en la URL solicitada. El servidor está diciendo "esta URL no tiene recurso ahora mismo". La implicación es permisiva: quizás la URL tenga un recurso más tarde, quizás es un error tipográfico, quizás el recurso se movió y alguien olvidó enviar una redirección. El 404 es una red amplia.
410 Gone es el código de retiro explícito. El servidor está diciendo "esta URL tenía un recurso, ha sido eliminado permanentemente, no preguntes de nuevo". Es la señal de puerta que se cierra. Google documenta esto explícitamente: 410 se interpreta como una señal más fuerte para eliminar la URL del índice que 404.
Cómo Googlebot trata cada uno
Comportamiento de 404. Googlebot encuentra un 404, marca la URL como faltante, pero la mantiene en la cola de rastreo. El bot revisita la URL en un cronograma cada vez más lento (24h, luego 7d, luego 30d, luego 90d). Si la URL eventualmente devuelve un 200 nuevamente, se reinstala. El ciclo continúa durante meses. La URL permanece en el informe de Cobertura de Search Console bajo "No encontrada (404)" durante todo el tiempo.
Comportamiento 410. Googlebot encuentra un 410, marca la URL como permanentemente retirada, la elimina del índice en cuestión de días. La URL aparece brevemente en Search Console bajo "Página eliminada por reclamación legal" o "Soft 404" dependiendo de la interpretación de Google, luego desaparece. La cola de rastreo deja de revisitarla.
La diferencia funcional es días versus meses de contaminación del índice.
Cuándo elegir 410 sobre 404
- Limpieza de migración: URLs que ya no existen en el nuevo sitio y no tienen equivalente semántico. Usa 410. Se han ido.
- Publicaciones de blog eliminadas: contenido antiguo que intencionalmente has retirado. 410 si estás seguro; 404 si existe alguna posibilidad de que la publicación vuelva bajo el mismo slug.
- Páginas de productos deactivados: SKU que ya no vendes. 410 si el producto se retira permanentemente; 404 si podría volver.
- Jubilación de patrón de URL: por ejemplo, retirar /forum/* porque el foro fue deactivado. 410 en toda la ruta.
- URLs basura de hackeos pasados o errores de CMS que de alguna manera terminaron en el índice. 410.
Cuándo 404 es la opción correcta
- Errores tipográficos y URLs que nunca existieron: 404 es la respuesta convencional. 410 sería incorrecto porque la URL nunca tuvo contenido para empezar.
- Contenido bajo revisión para republicación: si la URL podría volver, 404 mantiene la puerta abierta para que Google la encuentre de nuevo.
- Páginas temporalmente no disponibles: 404 es incorrecto aquí también, usa 503 con un encabezado Retry-After. Pero en su ausencia, 404 es la opción predeterminada más segura para casos ambiguos.
Cómo configurar 410 en plataformas comunes
Vercel (vercel.json)
Añade una regla de rewrite o código de estado. El patrón más limpio es entregar un endpoint /410 y reescribir URLs retiradas hacia él con statusCode 410. Ten en cuenta que vercel.json soporta nativamente redirects, no rewrites de código de estado para URLs arbitrarias; el patrón es usar un middleware de Next.js que retorne new Response(null, { status: 410 }) para cualquier URL en tu lista de retiro.Next.js middleware that returns new Response(null, { status: 410 }) for any URL in your retirement list.
Netlify (netlify.toml o _redirects)
Usa la sintaxis _redirects: /retired-url 410! el signo de exclamación al final es la bandera force-status. O en netlify.toml, usa un bloque [[redirects]] con status = 410.
Apache (.htaccess)
Redirect gone /retired-url, o usa RewriteRule con la bandera [G]: RewriteRule ^retired-url$ - [G,L].
Nginx
return 410; dentro de un bloque location que coincida con el patrón de URL. Para patrones en masa: location ~ ^/old-pattern/ { return 410; }.
Por qué esto importa a escala
Un sitio con 10.000 URLs retiradas divididas 50/50 entre 404 y 410 verá la mitad de 410 desaparecer del informe de Cobertura dentro de dos semanas, y la mitad de 404 fluctuar en el informe de Cobertura durante tres a seis meses. El conjunto de 404 ocupa presupuesto de rastreo de Googlebot que debería ir a las URLs que quieres indexar. En sitios más grandes el impacto en el presupuesto es medible: menos presupuesto para retiradas significa más para contenido nuevo.
El patrón de migración
Tres pasos para cualquier limpieza de migración. Uno: extrae cada URL de Search Console, Ahrefs y el sitemap antiguo. Dos: categoriza cada URL en uno de cuatro grupos: (a) se asigna a una URL nueva → redirección 301, (b) renombrada a nuevo slug → 301, (c) retirada permanentemente → 410, (d) estado ambiguo → 404. Tres: despliega las reglas de redirección/410/404 en vercel.json o .htaccess en el mismo deploy que el contenido nuevo, más un linter SEO en tiempo de construcción que rompa la construcción si falta alguna URL anterior a la migración del conjunto de reglas.
Vale la pena conocer: el código 451
451 Unavailable For Legal Reasons existe para contenido que legalmente has sido requerido a remover. Es raro y específico: DMCA takedowns, GDPR right-to-erasure cuando la URL se retira completamente, órdenes judiciales. Google lo interpreta de forma similar a 410 (la elimina del índice) pero la señal legal es lo que importa. Úsalo solo cuando el contexto legal aplique.
El resumen
Usa 410 para retiro permanente. Usa 404 para contenido genuinamente faltante o ambiguo. La diferencia de limpieza de índice de dos semanas versus seis meses aparece en cada migración de algunos miles de URLs. La solución es una regla en vercel.json, netlify.toml, o .htaccess. Hazlo bien en el cutover y ahorras la limpieza posterior al lanzamiento que nadie presupuesta.
Lectura adyacente: 301 vs 302 vs 307 vs 308 es la decisión relacionada para URLs que no se retiran sino que se mueven. La misma limpieza de migración que necesita 410 también necesita la decisión de código de redirección; consulta el post de estrategia de redirección para ese marco.
Preguntas frecuentes
¿Cuál es la diferencia entre un código de estado 404 y 410?
Un 404 significa no encontrado: la página está ausente, pero el servidor no indica si va a regresar. Un 410 significa eliminado: la página ha sido intencionalmente y permanentemente removida. 410 es una señal más fuerte a los motores de búsqueda para eliminar la URL del índice más rápido.
¿Debo usar 404 o 410 para páginas eliminadas?
Usa 410 cuando deliberadamente has removido una página para siempre y no hay reemplazo. Usa 404 cuando una página está ausente pero el estado es incierto o temporal. Para una página renombrada o movida, no uses ninguno: un redireccionamiento 301 a la nueva URL es correcto.
¿El 410 elimina una página de Google más rápido que el 404?
Ligeramente. Google trata el 410 como una señal más clara de eliminación permanente y tiende a desindexar esas URLs un poco más rápido, pero ambos eventualmente se desindexan. La diferencia práctica es pequeña; lo que importa más es usar una redirección cuando existe un reemplazo en lugar de cualquiera de los dos códigos de error.
¿Los errores 404 perjudican el SEO?
Algunos errores 404 en páginas genuinamente eliminadas son normales e inofensivos. Solo perjudican cuando páginas importantes devuelven 404 por accidente, o cuando enlaces internos y mapas del sitio apuntan a ellas y desperdician presupuesto de rastreo. Corrige los 404 en páginas que deberían existir; deja el resto.
