944 063 154

Cómo solucionar error 404 en WordPress

Publicado enGeneral

El error 404 es uno de los problemas más comunes en internet. Un problema que afectará negativamente a la experiencia dentro de tu sitio web, en caso de que tus usuarios encuentren un error 404. Este error hará que la tasa de rebote de tu página web aumente, además de repercutir negativamente en el posicionamiento orgánico de la página. Y todo ello puede conllevar penalizaciones por parte de los buscadores, que acabará por traducirse en un descenso de las visitas al sitio web.

¿Qué es el error 404?

Es un código de respuesta estándar en el protocolo HTTP que indica que ha sido posible establecer la conexión con el servidor, pero no se ha podido encontrar el elemento solicitado.  Esto es, que la página web que queremos visitar ya no existe y, por lo tanto, no podemos acceder a ella. El error 404 not found es de los códigos de estado más habituales de entre los errores 4xx o error del cliente.

Este error es también algo habitual en la creación de nuevos apartados (o nuevas páginas) en tu gestor de contenidos WordPress. En muchas ocasiones, puedes visualizar con total normalidad cómo quedaría la entrada o la página que estás redactando con solo pinchar sobre la opción «Vista previa». Sin embargo, otras veces, ese contenido no se ve cuando lo publicas, y es entonces cuando aparece el temido error 404 not found.

vista previa wordpress error 404

¿Cómo afectan los errores 404?

Pese al miedo que provocan, lo cierto es que no deberías preocuparte por ello en exceso. Internet sufre cambios constantes y los contenidos se actualizan sin cesar, por lo que recibir un error 404 al navegar es totalmente normal. Es más, según John Mueller de Google, tener errores 404 es algo correcto y normal. Solamente deberemos tomar en cuenta esos errores si se producen algunas de las siguientes situaciones:

  • Nuestro site tiene cientos de errores 404. En este caso Google, o cualquier otro buscador, interpretará esto como una experiencia negativa para el usuario y nos penalizará por ello.
  • Son URLs importantes dentro de nuestra web. Queremos que estas URLs se indexen y se posicionen, por lo que no deben devolver este tipo de errores.
  • Son errores 404 leves. Estas páginas devuelven un código 200, pero resulta ser una página sin contenido (o no válido).

Si se dan estos casos, intentaremos subsanar los errores leves cuanto antes. Principalmente porque el rastreador invertirá tiempo en visitar URLs que deberían estar fuera del índice de búsqueda; además de que esto puede provocar que las páginas más importantes dejen de rastrearse con cierta asiduidad. Es decir, en nuestra web tenemos una cantidad elevada de este tipo de errores la cobertura de rastreo puede verse afectada; y esto es algo que no nos interesa en absoluto.

A continuación te mostramos cómo evitar la aparición de errores 404. Es importante que los tengas controlados para evitar que estos errores afecten a tu página y a todo aquel que vaya a visitar tu sitio web.

Solución al error 404 en WordPress

Algunas veces la solución a este error 404 es una tarea de pocos minutos y muy sencilla. Basta con que accedas en tu gestor de contenidos WordPress a la opción de Ajustes > Enlaces permanentes. Y una vez estés en ella:

– Marques la opción de “estructura personalizada”.
Elimines el contenido que aparece en la opción de estructura personalizada en la que se indica: /%postname%/
– Pinches sobre el botón de guardar.
– Te desloguees de tu WordPress y compruebes si puedes visualizar el contenido que querías publicar como si fueses uno de los usuarios que acceden a tu página web.
Una vez que hayas comprobado que el contenido se ve correctamente, si lo deseas, puedes volver a acceder a tu panel de WordPress como administrador y marcar la opción que previamente tenías en los ajustes de tus enlaces permanentes. En nuestro caso, por ejemplo, esta opción se denominaría “nombre de entrada”.

enlaces permanentes wordpress error 404

De esta forma tan sencilla, se actualizará por completo la configuración de todos tus enlaces permanentes; además de las reglas de escritura. Bastaría con realizar esta acción para que se corrigiera el error 404 relacionado con la publicaciones de nuevas entradas o páginas que vayas creando desde tu gestor de contenidos WordPress. Pero, ¿has realizado estas modificaciones y el error 404  not found persiste? Si es así, deberías actualizar manualmente el archivo htaccess. Para ello, tienes dos opciones; accediendo al servidor vía FTP o bien modificando de forma manual el código del fichero htaccess.

Diferencias entre un error 404 y un 410

Antes de terminar con el artículo, cabe destacar que los errores 404 y 410 no son iguales; y que tampoco hay que tratarlos del mismo modo.

Un error 410 devuelve un código HTTP 410, el cual notifica que esa URL no existe. La cabecera de esta URL especifica a los robots o crawlers que esa URL no existe (y aquí llega la diferencia entre ambas) y no va a volver a existir; esto es, no hace falta volver a rastrearla. Por tanto, habrá veces en los que nos interese devolver una cabecera 410; y otras en las que la solución más efectiva sea una redirección 301.

Cómo retornar un error 410 en WordPress

Existen dos sencillos métodos si deseamos devolver una cabecera 410 en algunas de nuestras URLs. En resumen: podemos hacer uso de un plugin llamado «410 for WordPress» o determinarlas en .htaccess.

  • Mediante plugin 410 for WordPress. Permite configurar una página de opciones donde se irán añadiendo los registros que devolverán un 410; esos registros (expresiones regulares) son almacenados en una tabla creada por el plugin.
  • Establecer a Apache la página con 410 vía ErrorDocument creando un archivo expresamente para ello. Determinamos vía htaccess (con el flag G) todas las URL que queramos devuelvan un error 410. Si no es un cantidad elevada de URLs y las tenemos bien definidas, esta es la mejor opción.
  • Cabe mencionar que también existe una tercera opción, una especie de mezcla entre las anteriores opciones. Combina los beneficios de establecer las reglas desde Apache pero mostrando la misma página de error de WordPress como para un 404.

Modificamos el ErrorDocument de Apache:

/**
* Reponse the header 410.
*
* @param string $template
* @return string
*/
function e12_response_410( $template ) {
    if( is_404() && '410' == $_SERVER['REDIRECT_STATUS'] ) {
        status_header( 410 );
 
        if( file_exists( STYLESHEETPATH . '/410.php' ) ) {
            return STYLESHEETPATH . '/410.php';
        }
    }
 
    return $template;
}
 
add_filter( 'template_include', 'e12_response_410' );

Después añadimos las reglas a Apache para que retorne los 410:

RewriteRule ^url-eliminada$  - [G,L]

Si has configurado todo de forma correcta, la página con error 404 devolverá el error pero con la cabecera de un 410.