Formato XML do Sitemaps

Pular para:
Definições da tag em XML
Escape de entidade
Usando arquivos de índice de Sitemap
Outros formatos de Sitemap
Local dos arquivos Sitemap
Como validar seu Sitemap
Ampliando o protocolo Sitemaps
Informando crawlers de mecanismo de pesquisa

Este documento descreve o esquema em XML deste protocolo Sitemap.

O formato do protocolo do Sitemap é composto por tags em XML. Todos os valores de dados em um Sitemap devem ter escape de entidade. O próprio arquivo deve usar a codificação UTF-8.

O Sitemap deve:

Todas as outras tags são opcionais. O suporte a essas tags opcionais pode variar entre os mecanismos de pesquisa. Consulte a documentação de cada mecanismo de pesquisa para obter detalhes.

Além disso, todos os URLs em um mapa de site devem ser de um único host, como por exemplo www.example.com ou store.example.com. Para obter outros detalhes, consulte o local do arquivo do Sitemap

Amostra do Sitemap em XML

O exemplo a seguir mostra um Sitemap que contém apenas um URL e usa todas as tags opcionais. As tags opcionais estão em itálico.


<?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> 

Consulte também nosso exemplo com vários URLs.

Definições de tag em XML

As tags XML disponíveis estão descritas abaixo.

Atributo Descrição
<urlset> obrigatório

Executa o encapsulamento do arquivo e faz referência ao padrão de protocolo atual.

<url> obrigatório

Tag pai de cada entrada de URL. O restante das tags são as tags filhas dessa tag.

<loc> obrigatório

URL da página. Esse URL deve começar com um protocolo (como http) e terminar com uma barra final, caso seja exigido pelo seu servidor. Esse valor deve conter menos de 2.048 caracteres.

<lastmod> opcional

A data da última modificação do arquivo. Essa data deve estar no formato de data e hora do W3C. Esse formato permite omitir o horário, se desejar, e usar AAAA-MM-DD.

Lembre-se de que esta tag é separada do cabeçalho If-Modified-Since (304) que o servidor pode retornar, e os mecanismos de pesquisa podem usar as informações de ambas as fontes de forma diferente.

<changefreq> opcional

A freqüência com que a página é alterada. Esse valor fornece informações gerais para os mecanismos de pesquisa e pode ser que ele não corresponda exatamente à freqüência de indexação da página. Os valores válidos são:

  • always
  • hourly
  • daily
  • weekly
  • monthly
  • anual
  • never

O valor "always" deve ser usado para descrever os documentos que sempre são alterados quando acessados. O valor "never" deve ser usado para descrever os URLs arquivados.

Observe que o valor dessa tag é considerado uma dica e não um comando. Mesmo que os indexadores de mecanismo de pesquisa possam considerar essas informações ao tomar decisões, pode ser que indexem as páginas marcadas como "horárias" com menos freqüência do que isso e talvez façam a indexação de páginas marcadas como "anualmente" com mais freqüência do que isso. Os indexadores podem indexar páginas marcadas como "nunca" periodicamente, para que possam lidar com alterações inesperadas nessas páginas.

<priority> opcional

A prioridade desse URL em relação a outros URLs do mesmo site. Os valores válidos vão de 0.0 a 1.0. Esse valor não afeta o modo como as páginas são comparadas às páginas em outros sites — apenas permite que os mecanismos de pesquisa saibam quais páginas você considera mais importantes para os indexadores.

A prioridade padrão de uma página é 0,5.

Observe que não é provável que a prioridade atribuída a uma página influencie a posição dos URLs nas páginas de resultados de um mecanismo de pesquisa. Os mecanismos de pesquisa podem usar essas informações quando selecionam entre URLs no mesmo site. Use essa tag para aumentar a probabilidade de a maioria das páginas importantes estarem presentes em um índice de pesquisa.

Além disso, observe que a atribuição de uma prioridade alta a todos os URLs no site provavelmente não o ajudará. Como a prioridade é relativa, ela só é usada para priorizar os URLs do seu site.

Voltar ao início

Escape de entidade

É necessário que o arquivo Sitemap use a codificação UTF-8 (esse procedimento pode ser feito no momento em que você salvar o arquivo). Assim como em todos os arquivos XML, quaisquer valores de dados (inclusive os URLs) devem usar códigos de escape de entidade para os caracteres listados na tabela abaixo.

Caractere Código de escape
E comercial & &amp;
Aspas simples ' &apos;
Aspas duplas " &quot;
Maior que > &gt;
Menor que < &lt;

Além disso, todos os URLs (inclusive o URL do Sitemap) devem terminar com um caractere de escape e ser codificados de modo que possam ser lidos pelo servidor Web em que estão localizados. No entanto, se estiver usando qualquer tipo de script, ferramenta ou arquivo de log para gerar os URLs (qualquer mecanismo, exceto digitá-los manualmente), isso geralmente é feito para você. Verifique se os URLs seguem o padrão RFC-3986 para URIs, o padrão RFC-3987 para IRIs e o padrão XML.

