Tu sitemap para Google (y Yahoo!)

Supongo que la mayoría habréis oído hablar de Google Sitemaps porque incluso hay un blog oficial sobre el tema… lo que puede que no sepáis es que funciona a las mil maravillas y que si no lo habéis implementado todavía es muy recomendable que lo hagáis.

Google Sitemaps es especialmente útil cuando necesitas que Google reindexe páginas que ya tiene indexadas, pudiendo reducir a un par de días algo que antes suponía una larga espera de varios meses.

Hasta el momento yo sólo tenía el sitemap generado por el programa de Francesco Passantino que básicamente es un script que examina los archivos que tienes en tu servidor (utilizando File System Object) y a partir de ellos toma como referencia la fecha de creación del archivo para crear el Sitemap. Se trata de una solución excelente para archivos que no cambian mucho e imágenes , pero si como en nuestro caso el contenido proviene de una base de datos entonces el resultado no es óptimo. Por ejemplo, el programa de Francesco creará una entrada con una entrada para nuestra página de Teatros en Madrid:

http://www.topmadrid.com/es/Ocio/Teatros/default.asp

Pero no tendrá en cuenta que ésta categoría esta compuesta por varias páginas, puesto que hay muchos teatros en Madrid:

http://www.topmadrid.com/es/Ocio/Teatros/default.asp?e=10
http://www.topmadrid.com/es/Ocio/Teatros/default.asp?e=20
http://www.topmadrid.com/es/Ocio/Teatros/default.asp?e=30

Además si algún editor de TopMadrid realiza alguna modificación en esta categoría el script de Franceso no lo detectará puesto que la fecha del archivo “default.asp” en el servidor no se verá modificada. Todo esto nos lleva a la necesidad de programarnos algo sencillito a medida.

Creando tu Sitemap

Lo divido en pasos para que quede más claro:

1 – En las tablas correspondientes de nuestra base de datos es conveniente crear un campo del tipo “Fecha y hora” que registre la última modificación de un registro. Puede que ya tengamos uno que tenga la fecha de creación, pero raro será que no modifiquemos un registro posteriormente y manipular la fecha de creación no es lo más correcto.

2 – Creamos un script que nos liste todas las URLs con la estructura XML de los sitemaps de Google, que es realmente sencilla, tal vez lo más complicado es la fecha que tiene la siguiente estructura 2005-01-10T09:38:52Z
3 – Si la ejecución del script lleva su tiempo te recomiendan que el resultado se vuelque en un archivo. Utilizaremos FileSystemObject (en vbscript) y tendremos que dar permisos de escritura a la carpeta en la que generaremos el archivo:

Set fso = CreateObject(“Scripting.FileSystemObject”)
Set myFile = fso.CreateTextFile(“c: opmadrid.comsitemap.xml”, True)
myFile.Write(xml) myFile.Close

Hay que tener en cuenta que si colocas el archivo en:

http://www.topmadrid.com/scripts/sitemap.xml

Google Sitemaps sólo tomará en cuenta las entradas que se refieran a URLs dentro de esa carpeta y sus subcarpetas. Por lo tanto lo normal es que lo coloquemos en:

http://www.topmadrid.com/sitemap.xml

Si nuestro web utiliza subdominios, será necesario crear un sitemap para cada uno de ellos.

4 – Y como todo lo que no es automático, termina por no hacerse es mejor que programemos la ejecución del script siempre que realicemos un cambio en los datos o con cierta periodicidad.

5 – Por último nos damos de alta en Google Sitemaps y añadimos nuestro mapa.

Varios Sitemaps para un solo web

Puedes tener varios Sitemaps dados de alta para una misma web, por ejemplo yo sigo manteniendo el sitemap generado con el script de Francesco para todas las imágenes de ArturoSoria.com (sitemap.asp) y para los artículos tengo el script creado por mi (sitemap.xml). Evidentemente las URL que contenga un sitemap no debe contenerlas el otro.

Al final la cosa quedará tal que así:


Se están añadiendo muchas funcionalidades a Google Sitemaps, en estos momentos además de informarte de defectos en los archivos que le suministras, también te avisa de los errores que se ha encontrado en la indexación de tu web.

Y para Yahoo! …

Aun no he comprobado la eficacia de Yahoo! pero no nos cuesta nada hacer una versión del script que cree un listado de todas las URL en un archivo llamado “urllist.txt y enviárselo también a Yahoo!.

Trabajo en ENZO desarrollando aplicaciones web para empresas. Me apasiona todo lo relacionado con Internet, las nuevas tecnologías, la programación y los ordenadores. Si te gustan mis artículos puedes suscribirte por e-mail a mi blog.