944 063 154

Blog

Cómo solucionar error 404 en WordPress

Publicado enGeneral en abril 27, 2018 3:25 pm

El error 404 es uno de los problemas más comunes en internet. Que tus usuarios se encuentren con un error 404 afectará negativamente a su experiencia dentro de tu sitio web. La tasa de rebote aumenta y repercute negativamente en el posicionamiento de tu web. Y todo ello puede conllevar penalizaciones por parte de los buscadores.

Qué es el error 404 

Es un código de respuesta estándar en el protocolo HTTP que indica que se ha podido 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. Se trata, en resumen, de un error 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 error 404 not found.

vista previa wordpress error 404

¿Cómo afectan los errores 404?

No deberías preocuparte por ello en exceso. Internet sufre cambios constantes y los contenidos se actualizan si 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 resulta correcto. Sólamente deberemos tomar en cuenta esos errores si:

  • Nuestro site tiene cientos de errores 404; y google puede interpretar esto como una experiencia negativa para el usuario.
  • 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).

Intentaremos subsanar los errores leves cuanto antes. Ello se debe a que el rastreador invierte tiempo en urls que deberían estar fuera del índice de búsqueda; asimismo, páginas importantes pueden dejar de rastrearse con la misma asiduidad que en tiempos pasados. Esto significa que si tenemos una cantidad elevada de este tipo de errores la cobertura de rastreo puede verse afectada; y esto no nos interesa en absoluto.

A continuación te mostramos como evitar la aparición de errores 404. No dejes 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 este error 404 se puede solucionar en pocos minutos de una forma 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 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.

Aquí el vídeo de Matt Cuts en el que explica las diferencias entre ambos errores.

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.