Observe a seguir o exemplo de um URL que usa um caractere não-ASCII (ü) e um caractere que requer escape de entidade (&):

http://www.example.com/ümlat.html&q=name

Consulte a seguir os seguintes dados: o mesmo URL, a codificação ISO-8859-1 (para hospedagem em um servidor que usa esse tipo de codificação) e o escape do URL:

http://www.example.com/%FCmlat.html&q=name

Consulte a seguir os seguintes dados: o mesmo URL, a codificação UTF-8 (para hospedagem em um servidor que usa esse tipo de codificação) e o escape do URL:

http://www.example.com/%C3%BCmlat.html&q=name

Observe abaixo o mesmo URL, mas também com escape de entidade:

http://www.example.com/%C3%BCmlat.html&amp;q=name

Amostra do Sitemap em XML

O exemplo a seguir mostra um Sitemap no formato XML. O Sitemap do exemplo contém poucos URLs, cada um usando um conjunto diferente de parâmetros opcionais.


<?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>

Voltar ao início

Usando arquivos do índice do Sitemap (para agrupar vários arquivos Sitemap)

Você pode fornecer vários arquivos Sitemap, mas cada um desses arquivos não pode ter mais de 50.000 URLs e não deve ter mais de 10MB (10,485,760 bytes). Se desejar, compacte os arquivos Sitemap com o gzip para reduzir os requisitos de largura de banda. Contudo, depois de descompactado, o arquivo Sitemap não pode ter mais de 10MB. Para listar mais de 50.000 URLs, crie vários arquivos Sitemap.

Se você fornecer vários Sitemaps, você deve relacionar cada arquivo de Sitemap em um arquivo de índice. Os arquivos de índice do Sitemap não podem relacionar mais de 50.000 Sitemaps, não devem ter mais de 10 MB (10.485.760 bytes) e podem ser compactados. O formato XML de um arquivo de índice é bastante similar ao formato XML de um arquivo Sitemap.

O arquivo de índice de Sitemap deve:

Esta tag <lastmod> opcional também está disponível para arquivos de índice de Sitemap.

Observação: Um arquivo de índice de Sitemaps só pode especificar os Sitemaps localizados no mesmo site. Por exemplo, http://www.yoursite.com/sitemap_index.xml pode incluir Sitemaps em http://www.yoursite.com but, mas não em http://www.example.com ou http://yourhost.yoursite.com. Assim como os Sitemaps, seu arquivo de índice de Sitemap deve ter a codificação UTF-8.

Amostra do Índice de Sitemap em XML

O exemplo a seguir mostra um índice de Sitemap que relaciona dois 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>

Observação: URLs do Sitemap, como todos os valores no arquivo XML files, devem ser entidade escaped.

Definições de tag XML do índice do Sitemap

Atributo Descrição
<sitemapindex> obrigatório Encapsula as informações sobre todos os Sitemaps no arquivo.
<sitemap> obrigatório Encapsula as informações sobre um Sitemap individual.
<loc> obrigatório

Identifica a localização do Sitemap.

Este local pode ser um Sitemap, arquivo Atom, arquivo RSS ou arquivo de texto simples.

<lastmod> opcional

Identifica o horário em que o arquivo Sitemap correspondente foi modificado. Ela não corresponde ao momento em que as páginas listadas nesse Sitemap foram alteradas. O valor da tag lastmod deve estar no formato de data e hora do W3C.

Ao fornecer a data e a hora da última modificação, você permite que indexadores de mecanismo de pesquisa obtenham apenas um subconjunto de Sitemaps no índice. Ou seja, um indexador só pode obter Sitemaps modificados a partir de uma certa data. Esse mecanismo de extração incremental de Sitemap permite a descoberta rápida de novos URLs em sites de grande porte.

Voltar ao início

Outros formatos de Sitemap

O protocolo do Sitemap permite que você forneça detalhes sobre as suas páginas quanto a mecanismos de pesquisa; além disso, incentivamos seu uso desde que você possa fornecer outras informações sobre as páginas do site, não apenas os URLs. No entanto, além do protocolo XML, oferecemos suporte a feeds RSS e arquivos de texto, os quais proporcionam informações mais limitadas.

Feed de distribuição

Você pode oferecer um RSS (Real Simple Syndication) 2.0 ou do Atom 0.3 ou feed 1.0. Normalmente, você só pode usar esse formato se o site já tiver um feed de distribuição. Lembre-se de que esse método pode não permitir que os mecanismos de pesquisa verifiquem todos os URLs no seu site, pois o feed pode fornecer somente informações sobre URLs recentes, embora alguns mecanismos de pesquisa ainda usem essas informações para localizar outras páginas no seu site durante os processos normais de rastreamento ao acompanhar links dentro de páginas no feed. Certifique-se de que o feed esteja localizado no diretório de maior nível no qual deseja que os mecanismos de pesquisa façam o rastreamento. Os mecanismos de pesquisa extraem as informações do feed da seguinte forma:

