Trasmitir correctamente un código de estado HTPP 404 en una página de error

Una página de error 404, también llamada Error Document 404, es principalmente una página que informa al usuario de que el recurso solicitado no está disponible.

Por ejemplo, si un usuario sigue un enlace cuya página de destino ya no existe, el servidor web debe mostrar la llamada página de error 404.

Sin embargo, una página de error 404 es responsable de mucho más. Correctamente configurada, informa principalmente al Google-Bot de documentos inexistentes. Para que esto ocurra correctamente, es importante que una página de error 404 también devuelva el código de estado HTTP correcto.

¿Cómo devuelvo el código de estado HTTP 404 correcto para una página de error 404?

Si el servidor web o el sistema de gestión de contenido (CMS) utilizado está configurado incorrectamente para que una página de error devuelva el código de estado HTTP 200 (OK) o redirija a los usuarios y al Google-Bot a otra página mediante una redirección 301, se habla de una página 404 defectuosa o de un error Soft 404.

A continuación, nos gustaría hablar sobre la configuración correcta de una página de error 404 con el correspondiente código de estado HTTP 404. Aquí distinguimos entre dos casos de uso:

  • Página estática de error 404 utilizando el servidor web Apache y el archivo .htaccess
  • Uso del CMS WordPress y del archivo 404.php existente en el directorio

Configurar .htaccess y la página de error del servidor web Apache

No importa si utilizas archivos .html o .php para tu sitio web o si utilizas una estructura de directorios. Puedes crear una página de error 404 agregando lo siguiente en el archivo .htaccess:

Screenshot eines Editors der .htaccess-Datei mit Verweis auf das ErrorDocument 404.

La captura de pantalla muestra cómo se almacena la ruta relativa al documento de error en el archivo .htaccess.

Abre o crea el archivo .htaccess e introduce la ruta relativa a la página de error. Debes de crear la página de error (por ejemplo, 404.html) como un archivo separado antes de agregarla.

ErrorDocument 404 /404.html

Los pasos a seguir en detalle:

  • Crea una página de error (404.html o 404.php) en el primer nivel (en el directorio raíz)
  • Abre o crea el archivo .htaccess si no existe. (También en el directorio raíz)
  • Introduce «ErrorDocument 404» seguido de la ruta relativa a la página de error
  • Guarda y solicita una página inexistente, por ejemplo «http://www.tu-dominio.es/98899351«
  • Deberías ver el contenido de la página de error 404.html
  • Comprueba aquí si se devuelve el código de estado HTTP 404 correcto
https://httpstatus.io/

La página no encontrada «https://www.sistrix.es/98899351» devuelve el código de estado HTTP 404.

Configurar la página de error en Nginx

Si utilizas Nginx puedes configurar una página de error 404 añadiendo lo siguiente al bloque de servidor correspondiente en el archivo de configuración:

error_page 404/404.html

Los pasos a seguir son los mismos que los mencionados anteriormente, excepto que aquí debes agregar la entrada de la configuración del archivo y no existe el archivo .htaccess. El resto del flujo de trabajo es igual.

WordPress CMS – Configurar correctamente la página de error

Si utilizas el sistema de gestión de contenido (CMS) WordPress, establecer el código de estado HTTP correcto para la página de error 404 es fácil, siempre y cuando tu tema admita esta funcionalidad.

Muchos temas, diseños o plantillas de WordPress vienen con un archivo 404.php correspondiente en la carpeta del tema. Si no encuentras este archivo, configura una página de error utilizando el archivo .htaccess.

Abre el archivo 404.php en tu tema de WordPress activo y agrega lo siguiente al principio:

Konfiguration des HTTP-Statuscode 404 einer WordPress-Fehlerseite im Editor.

Arriba: Configuración del código de estado HTTP 404 de una página de error de WordPress.

Normalmente puedes encontrar la página de error 404.php en el directorio del tema en /wp-content/themes/active-theme-name/

<?php
header("HTTP/1.0 404 Not Found");
?>

Los pasos a seguir en detalle:

  • Busca y abre la página de error en la carpeta del tema de WordPress (normalmente «404.php»)
  • Agrega el código fuente PHP que se encuentra en la parte superior de la página y guarda los cambios
  • Solicita una dirección inexistente, por ejemplo «http://www.tu-dominio.es/98899351»
  • Deberías ver el contenido de la página de error 404.html
  • Comprueba aquí si se devuelve el código de estado HTTP 404 correcto
https://httpstatus.io/

La página no encontrada «https://www.sistrix.es/98899351» devuelve el código de estado HTTP 404.

¿Por qué es importante el código de estado HTTP correcto en las páginas de error?

Cuando se accede a URLs que no existen, el servidor web debe devolver el código de estado HTTP 404 (Not found) o 410 (Gone). Si existen en la web enlaces obsoletos o incorrectos en tu propio sitio web Google solo podrá reconocer de manera fiable que la página de destino no está disponible utilizando el código de estado HTTP 404 o 410.

Por lo tanto, asegúrate de que la página de error de tu sitio web devuelve el código de estado HTTP 404 correcto. No se recomienda redirigir simplemente las páginas que ya no existen a la página de inicio mediante una redirección 301.

¿Qué es exactamente un error Soft 404?

Los webmasters que redirigen contenido que ya no existe a otras páginas con la redirección 301 presentan un problema para Google. Un ejemplo:

Si Google sabe que el contenido de la página www.dominio.es/guía/como-hacer-paella-de-marisco/ es el mejor resultado para una consulta de búsqueda de «¿Cómo hacer una paella de marisco?», Google mostrará esta página en la parte superior de los resultados de búsqueda.

Si el propietario del sitio web borra esta página, pero desea mantener el ranking para la consulta «¿Cómo hacer una paella de marisco?», puede intentar enviar a Google a una página temáticamente similar y redirigir a ella mediante una redirección 301. En nuestro ejemplo, podría ser la página de categoría del comercio electrónico que vende paellas de marisco, es decir: www.dominio.es/shop/paella-de-marisco/.

La pretensión de Google es ofrecer siempre al usuario el mejor resultado para una determinada consulta de búsqueda.

Sin embargo, si Google determina que el contenido de una página no tiene la relevancia deseada para la consulta de búsqueda, como fue el caso de la página anterior, entonces Google puede interpretar esto automáticamente como una página de error Soft-404.

El término «Soft» simplemente describe en este caso que una página que técnicamente no devuelve un código de estado 404 (página no encontrada) es interpretada por Google de la misma manera que una página con un código de estado 404 real.

Lo que dice Google

Independientemente de lo bonita y útil que pueda ser su página de error 404 personalizada, probablemente no querrá que aparezca en los resultados de búsqueda de Google. Para evitar la indexación de las páginas de error 404 por parte de Google y otros motores de búsqueda, asegúrese de que su servidor web realmente emita un código de estado HTTP 404 cuando se llama a una página que no existe.

Fuente: Guía-Search-Console

Nuestra conclusión

Las páginas que no existen (o han dejado de existir) también deben comunicarse claramente a Google mediante un código de estado 404.