Formato XML de Sitemaps

Este documento describe el esquema XML para el protocolo Sitemap.
El formato del protocolo Sitemap consta de etiquetas XML. Todos los valores de datos de un Sitemap deben incluir caracteres de escape de entidad. El propio archivo debe estar codificado en UTF-8.

El Sitemap debe:
  • Comenzar con una etiqueta de apertura <urlset> y terminar con una de cierre </urlset>.
  • Especificar el espacio de nombres (protocolo estándar) en la etiqueta urlset.
  • Incluir una entrada <url> para cada dirección URL como una etiqueta XML principal.
  • Incluir una entrada secundaria <loc> para cada etiqueta principal <url>.
Las demás etiquetas son opcionales. La compatibilidad de estas etiquetas opcionales puede variar en función del motor de búsqueda. Consulte la documentación específica de cada uno de ellos para obtener información detallada.

Además, todas las direcciones URL de un Sitemap deben proceder de un único host, como www.example.com o store.example.com. Para obtener más detalles, consulte Ubicación de archivos de Sitemap

Ejemplo de un Sitemap en formato XML

El siguiente ejemplo muestra un Sitemap que contiene únicamente una URL y usa todas las etiquetas opcionales. Las etiquetas opcionales están en cursiva.
<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"> 
<url>      
      <loc>http://www.example.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
</url></urlset>
También puede consultar nuestro ejemplo con varias URL.

Definiciones de las etiquetas XML

Las etiquetas XML disponibles se describen a continuación.
AtributoDescripción
<urlset>obligatorioEncapsula el archivo y hace referencia al protocolo estándar actual.
<url>obligatorioEtiqueta principal de cada entrada de URL. Las demás etiquetas son secundarias de esa.
<loc>obligatorioURL de la página. Esta URL debe comenzar con el protocolo (por ej., http) y acabar con una barra diagonal, si su servidor web así lo requiere. Este valor debe contener menos de 2.048 caracteres.
<lastmod>opcionalFecha de la última modificación del archivo. Esta fecha debe encontrarse en formato Fecha y hora de W3C. Este formato le permite omitir la parte referente a la hora, si así lo desea, y utilizar AAAA-MM-DD.

Tenga en cuenta que esta etiqueta es independiente de la cabecera “If-Modified-Since (304)” que puede mostrar el servidor y que los motores de búsqueda pueden utilizar la información de ambas fuentes de forma diferente.
<changefreq>opcionalFrecuencia con la que puede cambiar esta página. Este valor proporciona información general a los motores de búsqueda y es posible que no se corresponda exactamente con la frecuencia de rastreo de la página. Valores aceptados:
  • always
  • hourly
  • daily
  • weekly
  • monthly
  • yearly
  • never
El valor "always" (siempre) debe utilizarse para describir documentos que cambian cada vez que se obtiene acceso a ellos. El valor "never" (nunca) debe utilizarse para describir direcciones URL archivadas.

Tenga en cuenta que el valor de esta etiqueta se considera una sugerencia y no una orden. A pesar de que los rastreadores de motores de búsqueda puedan tener en cuenta esta información a la hora de tomar decisiones, pueden rastrear páginas marcadas "hourly" (cada hora) con menor frecuencia de lo que indica la marca, así como rastrear páginas marcadas "yearly" (cada año) con más asiduidad. Asimismo, pueden rastrear periódicamente páginas marcadas "never" (nunca) para poder manejar los cambios inesperados que se produzcan en ellas.
<priority>opcionalLa prioridad de esta dirección URL es relativa con respecto a las demás URL de su sitio. Los valores válidos abarcan desde 0,0 a 1,0. Este valor no afecta a la comparación de sus páginas con respecto a las de otros sitios; únicamente permite informar a los motores de búsqueda de las páginas que considera más importantes para los rastreadores.

La prioridad predeterminada de una página es 0,5.

