Sitemap

谷歌表示 Robots.txt 阻止某些外部资源是可以的

在最近的 JavaScript SEO Office Hours 中,谷歌的 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 无法完成这部分问题。

Google 的开发者页面提到了这个关于 robots.txt 的主题:

“它对同一主机、协议和端口号上所有子目录中的所有文件都有效。”

该问题被忽略的是 robots.txt 仅使用相对 URL,而不是绝对 URL(站点地图的位置除外)。

相对 URL 意味着 URL 与带有链接的页面“相对”。

在 HTACCESS 文件中,所有 URL 如下所示:

/file-1/example

这就是绝对 URL 的样子:

https://www.example.com

因此,如果您不能在 robots.txt 中使用绝对 URL,那么您就不能使用 robots.txt 阻止外部资源。

问题的第二部分在技术上是正确的:

“……或者如果其他域阻止了它们,那么用户会看到与 Googlebot 不同的东西,对吧?谷歌会不信任这种页面并对其进行降级吗?”

外部资源经常被其他站点阻止。因此,从这个方向来看,问题和答案更有意义。

Martin Splitt 说,阻止这些外部资源并不是伪装。如果您不使用 Robots.txt,那么该声明是正确的。

这可能是马丁所指的,但是……

但这个问题专门针对 robots.txt。

在现实世界中,如果希望使用 robots.txt 阻止外部资源,那么许多人会转向伪装。

Cloaking 的名声不好,而且有充分的理由。但事实是,并非所有的伪装都是坏事。例如,Yoast 有一个关于隐藏附属链接的教程。

某些形式的隐藏可能是阻止与页面呈现方式无关且符合 Google 建议的资源的一种方式。

在此处观看 Google JavaScript SEO 办公时间: