4

我有一个 angular.js 应用程序。我遵循了 google 的基于 ajax 的应用程序指南。我已经这样做了:

  1. 元标记

<base href="/"> <meta name="fragment" content="!">

  1. angular.js 配置

$locationProvider.html5Mode(true); $locationProvider.hashPrefix('!');

  1. 我的 html 链接看起来像这样(错了吗?):

<a ng-href="/#!/login">Login</a>

  1. 我将站点地图提交到谷歌搜索控制台(x 个月前)

我发现我不应该使用 escaped_fragment,对吗?难道我做错了什么?它仍然没有索引。谷歌索引的只是主页。

当我将 fetch 作为谷歌工具运行时,它会正确呈现所有页面。

4

2 回答 2

0

我们在同一个问题上苦苦挣扎了很长一段时间,在决定使用服务prerender.io后,它会为您的应用程序进行静态缓存,并为 google 和其他搜索爬虫提供此内容。

于 2016-02-17T13:10:04.960 回答
0

我发现我不应该使用 escaped_fragment,对吗?

这是正确的,截至本官方公告


还引入了额外的最佳实践:

为了获得最佳呈现和索引,我们的新指南指定您应该允许 Googlebot 访问您的网页使用的 JavaScript、CSS 和图像文件。这为您的网站提供了最佳的呈现和索引。禁止抓取您网站的 robots.txt 中的 Javascript 或 CSS 文件会直接损害我们的算法渲染和索引您的内容的效果,并可能导致排名不理想。

摘自Google 官方网站管理员博客


那么,您是否允许 Googlebot 访问所有必要的文件?

您的 URL 看起来如何?是否也可以作为静态 HTML 访问?在谷歌的公告中,他们仍然推荐渐进增强的概念,所以在你的情况下,也提供静态文件可能是有益的。

于 2016-02-17T14:47:07.197 回答