如果您通过测试某些东西将您的尴尬转化为对我们所有人的社区服务,那就太好了,因为您看到的情况很少有人承认或想要重现自己。 :)
众所周知,Google 相对(或非常,取决于您询问的对象)擅长忽略隐藏内容。当人们习惯于使用设置为“显示:无”或具有微小/不可读/白色字体的块来使用关键字填充内容时,他们实现了这种方式。
您所看到的不仅仅是 SEO 的问题,所以我建议这样做是因为 prerender.io 之类的东西很棒,但它们只能解决这一问题。那些浏览器很慢的用户呢?好吧,事实证明 Angular 有一个很好的解决方案,叫做ngCloak。它会隐藏模板内容字段(ngModel 映射和绑定、表达式等),直到 Angular 准备好自行填充它们。
这很容易实现;您只需要一小块 CSS(在早期加载的文件中,或直接嵌入到您的 HTML 页面中):
[ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak {
display: none !important;
}
然后您将ngCloak 指令应用于受影响的项目或高级父项(例如您的 ng-view DIV):
<div id="wrapper" ng-cloak>
<!-- Page content here -->
</div>
这有点像 no-js 目标,但专门用于 AngularJS。
您仍然希望向 Google 提供实际上好材料的特定内容,但至少通过上述内容,您可以过滤掉其他所有内容。