Tenga en cuenta que la prioridad que asigne a la página no suele influir en la posición de sus URL en las páginas de resultados de los motores de búsqueda. Los motores de búsqueda pueden utilizar esta información para elegir entre varias URL del mismo sitio, de modo que puede emplear esta etiqueta para incrementar las probabilidades de que sus páginas más importantes se incluyan en un índice de búsqueda.

Asimismo, tenga en cuenta que la asignación de alta prioridad a todas las URL de su sitio probablemente no le servirá de ayuda, dado que la prioridad es relativa y sólo se utiliza para elegir entre las distintas URL de su sitio.
 

Caracteres de escape de entidad

Su archivo de Sitemap debe tener codificación UTF-8; habitualmente puede establecerlo así al guardar el archivo. Al igual que con los archivos XML, los valores de datos (incluidas las URL) deben utilizar caracteres de escape de entidad para los caracteres de la tabla que encontrará más abajo.
CarácterCódigo de caracteres de escape
Símbolo de unión&&amp;
Comillas simples'&apos;
Comillas"&quot;
Mayor que>&gt;
Menor que<&lt;
Además, todas las direcciones URL (incluida la de su Sitemap) deben contener caracteres de escape y estar codificadas de modo que el servidor Web en el que se encuentran las pueda leer. No obstante, si emplea cualquier tipo de script, herramienta o archivo de registro para generar sus direcciones URL (cualquier método a excepción de la escritura a mano), esto se suele hacer automáticamente. Asegúrese de que sus direcciones URL se ajustan al estándar RFC-3986 para direcciones URI, al estándar RFC-3987 para direcciones IRI y al estándar XML.

A continuación se incluye un ejemplo de una dirección URL que emplea un carácter no ASCII (ü), así como un carácter que necesita escape de entidad (&):
http://www.example.com/ümlat.php&q=name
A continuación se encuentra la misma URL, con codificación ISO-8859-1 (para su alojamiento en un servidor que utiliza esa codificación) y la URL con caracteres de escape:
http://www.example.com/%FCmlat.php&q=name
A continuación se encuentra la misma URL, con codificación UTF-8 (para su alojamiento en un servidor que utiliza esa codificación) y la URL con caracteres de escape:
http://www.example.com/%C3%BCmlat.php&q=name
A continuación encontrará la misma URL, pero también caracteres de escape de entidad:
http://www.example.com/%C3%BCmlat.php&amp;q=name

Sitemap XML de ejemplo

El siguiente ejemplo muestra un Sitemap en formato XML. El Sitemap en cuestión contiene un número reducido de URL, cada una de las cuales presenta un conjunto diferente de parámetros opcionales.
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://www.example.com/</loc>
      <lastmod>2005-01-01</lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.8</priority>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=12&amp;desc=vacation_hawaii</loc>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=73&amp;desc=vacation_new_zealand</loc>
      <lastmod>2004-12-23</lastmod>
      <changefreq>weekly</changefreq>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=74&amp;desc=vacation_newfoundland</loc>
      <lastmod>2004-12-23T18:00:15+00:00</lastmod>
      <priority>0.3</priority>
   </url>
   <url>
      <loc>http://www.example.com/catalog?item=83&amp;desc=vacation_usa</loc>
      <lastmod>2004-11-23</lastmod>
   </url>
</urlset>
 

Uso de archivos de índice de Sitemap (para agrupar varios archivos de Sitemap)

Puede proporcionar varios archivos de Sitemap, pero cada uno de ellos deberá contener un máximo de 50.000 direcciones URL y no superar los 10 MB (10.485.760 bytes). Si lo desea, puede comprimir sus archivos de Sitemap con gzip para reducir sus requisitos de ancho de banda; no obstante, el archivo de Sitemap comprimido no debe superar los 10 MB. Si desea incluir más de 50.000 direcciones URL, deberá crear varios archivos de Sitemap.

