17 de marzo de 2009
A veces necesitamos cambiar el sistema de enrutamiento de nuestra aplicación, si í©sta lleva algún tiempo en línea sus páginas estarán indexadas en Google. Según el cambio que requiramos en el routing de la web puede ocurrir que, se pierdan varias URL's (si es un cambio pequeño), se pierdan directorios completos (un cambio mayor, por ejemplo un directorio virtual que cambie de nombre) o por último y en el peor de los casos, que se necesite añadir un parámetro inicial en la URL (como por ejemplo una provincia: http://urldelaweb.com/:provincia) donde se perderá por completo el número de páginas indexadas.
Como no podía ser de otra forma, en uno de los proyectos que llevo se dio este último caso. Se hizo una actualización de la web para expandirla a todas las provincias de su comunidad autónoma (antes solo estaba para una provincia determinada) y además el cliente quería que la web se montara en su URL con la provincia como primer parámetro. Pues se perdieron las más de 1100 páginas indexadas en Google.
Investigando un poco acerca de como hacer que Google elimine las URL's que ya no existen, encontrí© varias opciones. Lo primero de todo y si una aplicación está bien hecha, la página que no se ha encontrado debe devolver un código de error 404, y no hacer una redirección al index o algo por el estilo como he visto en algunas web's. Si esto lo cumple nuestra web, las opciones que tenemos son las siguientes:
1. Archivo robots.txt: con í©l podemos decirle a los spiders que revisan nuestro sitio, a quí© páginas o directorios queremos (o no) que accedan:
User-agent: *
Disallow: /directorio
Disallow: /directorio2/pagina.html
Con í©sto le decimos que no acceda a "directorio" y que tampoco haga lo propio con "directorio2/pagina.html".
2. Herramientas para webmasters de Google: este conjunto de herramientas que ofrece Google brinda la posibilidad de eliminar páginas o directorios de su índice. Para ello (si no lo tenemos hecho ya) hay que asociar y verificar la aplicación web a nuestra cuenta de Google. Esto es tan fácil como:
3. Metaetiqueta NOINDEX: otra opción que puede complementar a las dos anteriores es, añadir una metaetiqueta noindex a la página de error 404 que devuelve la petición a la que se accede mediante el vínculo en Google, es decir, si se utiliza un sistema de plantillas, en el layout (general para toda la web) cuando detecte que la respuesta es un error 404 añada en el head una meta etiqueta NOINDEX. Si bien se utiliza un layout diferente para la página de error, la etiqueta NOINDEX se pondrá en í©ste.
De esta le decimos al spider que no almacene esta página en su base de datos cuando la visite.
4. htaccess: Otra opción que se puede llevar a cabo es la de proteger mediante contraseña cierto directorio, haciendo uso del archivo .htaccess. De esta forma los spiders no pueden acceder a ese directorio. A mi personalmente no me parece una buena idea por los siguientes motivos:
- estamos añadiendo una medida de seguridad a un directorio que, en realidad, no existe.
- si el cambio en el routing ha sido importante, el número de directorios a proteger mediante htaccess será demasiado grande y el archivo se volverá poco legible.
- con los 3 mí©todos anteriores podemos conseguirlo.
- el usuario no se llevará muy buena impresión del sitio web si í©ste accede mediante Google a una página protegida con contraseña, sin embargo esta página te devuelve un código 404 personalizado y humano (explicándole los motivos que pueden haberle llevado ahí, añadiendo un buscador interno o sugirií©ndole varios links con páginas similares de nuestro sitio) es más probable que el usuario se quede en el sitio y decida visitar otras secciones.
5. Redirección 301 (movido parcial o definitivamente): otro punto a destacar es, en caso de cambios puntuales donde la URL que haya sido modificada está controlada y el cambio sea de http://url.com/pagina-antigua a http://url.com/pagina-nueva, la opción de añadir en la cabecera del documento (o en el controlador de la aplicación si se está trabajando con patrón MVC) una redirección 301.
<?php header('Location: http://url.com/pagina-nueva/', true, 301); ?>
Con estas opciones , los desarrolladores podemos solucionar el problema del cambio de routing en la aplicación sin muchos conocimientos de SEO.
Tags: SEO