【问题标题】:Google indexing of my AngularJS application我的 AngularJS 应用程序的 Google 索引
【发布时间】:2015-03-07 03:30:36
【问题描述】:

谷歌有一篇博文称他们正在索引 javascript 应用程序。但是,我的 AngularJS 应用程序 www.fore-cite.com 似乎根本没有被索引。为了启用索引并使内容可搜索,我需要做些什么特别的事情吗?

【问题讨论】:

  • 您是否使用过 google 提供的 webamstertools 来查看索引信息和测试爬网页面?您是否在角度使用 HTML5 模式?直接请求特定路由时,您的网络服务器是否正确返回 index.html?
  • 我已经要求谷歌网站管理员工具来呈现页面,但它没有帮助。什么是角度的html5模式?直接请求特定路线是什么意思?当 index.html 被问到时,AngularJS 也会启动。我应该在那里做什么?
  • 例如,如果你有一个指向 example.com/about 的 angular 路由,你的网络服务器应该返回 index.html,然后 angular 会渲染 /about 路由。
  • html5 模式是一个角度设置,您可以启用它以允许使用 example.com/about 而不是 example.com/#/about 查看您的页面
  • 我得到了 html5 模式。但是对于 index.html:我是否必须为此做一些特别的事情?

标签: angularjs seo google-index


【解决方案1】:

Google 抓取工具会在其抓取的网页上执行 javascript。使用 AngularJS,您必须采取几个步骤来确保您的应用程序被正确地抓取和索引。

HTML5 模式

You must use html5 mode.

网络服务器设置

要使 html5 模式正常工作,您必须配置您的网络服务器,以便将对不存在的目录的请求重写为 index.html。

网站地图

Google 尚未正确跟踪 angularjs 应用程序中的链接,因此您必须为所有路线创建站点地图。这听起来很痛苦,但是,通过适当的构建过程,这可能是一个非常自动化的过程。 (咕哝、咕哝等)

缺点

这当然只适用于谷歌爬虫。其他搜索爬虫(例如 Bing)可能还不支持 javascript 应用程序,但如果这种情况在未来一两年内发生变化(如果还没有的话),我不会感到惊讶。

其他注意事项

索引 Angular 应用程序时经常遗漏的一个问题是诸如分页和单击按钮后显示的内容之类的问题。如果这些操作不改变 url,google 将不会抓取它。例如,假设您有一个带有使用分页的表格的页面,并且它有 3 页。 Google 只会抓取第一页,除非每个页面都有不同的 url 路由,例如 /table/page/1 /table/page/2 /table/page/3

【讨论】:

  • 使用这种方法,深层链接不再起作用。如果用户输入一个深层链接作为 URL,将询问服务器。然而,我们需要 AngularJs 来回答这个请求。这个问题有解决办法吗?
  • 这是一篇很好的博客文章,描述了如何直接在 django 中进行这种重写和服务器配置:blog.kevinzhang.me/posts/…
  • 我就是这么做的。渲染为 google 工作正常,即页面显示正确。尽管如此,爬行似乎不起作用。目前我不知道如何分析和寻找解决方案......如果你有兴趣,让我们做一个Skype或交换邮件来头脑风暴这个问题。我的电子邮件是:paweloque@gmail.com
  • 我也有同样的问题。 Fetch as Google 似乎按预期工作,页面正确呈现。但是 google 中的缓存页面不是 javascript 呈现的,页面的内容没有正确索引。并且所有 html5 路由/url 都没有出现在索引中。我在 sitemap.xml 中列出了所有页面,没有帮助。
  • 这如何应用于 angular2?
【解决方案2】:

您可能想要使用 Angular Universal。它失去了在客户端呈现 Angular 应用程序的好处,但是它将允许正确的搜索引擎索引(不仅是谷歌)。

您将不得不决定是否值得为您的要求进行权衡

Angular Universal Official Website

【讨论】:

    【解决方案3】:

    如今,您无法使用 AngularJS 获得良好的 SEO。

    首先是让您的网页被抓取。见this简单的JS索引实验。

    要诊断您的网站,您可以使用 Googlebot 使用的 Chrome 41 来索引 JS 页面。见this

    【讨论】:

    • 这与另一个已接受的答案相矛盾,所以你有“没有用 AngularJS 获得好的 SEO”的来源吗?
    • 没有矛盾。如果谷歌可以索引它并不意味着它会索引。其中一个来源在第一个链接中。你可以谷歌更多。阅读它,您将知道要查找的内容,例如 AngularJS SEO case
    猜你喜欢
    • 1970-01-01
    • 2014-06-21
    • 1970-01-01
    • 1970-01-01
    • 2012-11-10
    • 2013-02-08
    • 1970-01-01
    • 2015-12-15
    相关资源
    最近更新 更多