Si proporciona varios Sitemaps, debe enumerarlos todos en un archivo de índice de Sitemap. Los archivos de índice de Sitemap no pueden contener más de 50.000 Sitemaps y no deben superar los 10 MB (10.485.760 bytes), aunque se pueden comprimir. Es posible disponer de más de un archivo de índice de Sitemap. El formato XML de un archivo de índice de Sitemap es muy parecido al formato XML de un archivo de Sitemap.

El archivo de índice de Sitemap debe:
  • Comenzar con una etiqueta de apertura <sitemapindex> y terminar con una de cierre </sitemapindex>.
  • Incluir una entrada <sitemap> para cada Sitemap como una etiqueta XML principal.
  • Incluir una entrada secundaria <loc> para cada etiqueta principal <sitemap>.
La etiqueta opcional <lastmod> también está disponible para archivos de índice de Sitemap.

Nota: Un archivo de índice de Sitemap sólo puede especificar Sitemaps que se encuentren en la misma ubicación que el archivo de índice de Sitemap. Por ejemplo, http://www.susitio.es/sitemap_index.xml puede incluir Sitemaps en http://www.susitio.es, pero no en http://www.ejemplo.es o http://suhost.susitio.es. Igual que ocurre con los Sitemaps, el archivo de índice de su Sitemap debe estar codificado en UTF-8.

Índice XML de Sitemap de ejemplo

El siguiente ejemplo muestra un índice de Sitemap que incluye dos Sitemaps:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      <loc>http://www.example.com/sitemap1.xml.gz</loc>
      <lastmod>2004-10-01T18:23:17+00:00</lastmod>
   </sitemap>
   <sitemap>
      <loc>http://www.example.com/sitemap2.xml.gz</loc>
      <lastmod>2005-01-01</lastmod>
   </sitemap>
</sitemapindex>
Nota: las direcciones URL de Sitemap, como todos los valores de sus archivos XML, deben incluir caracteres de escape de entidad.

Definiciones de etiquetas XML de índice de Sitemap

AtributoDescripción
<sitemapindex>obligatorioEncapsula información acerca de todos los Sitemaps del archivo.
<sitemap>obligatorioEncapsula información acerca de un Sitemap concreto.
<loc>obligatorioIdentifica la ubicación del Sitemap.

Esta ubicación puede ser un Sitemap, un archivo Atom, un archivo RSS o un archivo de texto.
<lastmod>opcionalIdentifica la hora a la que se modificó el Sitemap correspondiente. No es la hora de modificación de alguna de las páginas incluidas en el Sitemap. El valor de la etiqueta lastmod debe encontrarse en formato Fecha y hora de W3C.

Al proporcionar la marca horaria de la última modificación, permite que los rastreadores de motores de búsqueda obtengan únicamente un subconjunto de los Sitemaps del índice, es decir, el rastreador sólo podrá obtener Sitemaps que han sido modificados a partir de una fecha concreta. Este mecanismo de obtención de Sitemap incremental permite un rápido descubrimiento de nuevas URL en sitios de gran tamaño.
 

Otros formatos de Sitemap

El protocolo Sitemap permite proporcionar los detalles sobre las páginas a los motores de búsqueda y recomendamos que lo utilice puesto que de este modo puede proporcionar información adicional acerca de las páginas del sitio y no sólo la URL. Sin embargo, además del protocolo XML también admitimos feeds RSS y archivos de texto, que proporcionan información más limitada.

Feed de distribución

