El error 404 Not Found es el código de estado HTTP más conocido de la web. Indica que el servidor ha recibido la solicitud correctamente y está funcionando, pero no ha podido encontrar el recurso en la URL especificada. El servidor existe y responde con normalidad: el problema está en la URL solicitada. Es un error de la familia 4xx (errores del cliente), aunque la causa puede estar tanto en el cliente (URL mal escrita, enlace roto) como en el servidor (página eliminada sin redirección, cambio de URL sin aviso). Su gestión correcta es crítica para el SEO: los errores 404 en URLs con historial de posicionamiento o backlinks pueden destruir autoridad de enlace acumulada durante años.
Qué significa exactamente el error 404
El código 404 está definido en el RFC 9110 con esta descripción: "The server did not find a current representation for the target resource or is not willing to disclose that one exists." (El servidor no encontró una representación actual del recurso de destino o no está dispuesto a revelar que existe).
Hay dos partes importantes en esta definición que a menudo se pasan por alto:
- "No encontró una representación actual": el recurso podría haber existido en el pasado (el 404 no distingue entre "nunca existió" y "ya no existe"). Para comunicar que existió pero fue eliminado permanentemente existe el código 410 Gone.
- "O no está dispuesto a revelar que existe": un servidor puede devolver 404 en lugar de 403 cuando quiere ocultar la existencia de un recurso protegido. Es una técnica de seguridad deliberada para no dar pistas sobre recursos confidenciales.
El 404 es el único error HTTP que el usuario medio conoce y reconoce intuitivamente. Ha trascendido su naturaleza técnica para convertirse en un elemento cultural de internet, con páginas de error 404 creativas que forman parte de la identidad visual de muchas empresas.
Error 404 vs error 410: cuándo usar cada uno
La distinción entre 404 y 410 es una de las más importantes para el SEO y una de las menos conocidas entre los administradores de sitios web:
| Aspecto | 404 Not Found | 410 Gone |
|---|---|---|
| Significado | El recurso no está disponible en esta URL ahora mismo. Podría volver en el futuro. | El recurso existió pero fue eliminado permanentemente y no volverá nunca. |
| ¿Comunica si el recurso existió? | No: el servidor no dice si existió antes o si simplemente nunca estuvo ahí. | Sí: confirma explícitamente que el recurso existió y fue eliminado de forma deliberada y permanente. |
| Procesamiento por Googlebot | Google espera antes de desindexar: comprueba varias veces durante semanas o meses. | Google desindexo más rápido: entiende que el contenido no volverá y procesa la eliminación antes. |
| Cuándo usarlo | Cuando la URL nunca existió, cuando el recurso puede volver, o cuando no tienes certeza de si volverá. | Cuando eliminaste contenido de forma deliberada y permanente: artículos descontinuados, productos retirados, secciones eliminadas. |
| Impacto en backlinks | Los backlinks que apuntan a la URL pierden valor gradualmente. | Los backlinks pierden valor también, pero el proceso de desindexación es más limpio y rápido. |
| Uso recomendado | La mayoría de los casos: URLs que nunca existieron o recursos temporalmente no disponibles. | Cuando quieres acelerar la desindexación de contenido eliminado permanentemente. |
Regla práctica: usa 404 como comportamiento por defecto para URLs que no existen. Usa 410 cuando hayas eliminado deliberadamente contenido que tenía tráfico o backlinks y quieras que Google lo desindexe lo antes posible. En WordPress, la mayoría de los plugins de redirecciones permiten configurar el código de respuesta como 410 en lugar de 404 para URLs específicas.
Causas más comunes del error 404
1. URL mal escrita o con errores tipográficos
La causa más sencilla y más frecuente desde el lado del cliente. Una letra cambiada, un guion en lugar de un guion bajo, mayúsculas donde debería haber minúsculas, o un carácter especial mal codificado bastan para que el servidor no encuentre el recurso. En servidores Linux (donde la mayoría de los servidores web están alojados), las URLs son case-sensitive: /Blog/entrada y /blog/entrada son URLs diferentes.
La solución en este caso es simplemente corregir la URL. Si el error viene de un enlace externo que escribió mal la URL de tu sitio, puedes crear una redirección 301 desde la URL errónea a la correcta para capturar ese tráfico:
# En Apache .htaccess — redirigir URL con error tipográfico:
Redirect 301 /blgo/mi-entrada/ /blog/mi-entrada/
# En Nginx:
location = /blgo/mi-entrada/ {
return 301 /blog/mi-entrada/;
}2. Página eliminada sin configurar redirección
Es la causa más dañina para el SEO. Cuando eliminas una página que tenía tráfico orgánico, backlinks o posicionamiento en Google, y no configuras una redirección 301 hacia la página más relevante disponible, toda la autoridad de enlace acumulada se pierde inmediatamente. Los visitantes que llegan desde Google o desde sitios externos que enlazan a esa URL reciben un 404.
Esto ocurre especialmente en estos escenarios:
- Eliminación de entradas de blog antiguas durante una limpieza de contenido.
- Eliminación de páginas de productos descontinuados en tiendas WooCommerce.
- Eliminación de páginas de servicios que ya no se ofrecen.
- Cambio de estructura de categorías que deja huérfanas las URLs antiguas.
3. Cambio de estructura de URLs sin redirecciones
Cambiar la estructura de URLs de un sitio sin configurar las redirecciones correspondientes es uno de los errores de SEO más costosos que puede cometer un administrador de sitio web. Ocurre cuando:
- Se cambia la estructura de permalinks en WordPress (de
/p=123a/año/mes/titulo/o viceversa). - Se cambia el slug de una categoría o etiqueta en WordPress.
- Se reorganiza la arquitectura del sitio moviendo páginas a diferentes subdirectorios.
- Se migra de un CMS a otro sin mapear las URLs antiguas a las nuevas.
- Se añade o elimina el
/blog/del prefijo de las entradas.
# Verificar el permalink actual de WordPress:
wp option get permalink_structure
# En WordPress, al cambiar permalinks, genera automáticamente un .htaccess correcto:
# Ajustes > Enlaces permanentes > Guardar cambios
# Esto regenera el .htaccess con las reglas de reescritura correctas para la nueva estructura
# Pero NO redirige las URLs antiguas a las nuevas automáticamente.
# Para eso necesitas el plugin Redirection o configurar las reglas manualmente:4. Migración de dominio sin redirecciones
Cambiar de dominio (de dominio-antiguo.com a dominio-nuevo.com) sin configurar redirecciones 301 desde todas las URLs del dominio antiguo al nuevo es un error grave que puede destruir años de posicionamiento en cuestión de semanas. Google trata el dominio antiguo y el nuevo como sitios completamente distintos hasta que las redirecciones establecen la equivalencia entre ambos.
# En el .htaccess del dominio antiguo — redirigir todo al nuevo dominio:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?dominio-antiguo\.com$ [NC]
RewriteRule ^(.*)$ https://dominio-nuevo.com/$1 [R=301,L]
# En Nginx del servidor del dominio antiguo:
server {
server_name dominio-antiguo.com www.dominio-antiguo.com;
return 301 https://dominio-nuevo.com$request_uri;
}5. Migración de HTTP a HTTPS sin redirecciones para todas las URLs
Al migrar de HTTP a HTTPS, si solo configuras la redirección de la página principal pero no de todas las URLs del sitio, las versiones HTTP de las URLs internas generan 404 cuando se accede directamente o cuando Googlebot las rastreo usando el protocolo antiguo.
# Redirección correcta en .htaccess — redirige TODAS las URLs de HTTP a HTTPS:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]6. Recursos estáticos con rutas incorrectas
El error 404 no afecta solo a páginas HTML: también aparece cuando una página intenta cargar recursos estáticos (imágenes, archivos CSS, archivos JavaScript, fuentes tipográficas) cuya ruta es incorrecta o ya no existen. Estos 404 de recursos no afectan directamente al contenido visible de la página, pero sí pueden impactar en el rendimiento y en el Core Web Vitals si el recurso faltante es un archivo CSS o JS crítico.
# Ver todos los 404 de recursos estáticos en los logs de Nginx:
sudo grep " 404 " /var/log/nginx/access.log | grep -E "\.(css|js|png|jpg|woff|svg)" | tail -20
# Ver todos los 404 en Apache:
sudo grep " 404 " /var/log/apache2/access.log | tail -307. Plugin o tema de WordPress eliminado con contenido asociado
Algunos plugins de WordPress crean sus propias estructuras de URLs (Custom Post Types, páginas de checkout, portfolios, bases de conocimiento). Al desactivar o eliminar esos plugins sin migrar el contenido ni configurar redirecciones, todas las URLs creadas por el plugin generan 404. Ocurre especialmente con:
- Plugins de portfolios o galerías que crean URLs del tipo
/portfolio/proyecto-nombre/. - Plugins de base de conocimiento o documentación con URLs
/kb/articulo/. - WooCommerce: al eliminar WooCommerce, las URLs de productos y categorías de tienda quedan huérfanas.
- Plugins de eventos que crean URLs
/evento/nombre-evento/.
Cómo encontrar todos los errores 404 de tu sitio
Antes de poder corregir los 404, necesitas saber exactamente cuáles existen. Hay varias fuentes complementarias:
Google Search Console (imprescindible)
Google Search Console es la fuente más valiosa porque muestra los 404 que Googlebot ha detectado al rastrear tu sitio, incluyendo los que vienen de backlinks externos y los que aparecen en el sitemap.
# En Google Search Console:
# 1. Ve a Cobertura (Coverage) en el menú lateral
# 2. Haz clic en "Error"
# 3. Filtra por "URL enviada no encontrada (404)"
# 4. Descarga la lista completa en CSV
# También en:
# Experiencia > Señales de experiencia en la página > Errores de rastreoScreaming Frog SEO Spider
Screaming Frog rastrea tu sitio completo de la misma forma que lo haría un motor de búsqueda y lista todos los 404 internos (enlaces dentro de tu propio sitio que apuntan a URLs inexistentes):
# Configuración recomendada en Screaming Frog:
# 1. Introduce la URL de tu sitio y haz clic en Start
# 2. Una vez terminado el rastreo, ve a la pestaña "Response Codes"
# 3. Filtra por "Client Error (4xx)" o específicamente "404"
# 4. Exporta la lista: File > Export > Response Codes
# La columna "Inlinks" muestra desde qué páginas de tu sitio
# se está enlazando a cada URL con 404Logs del servidor web
# Nginx — extraer todas las URLs con 404 de los últimos logs:
sudo awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -50
# Apache — mismo análisis:
sudo awk '$9 == 404 {print $7}' /var/log/apache2/access.log | sort | uniq -c | sort -rn | head -50
# Ver los 404 de las últimas 24 horas con su referrer (de dónde viene el tráfico):
sudo awk '$9 == 404 {print $7, $11}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -30Ahrefs, Semrush o Moz
Las herramientas de SEO de pago ofrecen informes de "broken backlinks" que muestran todos los backlinks externos que apuntan a URLs de tu sitio que devuelven 404. Estos son los más urgentes de corregir porque representan autoridad de enlace desperdiciada.
Cómo corregir los errores 404
Estrategia de redirección 301: la regla de oro
Para cada URL con 404 que tenía tráfico orgánico, backlinks o posicionamiento, configura una redirección 301 (permanente) hacia la página más relevante y temáticamente relacionada disponible. La relevancia de la redirección es crítica: una redirección 301 de /guia-errores-http/ a /inicio/ es una "Soft 404" que Google penaliza; la misma redirección a /tipos-de-errores-http/ sí transfiere la autoridad correctamente.
| Situación | Destino de la redirección 301 |
|---|---|
| Página de un artículo de blog eliminado que tenía backlinks | El artículo más relacionado temáticamente, o la categoría del artículo |
| Página de producto descontinuado con tráfico | El producto más similar disponible, o la categoría del producto |
| Página eliminada sin ningún equivalente temático | La página de inicio como último recurso, pero solo si no hay alternativa mejor |
| URL cambiada de estructura (misma página, nueva URL) | La nueva URL de esa misma página |
| Dominio antiguo tras migración | La URL equivalente en el nuevo dominio |
Configurar redirecciones 301 en Apache (.htaccess)
# Redirección simple de una URL a otra:
Redirect 301 /url-antigua/ /url-nueva/
# Redirección con RewriteRule (más flexible):
RewriteEngine On
RewriteRule ^url-antigua/?$ /url-nueva/ [R=301,L]
# Redirección de toda una sección a otra:
RewriteRule ^categoria-antigua/(.*)$ /categoria-nueva/$1 [R=301,L]
# Redirección de dominio completo:
RewriteCond %{HTTP_HOST} ^(www\.)?dominio-antiguo\.com$ [NC]
RewriteRule ^(.*)$ https://dominio-nuevo.com/$1 [R=301,L]
# Verificar que el .htaccess no tiene errores de sintaxis:
# (desde el servidor con acceso SSH)
apachectl configtestConfigurar redirecciones 301 en Nginx
# Redirección simple:
location = /url-antigua/ {
return 301 /url-nueva/;
}
# Redirección de sección completa con expresión regular:
location ~ ^/categoria-antigua/(.*)$ {
return 301 /categoria-nueva/$1;
}
# Redirección de dominio completo:
server {
server_name dominio-antiguo.com www.dominio-antiguo.com;
return 301 https://dominio-nuevo.com$request_uri;
}
# Verificar la configuración antes de aplicar:
sudo nginx -t
sudo systemctl reload nginxConfigurar redirecciones 301 en WordPress con el plugin Redirection
El plugin Redirection (de John Godley) es el estándar de facto para gestionar redirecciones en WordPress sin acceso SSH:
- Instala y activa el plugin Redirection desde el repositorio oficial de WordPress.
- Ve a Herramientas > Redirection en el panel de administración.
- Completa el asistente de configuración inicial (activar monitorización de cambios de URL en posts).
- En la pestaña Redirecciones, añade cada URL con 404 en el campo "URL de origen" y su destino en "URL de destino".
- Selecciona el tipo de redirección: 301 (permanente) para URLs que no volverán nunca, 302 (temporal) para las que pueden volver.
Característica clave del plugin Redirection: si activas la opción de monitorización de cambios en posts y páginas, el plugin crea automáticamente una redirección 301 cada vez que cambias el slug de una entrada o página en WordPress, evitando que los cambios de URL generen 404.
El problema de los Soft 404: qué son y por qué dañan el SEO
Un Soft 404 (404 suave) es una página que devuelve un código de estado 200 (éxito) al navegador pero que en realidad contiene un mensaje de error o contenido no relevante para la URL solicitada. Google los detecta mediante análisis de contenido y los trata de forma similar a los 404 reales.
Los Soft 404 más frecuentes en WordPress son:
- Redirigir todos los 404 a la página de inicio: la página de inicio responde con 200, pero el contenido no tiene nada que ver con la URL solicitada. Google detecta la discrepancia y clasifica la página de inicio como Soft 404 para esa URL.
- Páginas de búsqueda sin resultados que devuelven 200: si alguien busca algo que no existe en tu sitio (
tudominio.com/?s=termino-inexistente) y la página de resultados vacía devuelve 200, es un Soft 404. - Páginas de categorías vacías que devuelven 200: una categoría de WordPress sin artículos asignados muestra un "No se encontraron artículos" con código 200.
- WooCommerce: páginas de productos sin stock con 200: si un producto está sin stock y la página dice "No disponible" con código 200 en lugar de 404 o una redirección a un alternativo.
# Verificar si una URL específica devuelve Soft 404:
# En Google Search Console > URL Inspection > introduce la URL
# Google te indicará si la detecta como Soft 404
# Devolver 404 correcto para páginas de búsqueda sin resultados en WordPress:
# Añadir en functions.php del tema:
add_action('template_redirect', function() {
if (is_search() && !have_posts()) {
status_header(404);
nocache_headers();
}
});Cómo crear una página 404 personalizada eficaz
Una buena página 404 convierte un error en una oportunidad: en lugar de perder al visitante, le ofrece alternativas para que continúe navegando por el sitio. Los elementos que no deben faltar en una página 404 bien diseñada son:
- Mensaje claro y sin tecnicismos: explica que la página no se encontró sin usar el código "404" como único mensaje. Un visitante que no sabe qué es un 404 se quedará sin información útil.
- Buscador interno del sitio: permite al visitante buscar directamente el contenido que buscaba.
- Menú de navegación completo: mantén el header y footer habituales del sitio para que el visitante pueda navegar a cualquier sección.
- Sugerencias de páginas populares o relacionadas: muestra las páginas más visitadas o las más relacionadas temáticamente con la URL que generó el 404.
- Diseño acorde a la identidad visual del sitio: el visitante debe sentir que sigue en el mismo sitio, no en una página de error genérica del servidor.
- Enlace a la página de inicio: como alternativa de último recurso.
Configurar la página 404 personalizada
# En Apache .htaccess:
ErrorDocument 404 /pagina-404.html
# o para una URL del CMS:
ErrorDocument 404 /404/
# En Nginx:
error_page 404 /pagina-404.html;
location = /pagina-404.html {
root /var/www/html;
internal; # Solo accesible internamente, no como URL pública directa
}<!-- Ejemplo de estructura HTML para una página 404 eficaz -->
<!DOCTYPE html>
<html lang="es">
<head>
<title>Página no encontrada | sys4net</title>
</head>
<body>
<header><!-- Menú de navegación habitual del sitio --></header>
<main>
<h1>Esta página no existe</h1>
<p>La URL que buscas no está disponible. Puede que haya cambiado de dirección
o que haya sido eliminada.</p>
<!-- Buscador interno -->
<form action="/buscar/" method="get">
<input type="search" name="q" placeholder="Buscar en sys4net...">
<button type="submit">Buscar</button>
</form>
<!-- Sugerencias de páginas populares -->
<h2>Quizás te interese</h2>
<ul>
<li><a href="/blog/errores-http/">Guía de errores HTTP</a></li>
<li><a href="/blog/https-ssl/">HTTPS y certificados SSL</a></li>
<li><a href="/hosting/">Planes de hosting</a></li>
</ul>
<a href="/">Volver a la página de inicio</a>
</main>
<footer><!-- Footer habitual del sitio --></footer>
</body>
</html>Página 404 personalizada en WordPress
En WordPress, la página 404 se controla mediante el archivo 404.php del tema activo. Si el tema no tiene un 404.php, WordPress usa la plantilla más genérica disponible.
<?php
/* 404.php — Plantilla de error 404 para WordPress */
get_header();
?>
<main>
<h1>Página no encontrada</h1>
<p>La página que buscas no existe o ha cambiado de dirección.</p>
<!-- Buscador de WordPress -->
<?php get_search_form(); ?>
<!-- Entradas recientes como sugerencia -->
<h2>Artículos recientes</h2>
<?php
$recientes = new WP_Query(['posts_per_page' => 5, 'orderby' => 'date']);
while ($recientes->have_posts()) : $recientes->the_post(); ?>
<li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
<?php endwhile; wp_reset_postdata(); ?>
</main>
<?php get_footer(); ?>Impacto del error 404 en el SEO: guía completa
El impacto del 404 en el SEO varía enormemente según el historial de la URL afectada:
| Tipo de URL con 404 | Impacto en SEO | Urgencia | Acción recomendada |
|---|---|---|---|
| URL nueva que nunca tuvo tráfico ni backlinks | Nulo: Google nunca la indexó y no tiene autoridad que perder | Baja | Ninguna acción necesaria |
| URL indexada pero sin tráfico significativo ni backlinks | Muy bajo: poca autoridad en juego | Baja | Configurar 410 si fue eliminada permanentemente |
| URL con tráfico orgánico pero sin backlinks externos | Moderado: pérdida de posicionamiento para las keywords de esa página | Media | Redirección 301 a la página más relevante disponible |
| URL con backlinks externos de calidad | Alto: pérdida de la autoridad de enlace transferida por esos backlinks | Alta | Redirección 301 inmediata a la página más relevante |
| URL con muchos backlinks de alta autoridad (DA/DR alto) | Muy alto: pérdida de autoridad de dominio significativa | Crítica | Redirección 301 urgente; contactar con los sitios que enlazan para actualizar el enlace |
| Página de inicio o URLs principales con 404 | Catastrófico: afecta al ranking de todo el sitio | Crítica inmediata | Resolver el 404 inmediatamente; no es una situación en la que configurar redirecciones, sino de restaurar la página |
Cuánto tiempo tarda Google en desindexar una página con 404
Google no desindexo páginas con 404 de forma inmediata. El proceso es gradual y depende de la frecuencia de rastreo asignada al sitio y al historial de la URL:
- Googlebot detecta el 404 en su próxima visita de rastreo a esa URL.
- Vuelve a comprobar la URL varias veces durante las siguientes semanas antes de tomar una decisión de desindexación.
- Si la URL sigue devolviendo 404 de forma consistente durante semanas o meses, Google la elimina de su índice.
- Las URLs con muchos backlinks o alto tráfico histórico tardan más en ser desindexadas porque Google las comprueba con mayor frecuencia.
- Para acelerar la desindexación: usa el código 410 en lugar de 404, o usa la herramienta de Eliminación de URLs en Google Search Console.
Error 404 en WordPress: casos específicos
| Escenario | Causa | Solución |
|---|---|---|
| Todas las páginas dan 404 excepto la portada | .htaccess corrupto o falta de soporte de mod_rewrite en Apache | Regenerar el .htaccess desde Ajustes > Enlaces permanentes > Guardar cambios; verificar que mod_rewrite está activo |
| 404 en páginas de entradas tras cambiar la estructura de permalinks | Las URLs antiguas no redirigen a las nuevas | Instalar plugin Redirection; configurar redirecciones masivas de la estructura antigua a la nueva |
| 404 en imágenes y medios tras migración | Las URLs de los medios usan el dominio antiguo o la ruta antigua | Usar el plugin Better Search Replace para actualizar las URLs de medios en la base de datos |
| 404 en páginas de WooCommerce tras desinstalar el plugin | Las URLs de productos y tienda quedan huérfanas al eliminar WooCommerce | Redirigir las URLs de WooCommerce al equivalente más cercano o a la página de inicio si no hay alternativa |
| 404 en páginas de entradas multilingüe tras cambiar el plugin de idiomas | Las URLs en otros idiomas cambian de estructura al cambiar de plugin | Mapear y redirigir todas las URLs del idioma antiguo a las del nuevo; revisar el hreflang |
| 404 en /feed/ o /feed/rss/ | El permalink del feed cambió o hay conflicto de plugins | Regenerar permalinks; desactivar plugins de caché y SEO temporalmente para diagnosticar |
Preguntas frecuentes sobre el error 404
¿El error 404 daña el SEO de mi sitio web?
Depende completamente del historial de la URL que genera el 404. Los errores 404 en URLs nuevas que nunca tuvieron tráfico ni backlinks no tienen ningún impacto en el SEO: Google simplemente no las indexa. Los errores 404 en URLs con posicionamiento consolidado, tráfico orgánico o backlinks de calidad sí tienen un impacto negativo directo: se pierde la autoridad de enlace acumulada y el posicionamiento en las keywords de esa página. La regla es configurar redirecciones 301 para cualquier URL con 404 que tuviera historial de tráfico o backlinks.
¿Cuántas redirecciones 301 encadenadas puedo tener sin perjudicar el SEO?
Idealmente, ninguna cadena de redirecciones: cada redirección debería apuntar directamente al destino final. Las cadenas de redirecciones (A redirige a B, B redirige a C, C redirige al destino final) reducen la cantidad de autoridad de enlace que se transfiere en cada salto, aunque Google las resuelve con bastante eficiencia. El consenso en la industria SEO es que las cadenas de más de 3-4 redirecciones sí tienen un impacto negativo. Siempre que sea posible, actualiza las redirecciones para que apunten directamente al destino final sin pasos intermedios.
¿Debo preocuparme por los 404 que aparecen en los logs del servidor pero no en Google Search Console?
Los 404 que no aparecen en Search Console son URLs que Googlebot no ha rastreado o que rastreó y no indexó. Son menos urgentes que los que sí aparecen en Search Console, pero conviene revisarlos igualmente. Muchos de ellos son intentos de bots de encontrar archivos sensibles (wp-admin.php, .env, phpmyadmin) que generan 404 de forma correcta y no requieren ninguna acción. Los 404 de recursos estáticos (imágenes, CSS, JS) que no aparecen en Search Console pueden indicar problemas de rendimiento que vale la pena corregir.
¿Es mejor usar 301 o 302 para corregir un 404?
Casi siempre 301 (permanente). La redirección 302 (temporal) le indica a Google que la URL original sigue siendo válida y que debería mantenerla indexada, esperando que el contenido vuelva a su URL original. En la práctica, cuando corriges un 404, estás indicando que el contenido ha cambiado de URL de forma permanente, lo que corresponde a un 301. Usa 302 solo cuando el contenido vaya a volver a la URL original después de un período temporal (por ejemplo, durante un mantenimiento breve de una sección específica).
¿Qué hago si tengo cientos de URLs con 404 tras una migración?
El proceso para migraciones con muchos 404 es: primero, exporta la lista completa de URLs con 404 de Google Search Console y de los logs del servidor. Segundo, clasifícalas por prioridad: URLs con backlinks o tráfico alto van primero. Tercero, para URLs que tienen un equivalente directo en la nueva estructura, configura redirecciones individuales. Cuarto, para grupos de URLs que siguen un patrón (por ejemplo, todas las URLs del tipo /producto/nombre/ que pasan a /tienda/nombre/), configura una redirección con expresión regular en el .htaccess o Nginx que maneje todo el grupo con una sola regla. El plugin Redirection de WordPress puede importar redirecciones en masa desde un CSV.
¿Por qué mi página 404 personalizada aparece en el índice de Google?
Si tu página 404 personalizada aparece indexada en Google, el problema es que está devolviendo el código de estado 200 en lugar de 404. Google la trata como contenido normal y la indexa. Verifica el código de respuesta con curl -o /dev/null -s -w "%{http_code}" https://tudominio.com/url-que-no-existe: debe devolver 404, no 200. Si devuelve 200, corrige la configuración de tu página 404 personalizada para que el servidor devuelva el código correcto: en WordPress, el archivo 404.php del tema ya gestiona esto automáticamente; en páginas estáticas, configura ErrorDocument 404 en el .htaccess.