我最近使用 Angularjs
创建了一个网页,我目前正在尝试使用 pushstate
让它被 Google 索引。
我做了相当多的研究,发现我可以在 Google 网站管理员工具
中使用 Googlebot-simulater
来模拟对我网站的 Google 访问,并且查看机器人如何看到我的网页与用户看到的内容。
这里的结果看起来不错,Google
看到的内容与我的用户完全相同,所有页面/子页面的状态都是 partially
或 fully
。
我今天早上得知要查看 Google
在我的网站上看到的内容的另一种方法是通过谷歌搜索 site:domainname
。以下是 Google
已缓存
的所有页面/子页面的列表,通过单击不同的链接,您可以看到显示相应页面的 View 。
这是我有点担心我错过了什么,因为无论 partially
/fully
状态如何,我的页面都是从 Goolgebot-simulation
,当我查看我的页面(使用第二种方法)时,页面都是空白的。
这是我第一次索引网页,我已经尝试了几天,但没有任何运气。有没有人可以告诉我做错了什么/错过了什么,或者至少指出了正确的方向?还是我应该再耐心一点?
最佳答案
Johannes Ferner 的回答不正确。它曾经是,谷歌更新他们的文档真的很慢,但他们已经正式宣布他们处理 AJAX 页面而不需要 HTML 快照,只要你使用 pushstates。 Bing 紧随其后并处理推送状态。
例如,搜索 site:yoamoseguros.com 并检查那里的缓存结果。该页面是用 Angular 构建的,完全使用 AJAX 和 pushstates 加载,显示和索引都很好。
并且忽略损坏的页面,几天前我做了一个失败的部署,完全损坏的重定向把一切都搞砸了,在我有机会删除它们之前,谷歌有时间索引损坏的页面。有一次他们快速索引了我的东西... :/
因此,如果您正在使用 pushstates(启用 html5 模式)并且您的网页未被 Google 正确显示,那么还有其他事情正在发生。检查您的 robots.txt,您是否阻止 Google 读取 js 文件或图像等静态内容?它需要访问这样的文件才能正确索引页面。
此外,请确保您的片段只是“#”而不是“#!”。在后一种情况下,Google 会假设您想要使用 html 快照并尝试找到它们,但可能会失败。因此,如果您想使用更简单的 pushstate 版本,请确保您没有使用“#!”。
最后一点,Facebook 不支持推送状态。因此 Facebook 仍将需要快照(或仅在 index.html 中硬编码 og-tags,具体取决于您拥有的内容类型)。
关于javascript - 索引 angularjs 应用程序 - Googlebot 模拟与站点 :domain,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32650978/