Google Search Console间歇性地不呈现标题和说明 - AngularJS

时间:2016-08-01 16:30:50

标签: javascript angularjs seo

Google正在抓取我的网页而不会出错,但至少会失败 - 呈现标题和描述元内容。在大约1300页中,它说我有大约300个重复的元内容。当我看时,重复项就像{{metaContent}}。

当我使用site:URL检查我的页面时,在某些页面上,我看到了一个好的标题和描述。在其他页面上,我看到花括号。 Google的文档表明它非常擅长处理JavaScript,我认为AngularJS应该处于驾驶之中。

我正在使用Angular v1.5.5和ngRoute进行路由。我已将耗时的API调用移到路由解析中,如下所示:

$routeProvider.when('/route', { 
  templateUrl: 'sometemplate', 
  controller: 'someController', 
  resolve: {stuffINeed: function () {return service.getStuff()}}
})

我在根范围内的html如下所示:

<title ng-bind-template="{{title}}"></title> <meta name="description" content="{{metaDescription}}" />

然后在我的控制器中,我正在做:

$rootScope.title = 'something' $rootScope.metaDescription = 'something'

我下一次改进的尝试是不要将$ rootScope传递给控制器​​,而是在app.run中监听“$ routeChangeSuccess”,如下所示: $rootScope.$on( "$routeChangeSuccess", function(event, next, current) 然后在根范围上设置title和metaDescription。

更新

我已经通过一些改进更新了路线更改成功,但我仍然有重复的元内容。确切地说,我在~50k索引页面中有400个重复。现在它只是下面的样板。当我导航到页面并检查时,我看到了我的期望。也许Angular不是这项工作的正确工具 - 我们希望谷歌搜索引擎优化快乐。我的预感是,如果我的页面没有在某个时间阈值内呈现,Google将无法获得更新的标题和元内容。

app.run(function($rootScope) { $rootScope.title = boilerplate $rootScope.metaDescription = boilerplate $rootScope.$on('$routeChangeSuccess', function(event, next, current) { $rootScope.title = realtitle $rootScope.metaDescription = realdescription }) })

感谢阅读!

0 个答案:

没有答案