En el mundo del diseño web, el posicionamiento en los buscadores de los sitios que realizamos ha ganado una enorme importancia. Una medida de ello es la cantidad de tiempo y esfuerzo que dedicamos a optimizar los sitios primero y a conseguir buenos enlaces entrantes después.

Un requisito básico para que todo ese empeño rinda frutos es lograr que todas las páginas del sitio estén correctamente indexadas en los motores de búsqueda. Esto ocurrirá siempre y cuando los crawlers (arañas) de los buscadores importantes visiten e indexen esas páginas con la periodicidad adecuada y sin omitir ninguna.

Aún sin recurrir a ningún procedimiento extra, las arañas relevan las páginas de los sitios web simplemente siguiendo los enlaces (a menos que estos incluyan el atributo “no-follow”), pero hay más cosas que pueden hacerse. Una buena estrategia consiste en suministrar a los buscadores una “lista” de las páginas que nos interesa que se indexen, junto con alguna información adicional que haga la visita más eficaz. Concretamente, eso se logra mediante el uso de Sitemaps.

Un sitemap es un archivo XML que contiene una lista de las páginas del sitio junto con alguna información adicional, tal como con qué frecuencia la página cambia sus contenidos, cuándo fue su última actualización y qué tan importante es respecto al resto de las páginas del mismo sitio.
La construcción del archivo XML debe seguir una serie de pautas especificadas en el protocolo de sitemaps, que describimos a continuación:

Contenidos obligatorios del sitemap

El protocolo Sitemap se construye en base a etiquetas XML (Tags) incluidas en un archivo con codificación UTF-8.
Los valores de datos (por contraposición a las etiquetas mismas) deben utilizar códigos de escape para ciertos caracteres especiales, tal como se acostumbra en HTML.

Por ejemplo, las comillas dobles (") deben ser reemplazadas por &quot; y los signos menor (<) y mayor (>) por &lt; y &gt; respectivamente.

El archivo XML debe:

  • Comenzar con una etiqueta de apertura <urlset> y terminar con una de cierre </urlset>
  • Especificar el protocolo estándar al que responde dentro de la etiqueta de apertura <urlset> (ver en el ejemplo)
  • Incluir una entrada <url> por cada dirección URL (que corresponderá a cada una de las páginas del sitio) como nodo XML padre.
  • Incluir un nodo XML hijo <loc> para cada dirección URL (cada nodo XML padre <url>).

Resumiendo estos aspectos en un ejemplo (sitio con dos páginas):

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.misitio.com/</loc>
</url>
<url>
<loc>http://www.misitio.com/contacto.htm</loc>
</url>
</urlset>

Contenidos opcionales del sitemap

Cada nodo <url> padre puede contener (además del nodo <loc> hijo obligatorio) cierta información adicional útil para que el proceso de indexación se realice más inteligentemente. Los nodos opcionales, aunque importantes, son:

<lastmod>Fecha</lastmod>

Se refiere a la fecha de la última modificación de la página que figura en <loc>
Esta fecha debe expresarse en formado AAAA-MM-DD, por lo que el 8 de julio de 2006 será 2006-07-08.

<changefrec>Frec</changefrec>

Se refiere a que tan a menudo cambia la página que figura en <loc> y será un dato que indicará a la araña con qué frecuencia volver a visitar el sitio. Es un valor orientativo, por lo que no quiere decir que deba cumplirse forzosamente.

Frec puede tomar alguno de los siguientes valores: always (siempre, para páginas que cambian cada vez que se muestran. Típicamente, las dinámicas), hourly (a cada hora), daily (diariamente), weekly (semanalmente), monthly (mensualmente), yearly (anualmente) o never (nunca, típicamente para páginas archivadas).

<priority>Valor</priority>

Se refiere a la importancia que tiene la página que figura en <loc> respecto de las demás que componen el sitio. Es simplemente una manera de indicar prioridades relativas dentro del sitio, sin ningún efecto hacia el exterior del mismo.
Valor puede tomar valores entre 0 y 1. El valor por defecto es 0.5

Volviendo al ejemplo anterior y agregando los atributos opcionales:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.misitio.com/</loc>
<lastmod>2006-11-20</lastmod>
<changefrec>monthly</changefrec>
<priority>0.8</priority>
</url>
<url>
<loc>http://www.misitio.com/contacto.htm</loc>
<lastmod>2006-08-01</lastmod>
<changefrec>yearly</changefrec>
<priority>0.3</priority>
</url>
</urlset>

El archivo XML así construido se aloja en el servidor como un archivo más del sitio, con la salvedad de que puede contener las URL contenidas en el mismo directorio en que se encuentra o en otros contenidos en él.

Por ejemplo, si ubicamos el archivo sitemap.xml en el directorio ejemplo.com/catalogo/ no podrá incluir URLs que se encuentren en ejemplo.com/
Por esta razón se recomienda enfáticamente colocar sitemap.xml directamente en el root del sitio.

A partir de este punto solo queda enviar el sitemap a los buscadores, que generalmente disponen de una página específica para aceptarlo.

Hace unas semanas, Yahoo, Google y Microsoft llegaron a un acuerdo (detalle poco común entre estas empresas) para que el formato Sitemaps 0.90 fuera el aceptado en sus motores de búsqueda.

A través de Google Webmaster Tools o de Yahoo Site explorer podemos proporcionarles la información de nuestro sitemap.