Puede proporcionar feeds RSS (Real Simple Syndication) 2.0 o Atom 0.3 o 1.0. Por lo general, si su sitio ya cuenta con un feed de distribución, utilizará únicamente este formato. Tenga presente que este método puede que no permita a los motores de búsqueda conocer todas las URL del sitio, ya que el feed puede que sólo proporcione información sobre las URL recientes, aunque no obstante, los motores de búsqueda pueden utilizar esta información para averiguar sobre otras páginas del sitio durante los procesos normales de rastreo siguiendo los enlaces internos de las páginas del feed. Asegúrese de que el feed se encuentre en el directorio de nivel más alto que desea que rastreen los motores de búsqueda. Los motores de búsqueda extraen la información del feed como sigue:
  • El campo <link> indica la URL
  • campo de fecha de modificación (el campo <pubDate> en feeds RSS y <modified> en feeds Atom) – indica cuándo se modificó la URL por última vez. El uso del campo de fecha de última modificación es opcional.

Archivo de texto

Puede proporcionar un archivo de texto simple que incluya una URL por línea. El archivo de texto debe cumplir las siguientes directrices:
  • El archivo de texto debe contener una URL en cada línea. Las URL no pueden incluir nuevas líneas incrustadas.
  • Debe especificar las URL completas, incluido http://.
  • Cada archivo de texto puede contener un máximo de 50.000 direcciones URL y no superar los 10 MB (10.485.760 bytes). Si su sitio incluye más de 50.000 direcciones URL, puede dividir la lista en varios archivos de texto y agregarlos por separado.
  • El archivo de texto debe utilizar codificación UTF-8. Puede especificarlo cuando guarde el archivo; por ejemplo, en la aplicación Bloc de notas, la opción se encuentra en el menú Codificación del cuadro de diálogo Guardar como.
  • El archivo de texto debe contener exclusivamente la lista de URL.
  • El archivo de texto no debe contener información ni en el encabezado ni en el pie de página.
  • Si lo desea, puede comprimir su archivo de texto de Sitemap con gzip para reducir sus requisitos de ancho de banda.
  • Al archivo de texto le puede poner el nombre que desee. Asegúrese de que sus direcciones URL se ajustan al estándar RFC-3986 para direcciones URI y al estándar RFC-3987 para direcciones IRI
  • Cargue el archivo de texto en el directorio de nivel más alto en el que desee que los buscadores rastreen y asegúrese de que no especifica URL de archivos de texto ubicados en un directorio de nivel superior.
A continuación se muestran unas entradas de ejemplo del archivo de texto.
http://www.example.com/catalog?item=1

http://www.example.com/catalog?item=11
 

Ubicación de archivos de Sitemap

La ubicación de un archivo de Sitemap determina el grupo de URL que se pueden incluir en ese Sitemap. Un archivo de Sitemap ubicado en http://ejemplo.es/catalog/sitemap.xml puede incluir URL que empiecen por http://ejemplo.es/catalog/, pero no URL que empiecen por http://ejemplo.es/images/.

Si tiene permiso para cambiar http://ejemplo.org/ruta/sitemap.xml, puede suponer que también tiene permiso para proporcionar información para las URL con el prefijo http://ejemplo.org/ruta/. Los ejemplos de URL que se consideran válidas en http://ejemplo.es/catalogo/sitemap.gz incluyen:
http://example.com/catalog/show?item=23
http://example.com/catalog/show?item=233&user=3453
Las URL que no se consideran válidas en http://ejemplo.es/catalog/sitemap.xml incluyen:
http://example.com/image/show?item=23
http://example.com/image/show?item=233&user=3453
https://example.com/catalog/page1.php
Tenga en cuenta que todas las URL enumeradas en el Sitemap deben utilizar el mismo protocolo (http, en este ejemplo) y residir en el mismo host que el Sitemap. Por ejemplo, si el Sitemap se encuentra en http://www.ejemplo.es/sitemap.xml,no puede incluir URL de http://subdominio.ejemplo.es.

Las URL que no se estiman válidas dejan de tenerse en cuenta. Le recomendamos encarecidamente colocar su Sitemap en el directorio raíz de su servidor web. Por ejemplo, si su servidor web está ubicado en ejemplo.es, el archivo del índice de su Sitemap se encontrará en http://ejemplo.es/sitemap.xml. En determinados casos tal vez necesite crear varios Sitemaps para rutas diferentes, por ejemplo, si los permisos de seguridad dividen el acceso de escritura a diversos directorios.