Arquivo de texto

Você pode fornecer um arquivo de texto simples que contenha um URL por linha. O arquivo de texto deve seguir estas diretrizes:

As entradas do arquivo de texto de amostra são exibidas a seguir.

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


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

Voltar ao início

Local dos arquivos Sitemap

O local de um arquivo Sitemap determina o conjunto de URLs que pode ser incluído nesse Sitemap. Um arquivo Sitemap localizado em http://example.com/catalog/sitemap.xml pode incluir quaisquer URLs que começam com http://example.com/catalog/, mas não pode incluir os URLs que começam com http://example.com/images/.

Se você tiver permissão para alterar http://example.org/path/sitemap.xml, pressupõe-se que também tenha permissão para fornecer informações para URLs com o prefixo http://example.org/path/. Exemplos de URLs considerados válidos em http://example.com/catalog/sitemap.xml:


http://example.com/catalog/show?item=23

http://example.com/catalog/show?item=233&user=3453

URLs não considerados válidos em http://example.com/catalog/sitemap.xml incluem:


http://example.com/image/show?item=23

http://example.com/image/show?item=233&user=3453

https://example.com/catalog/page1.html

Lembre-se de que isso significa que todos os URLs relacionados no Sitemap devem usar o mesmo protocolo (neste exemplo, http) e residem no mesmo host que o Sitemap. Por exemplo, se o Sitemap estiver localizado em http://www.example.com/sitemap.xml, ele não pode incluir URLs a partir de http://subdomain.example.com.

Os URLs considerados inválidos são retirados das futuras considerações. É extremamente recomendável que você coloque seu Sitemap no diretório raiz do servidor. Por exemplo, se o seu servidor da web estiver em exemplo.com.br, o seu arquivo de índice Sitemap deve estar em http://exemplo.com.br/sitemap.xml. Em algumas situações, é preciso produzir diferentes Sitemaps para diferentes caminhos no site por exemplo, se as permissões de segurança em sua organização compartimentarem o acesso à gravação a diferentes diretórios.

Se você enviar um Sitemap usando um caminho com um número de porta, inclua esse número de porta como parte do caminho em cada URL listado no arquivo de Sitemap. Por exemplo, se o Sitemap estiver em http://www.example.com:100/sitemap.xml, cada URL listado no Sitemap deverá começar com http://www.example.com:100.

Sitemaps & envios cruzados

Para enviar Sitemaps de vários hosts a partir de um único host, você precisará "provar" a propriedade do(s) host(s) para os quais os URLs estão sendo enviados em um Sitemap. Veja um exemplo. Digamos que você deseje enviar Sitemaps de 3 hosts:


www.host1.com with Sitemap file sitemap-host1.xml

www.host2.com with Sitemap file sitemap-host2.xml

www.host3.com with Sitemap file sitemap-host3.xml

Além disso, se desejar colocar todos os três Sitemaps em um único host: www.sitemaphost.com. Então, os URLs do Sitemap serão:


http://www.sitemaphost.com/sitemap-host1.xml

http://www.sitemaphost.com/sitemap-host2.xml

http://www.sitemaphost.com/sitemap-host3.xml

Por padrão, isso resultará em um erro de "envio cruzado" já que você está tentando enviar URLs para www.host1.com através de um Sitemap hospedado em www.sitemaphost.com (o mesmo para os outros dois hosts). Uma forma de evitar o erro é provar que você é o proprietário (ou seja tem a autoridade de modificar arquivos) do www.host1.com. Você pode fazer isso modificando o arquivo robots.txt no www.host1.com para apontar para o Sitemap em www.sitemaphost.com.

Neste exemplo, o arquivo robots.txt em http://www.host1.com/robots.txt contém a linha "Sitemap: http://www.sitemaphost.com/sitemap-host1.xml". Ao modificar o arquivo robots.txt em www.host1.com e fazer com que ele aponte para o Sitemap em www.sitemaphost.com, você provou, implicitamente, que tem a propriedade de www.host1.com. Em outras palavras, quem controlar o arquivo robots.txt em www.host1.com acredita que o Sitemap em http://www.sitemaphost.com/sitemap-host1.xml contém os URLs para www.host1.com. O mesmo processo pode ser repetido para os outros dois hosts.

Agora você pode enviar os Sitemaps em www.sitemaphost.com.

