Como Indexar Sites em AJAX

ajax crawlable

Um dos maiores atrativos de sites que utilizam AJAX para seu conteúdo e navegação é também um dos maiores problemas para Search Engines: O fato de que em cliques de navegação somente um trecho da página é atualizado e mais, sem que a página seja completamente recarregada.

As Search Engines não “enxergam” essa atualização pontual. E ainda, o fato de que, até pouco tempo, URLs com # não eram tratadas de maneira de diferente, ou seja:

  • meusite.com/home e
  • meusite.com/home#news3

eram ambas consideradas a URL meusite.com/home, pois os robôs de busca desconsideravam a parte do símbolo # em diante, o que impedia que as Search Engines encontrassem e classificassem o conteúdo de sites em AJAX mais propriamente. Agora isso está para mudar.

Proposta para Tornar AJAX Rastreável

O Google mais uma vez dá o passo antes de seus concorrentes e lança a proposta de como tornar possível que webcrawlers encontrem conteúdos por trás de URLs que dependem do AJAX para ter seu conteúdo exibido – um grande passo que pode ser dado a favor do AJAX.

A proposta do Google procura abrangir os seguintes pontos:

  • Necessidade de mudanças mínimas no website enquanto ele evolui
  • Apresentação de mesmo conteúdo para Search Engines e usuários (sem cloaking)
  • Que os links em resultados de busca levem usuários para a página completa em AJAX, e não somente o pedaço de conteúdo que estava inserido em uma página AJAX
  • Que os webmasters possam verificar que seus sites são renderizados corretamente e que Search Engines consigam acesso a todo o conteúdo

A mudança proposta conta com a adição de uma exclamação (!) em URLs dinâmicas do AJAX, para que os webcrawlers possam acessar o conteúdo por meio de uma URL alternativa, mas que seja transparente para o usuário. De acordo com o Google, funcionará da seguinte maneira:

  1. As URLs atuais são da forma http://example.com/dictionary.html#AJAX , e devem ser disponibilizadas para usuários e webcrawlers de uma nova forma:
  2. http://example.com/dictionary.html#!AJAX, com a exclamação, mas que webcrawlers usariam uma URL diferente para acessar o conteúdo:
  3. http://example.com/dictionary.html?_escaped_fragment_=AJAX e aí sim, Search Engines teriam o acesso completo do conteúdo da URL em AJAX, porém uma versão HTML. Mas nas SERPs, a URL para usuários continuaria sendo:
  4. http://example.com/dictionary.html#!AJAX, com a exclamação.

Essas informações foram divulgadas no último dia do SMX East 2009 e também estão disponíveis no Webmaster Central, blog oficial  do Google, no artigo Proposal for Making AJAX Crawlable, onde está disponível a apresentação abaixo com mais detalhes sobre a proposta:

A motivação para a proposta está logo no começo da apresentação: com a web 2.0, 69% do conteúdo da web é produzido dinamicamente e, ao longo do tempo, não resolver corretamente a apresentação de sites AJAX compromete a gama de resultados possíveis de se apresentar nas SERPs e atrasa a evolução da Web.

Por enquanto, isto é uma proposta e o Google deixou o convite aberto para outras Search Engines abraçarem a solução. Ao longo do tempo, mais novidades vão surgir e nós vamos acompanhando o que mudar. Até a próxima!

Receba Novidades

Insira seu email para receber novidades e dicas exclusivas da Agência Mestre!
Divulgue este artigo

