【问题标题】:angular.js seo - google indexingangular.js seo - 谷歌索引
【发布时间】:2015-09-04 08:58:10
【问题描述】:

我当前的 html 看起来像这样:

<title ng-bind="title">Loading</title>
<meta name="description" content="[[description]]">
<base href="/">
<meta name="fragment" content="!">

angular.js 配置:

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

我认为让 googlebot 正确索引站点就足够了。但是不,它没有采用正确的标题或描述。如果我运行“fetch as googlebot”网站呈现正确..我该怎么办?

【问题讨论】:

    标签: javascript angularjs seo


    【解决方案1】:

    我认为您不再需要为 Google 抓取工具预呈现您的网页。不久前它开始注意到 javascript 的变化。

    其实我已经回答了一个关于AngularJS seo that will help you here:的问题

    在上面的链接中寻找我的答案。我还提供了一个可能对你有用的指令。

    顺便问一下,你确定你正确使用了 angularjs 表达式吗?您通常使用 [[]] 进行描述,它是 {{}}

    【讨论】:

    • 我会看看链接,谢谢。是的,我确定我设置了自定义语法。
    • 如果您认为答案会对其他人有所帮助,请投票。我认为当前接受的答案比我提到的要多得多,尤其是因为我相信它不再需要了。
    【解决方案2】:

    您需要一个预渲染引擎来为机器人渲染 HTML。在这里阅读:https://scotch.io/tutorials/angularjs-seo-with-prerender-io

    这里是关于机器人用来抓取您网站的escaped_fragmenthttps://developers.google.com/webmasters/ajax-crawling/docs/specification?hl=en

    【讨论】:

    • 只有这个选项“prerender”网站在 HTML 中,你可以使用在线服务(不需要安装你的 prerender )像这样:prerender.io
    • 是的,但我不想为这样的服务付费。
    • prerender 是开源的,你可以在自己的服务器上运行 - github.com/prerender/prerender
    • 这是错误的。谷歌确实索引计划 JavaScript SPA 网站。
    【解决方案3】:

    有时 Google 会忽略标题或元标记中提供的信息。但这看起来更像是一个技术问题。

    我至少会使用 ng-content-attr 而不是直接将其写入元内容属性。

    ng-attr-content="{{description}}"
    

    也许在 anuglar 用正确的字符串替换之前,Google 会提取您的标题信息!


    另一种方法是使用为您处理此问题的指令。幸运的是,我刚刚写了一个.. 继续尝试,你会看到这个设置谷歌识别你的标题! https://github.com/w11k/w11k-angular-seo-header/blob/master/angular-seo-header.js

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-20
      • 2016-05-14
      • 1970-01-01
      • 2016-03-06
      • 2017-03-28
      相关资源
      最近更新 更多