
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:
- 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:
- http://example.com/dictionary.html#!AJAX, com a exclamação, mas que webcrawlers usariam uma URL diferente para acessar o conteúdo:
- 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:
- 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!








Bem legal… espero que nao demore p/ sair do papel
Tiago Lucena
[ Responder este comentário ]
Oi !
Gostaria de saber por exemplo, em uma URL para chamar uma pagina AJAX, eu utilizo:
http://www.meusite.com/?redirect=frameAJAXContatos
Isso para indicar para alguém.
No caso no site é via javascript.
Como que ficaria para colocar no sitemap do Google, a partir dessa nova idéia a URL em questão?
http://www.meusite.com/?redirect=frameAJAXContatos
Ivan
[ Responder este comentário ]
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 este comentário ]
Meu caro Frank,
Estou procurando sobre isso pois venho obtendo problemas com ajax.
Teria maiores informações?
Abraços
[ Responder este comentário ]
Olá André, é preciso procurar no blog para webmasters oficial do Google (http://googlewebmastercentral.blogspot.com/). Me lembro de ter lido em algum lugar que esta proposta estaria funcional, mas não tenho certeza.
[ Responder este comentário ]
Olá, execelente artigo.
Implementei isso no meu site. Há como saber se o google está “vendo” isso?
Só para confirmar:
A url: http://falci.me/#!contato
também pode ser acessada por: http://falci.me/?_escaped_fragment_=contato
[ Responder este comentário ]
Acredito que pelo comando site: ou cache: você consiga identificar se o Google está acessando as páginas corretamente.
[ Responder este comentário ]
Estive olhando, o facebook é assim, com #! nas URLs.
substituir #! por ?_escaped_fragment_= também funciona.
[ Responder este comentário ]
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 este comentário ]
Se eu trabalho com url amigável ficaria conforme o exemplo abaixo?
http://www.meusite.com/noticias#!AJAX
[ Responder este comentário ]
Você deve fazer como o nosso amigo Falci ou como o Facebook faz.
[ Responder este comentário ]
Muito bom, estava precisando dessas dicas, valeu e parabéns!
[ Responder este comentário ]
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 este comentário ]
Thiago, estou as escuras também. Não conheço site que tenha aplicado a técnica.
[ Responder este comentário ]
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 este comentário ]
Ok, amigo!
Obrigado pelo comentário.
[ Responder este comentário ]
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 este comentário ]
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 este comentário ]
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 este comentário ]
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 este comentário ]
Legal ver que o twitter utilizar #! mas a maioria dos usuários nem sonham em saber o que significa.
[ Responder este comentário ]
Sim, para o usuário leigo, dificilmente importa a tecnologia utilizada no site, para o Google é que pode fazer bastante diferença.
[ Responder este comentário ]
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 este comentário ]
Ofelquis, qual parte do processo foi impeditivo para você?
Um exemplo de site que tem esse processo funcionando é o Twitter.com.
[ Responder este comentário ]
Eu não entendo como faço pra criar a HTML snapshot da pagina.. o exemplo que é deixado no próprio google http://code.google.com/intl/pt-BR/web/ajaxcrawling/docs/html-snapshot.html
eu não consigo entender.
O exemplo que eu disse, seria uma pequena demonstração para download, pra saciar as dúvidas vendo o exemplo.
se vc ter pode disponibilizar?
[ Responder este comentário ]
Eu não tenho um exemplo para te passar. Mas tão logo eu providencie algo, eu aviso.