Si utiliza una ruta con un número de puerto para enviar un Sitemap, debe incluir dicho número de puerto de la ruta en todas las URL que aparecen en el archivo del Sitemap. Por ejemplo, si el Sitemap se encuentra en http://www.ejemplo.es:100/sitemap.xml, todas las URL que aparecen en él deben empezar por http://www.ejemplo.es:100.

Sitemaps y envíos cruzados

Para enviar Sitemaps de varios host desde un único host, tiene que "demostrar" la propiedad de los host cuyas direcciones URL se están enviando en un Sitemap. A continuación se incluye un ejemplo. Supongamos que desea enviar Sitemaps de tres host:
www.host1.com con archivo de Sitemap sitemap-host1.xml
www.host2.com con archivo de Sitemap sitemap-host2.xml
www.host3.com con archivo de Sitemap sitemap-host3.xml
Además, desea colocar los tres Sitemaps en un único host: www.sitemaphost.com. Así, las direcciones URL del Sitemap serán:
http://www.sitemaphost.com/sitemap-host1.xml
http://www.sitemaphost.com/sitemap-host2.xml
http://www.sitemaphost.com/sitemap-host3.xml
De forma predeterminada, eso provocará un error de "envío cruzado", ya que está intentando enviar direcciones URL de www.host1.com a través de un Sitemap hospedado en www.sitemaphost.com (y lo mismo ocurre con los otros dos host). Una forma de evitar este error es demostrar que posee (es decir, que tiene autoridad para modificar archivos) www.host1.com. Puede hacerlo mediante la modificación del archivo robots.txt en www.host1.com de modo que apunte al Sitemap de www.sitemaphost.com.

En este ejemplo, el archivo robots.txt en http://www.host1.com/robots.txt incluiría la línea "Sitemap: http://www.sitemaphost.com/sitemap-host1.xml". Al modificar el archivo robots.txt en www.host1.com y hacer que apunte al Sitemap de www.sitemaphost.com, ha demostrado de forma implícita que posee www.host1.com. En otras palabras, quien controla el archivo robots.txt en www.host1.com confía en que el Sitemap de http://www.sitemaphost.com/sitemap-host1.xml incluye direcciones URL de www.host1.com. Es posible repetir el mismo proceso para los otros dos host.

Ahora puede enviar los Sitemaps de www.sitemaphost.com.

Cuando el archivo robots.txt de un host concreto, por ejemplo http://www.host1.com/robots.txt, apunta a un Sitemap o al índice de un Sitemap de otro host, se espera que todas las direcciones URL de los Sitemaps de destino, como http://www.sitemaphost.com/sitemap-host1.xml, pertenezcan al host al que se apunta. Esto se debe a que, como ya se ha indicado anteriormente, se espera que un Sitemap sólo incluya direcciones URL de un único host.

 

Validación de su Sitemap

Los siguientes esquemas XML definen los elementos y atributos que pueden aparecer en su archivo de Sitemap. Puede descargar este esquema desde cualquiera de los siguientes vínculos:

Para Sitemaps: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsdPara archivos de índice de Sitemap: http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd
Existen varias herramientas que le pueden ayudar a validar la estructura de su Sitemap según este esquema. Puede encontrar una lista de herramientas útiles para XML en las siguientes ubicaciones:

http://www.w3.org/XML/Schema#Toolshttp://www.xml.com/pub/a/2000/12/13/schematools.html
Para poder validar su archivo de Sitemap o su archivo de índice de Sitemap en función de un esquema, el archivo XML necesitará cabeceras adicionales, tal y como se muestra a continuación.

Sitemap:
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      ...
   </url>
