Personalmente, no estoy de acuerdo en redireccionar todos las urls con errores 404 a una única url (en este caso, la home). Entiendo que puede mejorar sustancialmente la autoridad de esa url al recibir muchísimos links, pero estamos perdiendo una oportunidad importante de potenciar un buen enlazado interno.
Yo he echo uso del plugin "redirection" para subsarnar los
errores 404 en WordPress de uno en uno, y aunque resulte más laborioso y complejo, desde luego resulta mejor. Y aún mejor si hacemos esas redirecciones 301 desde el fichero .htaccess. En mi opinión, las redirecciones deben ser a páginas con temas similares o actualizados; y, si no. podemos podemos devolver un código http 410 para indicar a los bots que esa página no existe (y que no va a existir más) para que dejen de visitarla. Solo tenemos que seguir estos pasos:
1- 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' );
2- 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.