我理解为(GWT开发人员)Ajax站点动态呈现页面,例如我创建的站点是单页并包含选项卡以呈现“主页”,“关于我们”,“产品”等“页面”,等。
然而,这些页面通常包含一个哈希(#
),如果我访问说{,{1}}或http://example.com#HomePage
,它将会“最终”呈现页面和内容。 ..
现在,如果我将我的产品页面网站放在我的可抓取静态博客网站上,例如:#Products
如果我点击此网站,那么我的网站将在一些ajax调用后最终呈现产品。
但是,如果我从浏览器检查网站的“页面源”,页面仍然是相同的html“从ajax内容中清空”;这是为什么ajax网站无法编入索引的原因?搜索引擎不会将他们抓取的网址放在HTML单元中,这样他们就可以呈现页面而不只是获取静态页面?
无论如何,我看到实现解决了这个问题,使用外部“爬虫”服务作为ajax站点的一部分,但是没有解决方案不需要设置这样的外部服务/服务器吗?
答案 0 :(得分:1)
但是,如果我从浏览器检查网站的“页面源”,页面仍然是相同的html“从ajax内容中清空”;这是为什么ajax网站无法编入索引的原因?搜索引擎不会将他们抓取的网址放在HTML单元中,这样他们就可以呈现页面而不只是获取静态页面?
是的,依赖Ajax引入内容的网站依赖于JavaScript来引入内容,搜索引擎索引机器人(通常)不会执行JavaScript,因为:
无论如何,我看到实现解决了这个问题,使用外部“爬虫”服务作为ajax站点的一部分,但是没有解决方案不需要设置这样的外部服务/服务器吗?
首先不要依赖JavaScript。构建一个使用常规链接的站点。如果您愿意,可以在上面使用JavaScript。在提取新内容时,使用pushState
and friends使用真实网址更新地址栏。
答案 1 :(得分:0)
你应该知道的第一件事是抓取工具不会在页面上执行javascript,但有一种方法可以使页面可抓取(向抓取工具显示你的应用程序使用AJAX)。
示例(google crawler):
您应首先通过向应用程序AJAX链接添加特殊标记,向爬虫程序指示您的站点支持AJAX爬网方案。之后,爬虫将转换该URL并使用转换后的URL调用您的服务器。服务器应返回HTML快照(生成的HTML),该快照表示用户在浏览器加载页面中使用AJAX时创建的HTML内容。最后,您可以使用Fetch as Google tool来测试Google抓取工具在调用您的AJAX链接时会收到的内容。深入解释可以找到here。
我不使用GWT,但也许你可以使用一些特定的解决方案here。