javascript - 索引 angularjs 应用程序 - Googlebot 模拟与站点 :domain

标签 javascript angularjs indexing web-crawler google-crawlers

我最近使用 Angularjs 创建了一个网页,我目前正在尝试使用 pushstate 让它被 Google 索引。

我做了相当多的研究,发现我可以在 Google 网站管理员工具 中使用 Googlebot-simulater 来模拟对我网站的 Google 访问,并且查看机器人如何看到我的网页与用户看到的内容。

这里的结果看起来不错,Google 看到的内容与我的用户完全相同,所有页面/子页面的状态都是 partiallyfully

我今天早上得知要查看 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/

相关文章:

javascript - 访问 Angular 7/8 布局组件和服务中的路由参数?

javascript - RouteParams 没有注入(inject)到我的 Controller 中?

mysql - 在什么列上建立索引并快速进行表搜索

javascript - 使用 javascript 更新浏览器缓存

javascript - 是否可以在不超过调用堆栈的情况下展平一个 700 000 个条目的数组?

angularjs - 为什么我得到错误模块在 JSFiddle 中不可用?

css - 如何在 AngularJS 中有条件地应用 CSS 样式?

python - 如何在 Python 2.x 中索引用户输入列表?

Java,分页数组

javascript - 跨浏览器文本(模糊)阴影