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
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
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!
Meu caro Frank,
Estou procurando sobre isso pois venho obtendo problemas com ajax.
Teria maiores informações?
Abraços
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.
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
Acredito que pelo comando site: ou cache: você consiga identificar se o Google está acessando as páginas corretamente.
Estive olhando, o facebook é assim, com #! nas URLs.
substituir #! por ?_escaped_fragment_= também funciona.
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.
Se eu trabalho com url amigável ficaria conforme o exemplo abaixo?
http://www.meusite.com/noticias#!AJAX
Você deve fazer como o nosso amigo Falci ou como o Facebook faz.
Muito bom, estava precisando dessas dicas, valeu e parabéns!
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?
Thiago, estou as escuras também. Não conheço site que tenha aplicado a técnica.
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!
Ok, amigo!
Obrigado pelo 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?
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.
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?
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.
Legal ver que o twitter utilizar #! mas a maioria dos usuários nem sonham em saber o que significa.
Sim, para o usuário leigo, dificilmente importa a tecnologia utilizada no site, para o Google é que pode fazer bastante diferença.
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..
Ofelquis, qual parte do processo foi impeditivo para você?
Um exemplo de site que tem esse processo funcionando é o Twitter.com.
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?
Eu não tenho um exemplo para te passar. Mas tão logo eu providencie algo, eu aviso.
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
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! =)