如何让Google抓取我的Ajax内容(外部XML)?

时间:2012-08-22 18:15:56

标签: xml ajax external web-crawler

(首先,对不起我的英语,这不是我的第一语言)

我有一个单页的网站,我有一个展示我们作品的投资组合。项目列表是从外部xml文件加载的,页面加载时带有ajax。当我点击一个项目时,会看到一个覆盖图,其中包含项目图像和描述。再次单击带有ajax的项目时会加载该描述。问题是:我的项目描述不在我的页面上加载,因此Google没有看到我的内容。这些描述在谷歌搜索结果中非常有用,可以帮助我获得更多观点......

我尝试将链接放到我的sitemap.xml中的xml文件中,但谷歌没有读取它。

我不能直接在我的html页面中包含所有内容,因为如果目前没有IT员工,那么外部xml文件更容易添加项目。

我对该主题进行了研究,但只得到了模糊的答案......我看到谷歌现在读取了当你有Flash文件时加载了ActionScript的外部xlm内容,但它是否在使用javascript的html中做同样的事情?

非常感谢您的回答!

1 个答案:

答案 0 :(得分:0)

要让Google为您网页的各种ajax状态编制索引,您必须遵守他们的Ajax抓取方案(https://developers.google.com/webmasters/ajax-crawling/docs/getting-started)...

基本上你需要确保你的页面的每个状态都可以通过url加载(而不仅仅是点击按钮),即如果按钮1链接到about us页面,那么你还必须确保about us状态可以通过网址哈希/#!about-us ....

加载

下一步是拦截web bot发出的请求(在上面的链接中解释),并使用无头浏览器(即QT + capybara-webkit,HtmlUnit等)在该州刮取您的站点服务器端在网址中指明,然后将生成的dom传回给请求的机器人。

如果您正在使用ruby,则需要一个gem来处理此页面拦截并在rubygems上呈现DOM快照; gem install google_ajax_crawlerhttps://github.com/benkitzelman/google-ajax-crawler的源代码....你必须首先实现客户端路由自己....不应该太难做 - 在页面js的某个地方做

之类的东西

if(document.location.hash == '#!about-us') { $('.about-btn').click(); }