Quando um arquivo robots.txt de um determinado host, digamos http://www.host1.com/robots.txt, aponta para um Sitemap ou um índice de Sitemap em outro host; espera-se que para cada Sitemap de destino, como http://www.sitemaphost.com/sitemap-host1.xml, todos os URLs pertençam ao host que está apontando para ele. Isso ocorre pois, como observado anteriormente, espera-se que um Sitemap tenha URLs de um único host.

Voltar ao início

Como validar seu Sitemap

Os seguintes esquemas XML definem os elementos e os atributos que podem ser exibidos no arquivo Sitemap. Esse esquema pode ser obtido usando os links a seguir:

Para Sitemaps: http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd
Para arquivos de índice de Sitemap http://www.sitemaps.org/schemas/sitemap/0.9/siteindex.xsd

Existem determinadas ferramentas disponíveis que podem ajudá-lo a validar a estrutura do Sitemap com base nesse esquema. Você pode localizar uma lista de ferramentas relacionadas ao XML em cada um dos locais a seguir:

http://www.w3.org/XML/Schema#Tools
http://www.xml.com/pub/a/2000/12/13/schematools.html

Para validar seu Sitemap ou seu arquivo de índice de Sitemaps em um esquema, o arquivo XML necessitará de cabeçalhos adicionais, como mostrado a seguir.

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>

Arquivo de índice de Sitemaps:


<?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>

Voltar ao início

Ampliando o protocolo Sitemaps

Você pode ampliar o protocolo Sitemaps usando o seu próprio namespace. Simplesmente especifique este espaço para nome no elemento raiz. Por exemplo:


<?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>

Voltar ao início

Informando crawlers de mecanismo de pesquisa

Assim que tiver criado o arquivo Sitemap e o inserido no seu servidor web, você precisará informar os mecanismos de pesquisa compatíveis com este protocolo de seu local. Essa inscrição pode ser feita por:

Os mecanismos de pesquisa podem então recuperar o Sitemap e disponibilizar os URLs para os rastreadores.

Enviando o seu Sitemap por meio da interface de envio do mecanismo de pesquisa

Consulte a documentação de cada mecanismo de pesquisa para os quais você deseja enviar o seu Sitemap. Esse procedimento permitirá que você receba as informações de status e quaisquer erros de processamento.

Especificando a localização do Sitemap no seu arquivo robots.txt

Você pode especificar a localização do Sitemap usando um arquivo robots.txt. Para fazer isso, basta acrescentar a seguinte linha:

Sitemap: http://www.example.com/sitemap.xml

Esta diretiva é independente da linha do usuário-agente, de forma que não importa onde você irá posicioná-la no seu arquivo. Se você tiver um arquivo de índice do Sitemap, pode incluir a localização somente desse arquivo. Não é necessário relacionar cada Sitemap individual apresentado no arquivo de índice.

Você pode especificar mais de um arquivo Sitemap por arquivo robots.txt.

Sitemap: http://www.example.com/sitemap-host1.xml

Sitemap: http://www.example.com/sitemap-host2.xml

Enviando o seu Sitemap usando uma solicitação HTTP

Para enviar o seu Sitemap usando uma solicitação HTTP (substitua <searchengine_URL> pelo URL fornecido pelo mecanismo de pesquisa), emita a solicitação para o seguinte URL:

<searchengine_URL>/ping?sitemap=sitemap_url

Por exemplo, se o Sitemap for colocado em http://www.example.com/sitemap.gz, o URL será:

<searchengine_URL>/ping?sitemap=http://www.example.com/sitemap.gz

URL codifica tudo após o /ping?sitemap=:

<searchengine_URL>/ping?sitemap=http%3A%2F%2Fwww.seusite.com%2Fsitemap.gz

Emita a solicitação HTTP usando wget, curl ou outro mecanismo de sua escolha. Uma solicitação bem-sucedida retornará um código de resposta HTTP 200; se você receber uma resposta diferente, envie a solicitação outra vez. O código de resposta HTTP 200 indica apenas que o mecanismo de pesquisa recebeu o Sitemap, não que o próprio Sitemap ou os URLs nele contidos eram válidos. Uma forma fácil de fazer isso é configurar uma tarefa automatizada para gerar e enviar Sitemaps regularmente.
Observação: se você estiver fornecendo um arquivo de índice de Sitemap, será preciso emitir uma solicitação HTTP que inclua o local desse arquivo. Não será preciso emitir solicitações individuais para cada Sitemap relacionado no índice.

Voltar ao início

Excluindo o conteúdo

O protocolo Sitemaps possibilita que você informe os mecanismos de pesquisa sobre o conteúdo que gostaria de indexar. Para informar aos mecanismos de pesquisa o conteúdo que você não deseja indexar, use um arquivo robots.txt ou uma meta tag de robôs. Consulte robotstxt.org para obter mais informações sobre como excluir conteúdo de mecanismos de pesquisa.

 

Voltar ao início

Última atualização: 21 de março de 2008