正如链接堆栈问题所说的那样
"Google 抓取工具现在执行 javascript - 您可以使用 Google
网站管理员工具可更好地了解您的网站是如何呈现的
谷歌。”
Check it out here
这意味着您不需要经历很多痛苦的步骤来让 Google 索引 AJAX 加载的 HTML。如果你用 AJAX 加载元数据就可以了。
我提出的一个解决方案是创建一个 AngularJS 指令,以从加载的模型中快速添加页面的元数据和标题名称。
/*
SEO directives
*/
dtvs.directive('metaSeo', function() {
return {
restrict: 'E',
scope: {
desc: '=',
title: '='
},
link: function(scope, el, attr) {
scope.$watch('desc', function() {
return $("head meta[name='description']").attr('content', scope.desc);
});
return scope.$watch('title', function() {
return $("head title").html(scope.title);
});
}
};
});
在上面的示例中,我使用 jQuery 来完成此操作,但您可以随意更换它。
上述指令为您提供了一个 HTML 元素,您可以将其放置在该页面的某个位置:
<meta-seo data-desc="lesson.brief" data-title="lesson.title"></meta-desc>
如果您有类似的指令,那么 SEO 元数据和标题应该可以被 google 抓取。