</urlset>
Archivo de índice de Sitemap:
<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      ...
   </sitemap>
</sitemapindex>
 

Ampliación del protocolo Sitemaps

Puede ampliar el protocolo Sitemaps con su propio espacio de nombre. Sólo debe especificar este espacio de nombre en el elemento raíz. Por ejemplo,
<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
         xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
         xmlns:example="http://www.example.com/schemas/example_schema"> <!-- namespace extension -->
   <url>
      <example:example_tag>
         ...
      </example:example_tag>
      ...
   </url>
</urlset>
 

Información para los rastreadores de motores de búsqueda

Una vez que haya creado el archivo de Sitemap y lo haya colocado en su servidor web, deberá informar a los motores de búsqueda compatibles con el protocolo acerca de su ubicación. Esto se puede realizar:
Los motores de búsqueda podrán obtener su Sitemap y poner las URL a disposición de sus rastreadores.

Envío del Sitemap mediante la interfaz de envío del motor de búsqueda

Para enviar el Sitemap directamente a un motor de búsqueda, que le permitirá recibir información de estado así como los errores de procesamiento, consulte la documentación de los motores de búsqueda correspondientes.

Especificación de la ubicación del Sitemap en el archivo robots.txt

Puede especificar la ubicación del Sitemap utilizando un archivo robots.txt. Para ello, tan solo tiene que añadir la línea siguiente:
Sitemap: http://www.example.com/sitemap.xml
Esta directiva es independiente de la línea user-agent de modo que no tiene importancia el lugar en que se coloca en el archivo. Si tiene un archivo de índice de Sitemap, puede incluir la ubicación de únicamente este archivo. No es necesario que enumere todos los Sitemaps individuales enumerados en el archivo de índice.

Puede especificar más de un archivo de Sitemap por archivo robots.txt.
Sitemap: http://www.example.com/sitemap-host1.xml
Sitemap: http://www.example.com/sitemap-host2.xml

Envío del Sitemap mediante una solicitud HTTP

Para enviar el Sitemap utilizando una solicitud HTTP (sustituya la <URL del motor de búsqueda> con la URL proporcionada por el motor de búsqueda), envíe la solicitud a la URL siguiente:
<searchengine_URL>/ping?sitemap=sitemap_url
Por ejemplo, si su Sitemap está en http://www.ejemplo.es/sitemap.gz, su URL será:
<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz
La URL ha codificado todos los elementos que siguen a /ping?sitemap=:
<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.susitio.es%2Fsitemap.gz
Puede enviar la solicitud HTTP utilizando wget, curl o el mecanismo que prefiera. Si la solicitud se procesa correctamente, recibirá un código de respuesta HTTP 200. Si recibe una respuesta diferente, debe volver a enviar la solicitud. El código de respuesta HTTP 200 sólo indica que el motor de búsqueda ha recibido su Sitemap, no que el Sitemap o las URL que incluye sean válidas. Una forma fácil de hacerlo es configurar una tarea automatizada que genere y envíe Sitemaps periódicamente.
Nota: Si proporciona un archivo del índice de Sitemap, bastará con que envíe una solicitud HTTP que incluya la ubicación del archivo del índice de Sitemap; no es necesario que envíe solicitudes para cada Sitemap que se especifica en el índice.

 

Exclusión de contenido

El protolo Sitemap permite indicar a los motores de búsqueda qué contenido se quiere indexar. Para indicar a los motores de búsqueda el contenido que no quiere indexar, utilice un archivo robots.txt o la etiqueta meta. Para obtener más información sobre cómo excluir contenido de los motores de búsqueda, visite la página robotstxt.org.
| Servidor web
Bonaval Multimedia
Bonaval Multimedia S.L.

Avenida Florida 9, 2º Ofic.4
Vigo 36.210
(Pontevedra, Galicia, España)
Diseño y desarrollo:  Bonaval Multimedia SL   Copyright ©