28 Comentários para “Como Indexar Sites em AJAX”

    • Frank Marcel

      Olá Ivan, ao que tudo indica, a URL a ser utilizada em sitemaps provavelmente será com o sinal exclamação. Mas se de fato isso se oficializar, as ferramentas de busca se pronunciariam sobre isso.

      Abraços!

      Responder
  1. André

    Meu caro Frank,

    Estou procurando sobre isso pois venho obtendo problemas com ajax.
    Teria maiores informações?
    Abraços

    Responder
  2. Falci

    Estive olhando, o facebook é assim, com #! nas URLs.
    substituir #! por ?_escaped_fragment_= também funciona.

    Responder
  3. Falci

    Bem, fiz o teste.
    Implementei essa modificações e fiquei aguardando.
    Antes o Google só indexava o conteúdo da index, agora as demais páginas do meu site (ajax) também estão nos snippet de resultados.

    Responder
  4. Thiago

    Olá Frank,
    Já li alguns artigos sobre o tema, mas ainda não achei um comentário de alguém que utilizou essa técnica e não teve problemas quanto a indexação.
    Gostaria de saber qual é o índice de confiabilidade de que o Google vai indexar a página?

    Responder
    • Falci

      Bem, usei isso em meu portifólio. O indice de acesso não é grande coisa. Mas me parece bem confiável.

      As visitas são as mesmas de quando eu monitorava apenas a index.
      Mas agora tenho as páginas exibidas, e as páginas de saída, entre outras coisas…

      Enfim, não sei se minha experiencia é relevante, mas, para mim os resultados foram muito positivos!

      Responder
  5. Arthur Minarini

    Ola o meu site ele tem o index com uma div que renderiza conteudos que vem do banco de dados (um campo que tem codigos html e javascript) eu uso java(jsp) com DWR, ao efetuar uma requisição ajax pelo DWR nada é alterado na url. como posso tratar para que o goole reconheça as minhas ID’s de noticias?

    Obs : criei um parametro que chama action exemplo: http://www.meusite.com.br?action=46 desta forma ele vai buscar no banco a informação 46 e renderizar na div principal. o que posso fazer?

    Responder
    • Frank Marcel

      Me parece que o seu caso não se enquadra no uso do #! e _escaped_fragment, pois você tem uma URL nova a cada requisição.

      O seu problema pode ser que o Googlebot não executa todo tipo de javascript, e aí ele não vai carregar o conteúdo.

      Responder
  6. danielvieira

    Fala Frank, muito bom o artigo.

    Estou aqui pensando, será que não tem como por .htaccess ou até mesmo alguma “gambiarra” no php para mostrar pros bots do Google que http://www.site.com.br/url-amigavel-para-produtos deve levar ao http://www.site.com.br/#!produtos?

    Mas se isso funcionar, será que perderíamos “força” por ter esse redirecionamento?

    Pelo que pude perceber, muitos reclamam que quando usando AJAX temos que fazer dois sites, um pro usuário e outro pro Google, mas com essa alternativa, um código poderia apenas gerar a url amigável sem esforço nenhum.

    O que você acha disso? Será que pode funcionar?

    Responder
    • Frank Marcel

      Não entendi o que você quer fazer ou por que.
      Se o seu site usa AJAX, a maneira correta de utilizá-lo é conforme está descrito no artigo. Assim o Google não se confunde, acessa o conteúdo.

      Você não vai efetivamente fazer dois sites. Vai apenas carregar os conteúdos de uma maneira diferenciada sem o risco de ser penalizado.

      Responder
    • Frank Marcel

      Sim, para o usuário leigo, dificilmente importa a tecnologia utilizada no site, para o Google é que pode fazer bastante diferença.

      Responder
  7. Ofelquis

    Cara.. eu li e reli a documentação lá.. procurei no google.. mas não consegui fazer a HTML snapshot.. vc tem algum exemplo pra eu ver o source? eu preciso muito aprender isso.. se vc puder me ajudar eu agradeço muito..

    Responder
  8. Gabriel Magalhães dos Santos

    Bacana o post, bem instrutivo!

    Pena que ta meio “velho”, e concerteza o google ja deve ter algumas formas alternativas de indexação de paginas com ajax.
    O pessoal da mestre podia colocar mais conteudo de SEO referente a ajax, ainda mais com o html5 ai aumentando 287237426% o leque de possibilidades com Ajax.

    Obrigado! =D

    Responder
    • Frank Marcel

      Gabriel, em termos de anúncios oficiais do Google sobre AJAX, esse é o único que me lembro de ter visto. Também, não me recordo de nenhuma assunto extra oficial sobre formas diferentes de fazer o Google indexar AJAX, além das conhecidas até o momento deste post.

      Se você achou algo por aí, manda pra gente! =)

      Responder

Deixar um comentário

  • (não será publicado)

XHTML: Você pode usar estas tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>