Saltar al contenido

4xx · Errores del cliente

Error 404 Not Found: qué significa y cómo solucionarlo

El error 404 Not Found significa que el servidor funciona, pero no hay nada en la dirección solicitada. Suele deberse a un enlace roto, una URL mal escrita, una página borrada o renombrada sin redirección, o a una configuración del servidor que no encuentra el fichero.

Qué significa el código 404

El servidor responde, así que no es un problema de conexión. Simplemente no hay nada en esa ruta. Para el SEO, tener algunos 404 es normal y no penaliza: Google entiende que las páginas desaparecen. Lo que sí hace daño es perder páginas que tenían tráfico o enlaces externos sin redirigirlas.

Si la página se ha borrado a propósito y no va a volver, 410 Gone es más explícito. Si se ha movido, lo correcto es un 301 a la nueva URL.

En aplicaciones React, Vue o Angular servidas por nginx, un 404 al recargar una ruta que sí existe (/blog/mi-post) se debe a que nginx busca un fichero con ese nombre y no lo encuentra. Hay que decirle que sirva index.html para las rutas de la aplicación.

Causas habituales del error 404

  • Enlace roto, interno o externo, o URL mal escrita.
  • Página borrada o renombrada sin redirección 301.
  • SPA (React, Vue) sin try_files: funciona navegando desde la portada pero falla al recargar.
  • root o alias mal configurado en nginx (el fichero está en otra ruta).
  • Mayúsculas y minúsculas: en Linux /Imagen.png y /imagen.png son ficheros distintos.
  • WordPress con los enlaces permanentes rotos tras migrar (falta el .htaccess o mod_rewrite).

Si eres visitante de la web

  • Revisa la URL: una letra de más o una barra final pueden ser la causa.
  • Ve a la portada del sitio y usa su buscador.
  • Busca la página en Google con "site:dominio.com tema" o en archive.org si se ha borrado.

Cómo solucionar el error 404

  • Search Console → Páginas → "No se ha encontrado (404)" lista las URLs que Google intenta rastrear.
  • Redirige con 301 las URLs antiguas que tenían tráfico o enlaces a su equivalente actual (no todo a la portada).
  • En una SPA, añade try_files $uri /index.html en nginx o FallbackResource en Apache.
  • Diseña una página 404 útil, con buscador y enlaces a las secciones principales, pero que responda con código 404 real.

Configuración y comandos

nginx: SPA (React, Vue, Angular)

nginx
location / {
    try_files $uri $uri/ /index.html;
}

nginx: página 404 propia

nginx
error_page 404 /404.html;
location = /404.html { internal; }

Apache: SPA y página 404

apache
FallbackResource /index.html
ErrorDocument 404 /404.html

Buscar enlaces rotos en tu propia web

bash
wget --spider -r -nd -nv -l 3 https://ejemplo.com 2>&1 | grep -B1 "404"

Ejemplo de respuesta

http
HTTP/2 404
content-type: text/html; charset=utf-8
cache-control: no-cache

Preguntas frecuentes

¿Qué significa error 404?

Que el servidor funciona pero no encuentra nada en esa dirección. Normalmente es un enlace roto, una URL mal escrita o una página que se ha borrado o movido.

¿Los errores 404 perjudican el SEO?

No por sí mismos: Google entiende que las páginas desaparecen. Lo que perjudica es perder páginas con tráfico o enlaces sin redirigirlas, y tener muchos enlaces internos rotos.

¿Por qué mi aplicación React da 404 al recargar la página?

Porque el servidor busca un fichero con esa ruta y no existe: las rutas las gestiona React en el navegador. Configura el servidor para que sirva index.html (try_files $uri /index.html en nginx).

¿Qué diferencia hay entre 404 y 410?

404 dice "no lo encuentro"; 410 dice "existió y se ha eliminado para siempre". Google desindexa un poco antes las URLs que responden 410.

Códigos relacionados

Ver todos los códigos de estado HTTP