在最近的 JavaScript SEO Office Hours 中,Google 的 Martin Splitt 回答了一个关于阻止外部 JS 和 CSS 资源的问题。 问题是阻止资源是否会导致网站失去排名。
然而,被问到的问题中有一个皱纹……
被阻止的 JavaScript 和 CSS 会影响排名
在某些情况下,阻止 JavaScript 和 CSS 文件可能会导致排名问题。 一个原因是因为 Google 需要其中一些文件来呈现网页并确定它是否适合移动设备。
谷歌官方开发者页面 说这个:
“为了获得最佳呈现和索引,始终允许 Googlebot 访问您网站使用的 JavaScript、CSS 和图像文件,以便 Googlebot 可以像普通用户一样查看您的网站。
如果您网站的 robots.txt 文件不允许抓取这些资产,则会直接损害我们的算法呈现和索引您的内容的效果。 这可能会导致排名不理想。”
阻止外部 JavaScript 和 CSS
问这个问题的人有充分的理由担心 Google 会如何应对阻止外部资源。
问题:
“如果您使用 robots.txt 阻止外部 JS 文件/其他域中的 CSS 文件上的 JS 或 CSS,或者如果其他域阻止它们,那么用户会看到与 Googlebot 不同的东西,对吧?
谷歌会不信任这种页面并降低它们的排名吗?”
谷歌的 Martin Splitt 自信地回答:
“不,我们不会贬低任何东西。 这不是伪装。 伪装非常具体地意味着误导用户。
仅仅因为我们看不到内容并不一定意味着你在误导用户。”
伪装是垃圾邮件发送者用来向 Google 显示一组内容以欺骗 Google 对其进行排名并向用户显示完全不同的网页的一种技巧,例如病毒或垃圾邮件的网页。
伪装也是一种阻止 Google 抓取发布商不希望 Google 看到的 URL 的方法,例如附属链接。
Martin 的回答来自于是否将阻止外部资源视为伪装,他的回答是否定的。
阻止外部资源是如何产生问题的
Martin 然后继续描述阻塞外部资源如何成为一个问题:
“如果您的内容仅在我们可以获取这些资源时才显示,并且我们在呈现的 HTML 中看不到内容,因为它被 robots.txt 阻止,这仍然存在潜在问题。
那我们就不能索引了。 如果缺少内容,我们无法将其编入索引。”
谷歌的测试工具将揭示问题
Martin 然后继续展示发布者如何诊断阻塞资源是否存在问题。
“因此,绝对值得尝试我们的测试工具,以查看您希望在页面上看到的内容是否真的在页面上可见,即使某些 JavaScript 或 CSS 资源可能会被自动生成。
但一般来说,自动处理 JavaScript 或 CSS 资源本身并不是问题。 如果我们看不到内容,这可能是个问题,但从伪装的角度来看这很好,这不是伪装。”
他进一步澄清:
“如果内容是由 JavaScript 加载的,而我们无法加载该 JavaScript,因为它是自动生成的,我们将看不到它,这可能会出现问题。 但如果它是聊天框或评论小部件之类的增强功能……那么这不是问题。”
出版商问了一个技巧问题
这是一个有趣的答案,可以阻止与聊天框或评论小部件关联的外部资源。 阻止这些资源可能很有用,例如,如果它有助于加快 Google 的网站渲染速度,但是……
但是被问到的问题有一点皱纹: 您不能使用 robots.txt 阻止外部资源(在另一个域上)。
最初的问题是两部分的。
这是有问题的第一部分:
“如果你使用 robots.txt 来阻止外部 JS 文件/其他域中的 CSS 文件上的 JS 或 CSS……”
Robots.txt 无法完成这部分问题。
谷歌的开发者页面提到了这个关于 robots.txt 的主题:
“它对同一主机、协议和端口号上所有子目录中的所有文件都有效。”
该问题被忽略的是 robots.txt 仅使用相对 URL,而不是绝对 URL(站点地图的位置除外)。
相对 URL 意味着 URL 与带有链接的页面“相对”。
在 HTACCESS 文件中,所有 URL 如下所示:
/file-1/example
这就是绝对 URL 的样子:
因此,如果您不能在 robots.txt 中使用绝对 URL,那么您就不能使用 robots.txt 阻止外部资源。
问题的第二部分在技术上是正确的:
“……或者如果其他域阻止了它们,那么用户会看到与 Googlebot 不同的东西,对吧? 谷歌会不信任这种页面并对其进行降级吗?”
外部资源经常被其他站点阻止。 因此,从这个方向来看,问题和答案更有意义。
Martin Splitt 说,阻止这些外部资源并不是伪装。 如果您不使用 Robots.txt,则该声明是正确的。
这可能就是马丁所指的,但是……
但这个问题专门针对 robots.txt。
在现实世界中,如果希望使用 robots.txt 阻止外部资源,那么许多人会转向伪装。
Cloaking 的名声不好,而且有充分的理由。 但事实是,并非所有的伪装都是坏事。 例如, Yoast 有一个关于隐藏附属链接的教程, 例如。
某些形式的隐藏可能是阻止与页面呈现方式无关且符合 Google 建议的资源的一种方式。