Código de error HTTP 404

"Su importancia radica en la correcta difusión de su información".


Este código de error significa “no encontrado” y es la respuesta entregada por un servidor web cuando no puede localizar el recurso solicitado por un cliente. El recurso solicitado sería una dirección web y el cliente podría ser un navegador web, como Chrome, Safari, etc.

Un ejemplo sencillo para entender el proceso:

Un usuario intenta ingresar a una dirección web, escribiéndola directamente en el navegador, dando clic sobre algún link o a través de un resultado de búsqueda por internet, obteniendo como respuesta un mensaje que le indica que dicha dirección no existe.

Lo que ha pasado en el ejemplo mencionado, es que el servidor web recibe la petición de acceso a la URL y al no encontrarla, le responde al navegador con el código HTTP 404. Éste a su vez, interpreta el código de error y le entrega al usuario un mensaje más humano, como alguno de los siguientes (no son los únicos):

  • 404 Not Found
  • The requested URL was not found on this server
  • Error 404 Not Found
  • 404 File or Directory Not Found
  • HTTP 404 Not Found
  • 404 Page Not Found

Hemos mencionado la situación en la que una dirección web no existe, pero muchas veces este error se debe a lo que comúnmente solemos llamar como “link roto” y puede ocurrir como resultado de algunas actividades cotidianas de mantenimiento que realizamos en nuestro sitio web, como las siguientes:

a) Error humano en el proceso de actualización de los archivos de nuestra página web: archivos html, imágenes, hojas de estilo, librerías auxiliares, etc.

Si en nuestra página web invocamos a un archivo cuyo nombre contiene alguna letra mayúscula, espacio en blanco o algún caracter especial, esto puede ocasionar problemas de identificación del archivo en el servidor, debido a que los sistemas operativos como Linux, donde se montan los servidores web, diferencian de manera explícita las letras mayúsculas de las minúsculas y no reconocen los caracteres especiales, como son la ñ, las tildes, glifos, etc.

Ejemplo: el error se producirá si invocamos a una imagen con la siguiente instrucción HTML:

      <img src=”/assets/img/imagenguia.png” />
    
donde invocamos al archivo por su nombre en minúsculas y sin tildes, sin darnos cuenta de que el nombre del archivo físico contiene una tilde “imagenguía.png”. Por esta razón, se recomienda no incluir espacios en blanco o caracteres especiales en los nombres de los archivos que se utilizarán en un sitio web.

b) Otra situación que suele generar “links rotos”, ocurre cuando eliminamos contenido que consideramos que dejó de ser útil para nuestros visitantes o ha pasado a ser obsoleto a lo largo del tiempo.

Los buscadores como Google, Bing, Yahoo, etc, están constantemente indexando el contenido de nuestros sitios web. Por lo que, si eliminamos algún contenido y no lo comunicamos debidamente, este contenido pudo haber sido indexado previamente y seguirá apareciendo en los resultados de búsqueda, generando “links rotos” que llevarán a nuestros visitantes hacia direcciones web que dejaron de existir. Estos visitantes, al no encontrar lo que buscan, tenderán a abandonar rápidamente nuestro sitio, aumentando su valor de rebote, lo que conlleva a la pérdida de relevancia frente a los términos de búsqueda que nos interesan, es decir que, afectará directamente el posicionamiento de nuestro sitio web.

Es muy común ver sitios web no han sido construidos respetando las mejores prácticas en favor de su posicionamiento, como puede ser la correcta definición de las URLs canónicas. En este caso, los buscadores que aún mantienen indexadas aquellas direcciones web que hemos eliminado, podrían inclusive tomarlas como URLs canónicas, generando un perjuicio mayor en contra del posicionamiento web. Eliminar la definición de una URL canónica en un buscador, puede ser realmente un dolor de cabeza.

¿Qué debemos hacer?

Como práctica principal, debemos realizar una constante búsqueda de “links rotos” y corregir aquellos que se han generado por error humano, cada vez que actualicemos nuestro sitio web.

Utilizar la herramienta Google Search Console para encontrar errores HTTP 404. Una vez que tu sitio web sea verificado, Google empezará a rastrearlo para su indexación. Después, sólo necesitas revisar el informe de “Cobertura” en el menú izquierdo.

Pantalla de cobertura de Google Search Console
En este caso, el sitio web no tienen “links rotos”, pero si tienen problemas con la definición de URLs canónicas.

Si una dirección web X, ha sido reemplazada por otra dirección web Y con contenido similar, la mejor práctica será generar un redireccionamiento 301. El código 301 le indica al navegador web del usuario que la dirección web buscada se ha movido a una nueva URL de forma permanente.

Otra buena práctica, consiste en aprovechar los errores HTTP 404 para realizar algo de Marketing con nuestra marca, mostrando una página creativa, entretenida y que incluso pueda entregar contenido de ayuda. La idea es retener a nuestros visitantes el mayor tiempo posible. Algunos ejemplos:

Generalmente, los servidores web se encargan de entregar el error HTTP 404 si una imagen u otro archivo no existe. Sin embargo, los contenidos muchas veces son obtenidos desde las bases de datos, por lo que el archivo, que contiene el algoritmo que se encarga de buscar esta información, existe y el servidor web entregará un código 200, indicando que se pudo acceder correctamente a la dirección web solicitada, pero la información buscada pudo haber sido eliminada. En este caso nos conviene, entregar un código HTTP 404 de manera programática.

Ejemplo de implementación con PHP


  //Cabecera que indica el código HTTP 404
  header('HTTP/1.0 404 Not Found');
  //Si tenemos una página con un mensaje personalizado podemos incluirla
  include('errors/404.php');
  //Finalizamos el algoritmo
  exit;

  

Adicionalmente, debemos configurar el servidor web, en este caso Apache, para que entregue nuestro mensaje personalizado en los casos de que un archivo o dirección web no exista. En el archivo .htaccess podemos agregar la siguiente línea:

    ErrorDocument 404 /errors/404.php