1

问题是,使用Disallow: /将robots.txt列入白名单无法按预期工作。Google'站点地图包含受robots.txt阻止的网址'警告

谷歌有限制的robots.txt规则问题:

User-agent: * 
Host: sitename 
Allow: /$ 
Allow: /sitemap.xml 
Allow: /static/ 
Allow: /articles/ 
Disallow:/
Disallow: /static/*.js$ 

凡sitemap.xml的包含在谷歌/和众多/articles/...网址:

<url><loc>http://sitename/</loc><changefreq>weekly</changefreq></url> 
<url><loc>http://sitename/articles/some-article</loc><changefreq>weekly</changefreq></url> 
<url><loc>http://sitename/articles/...</loc><changefreq>weekly</changefreq></url> 
... 

抓取/ robots.txt测试搜索控制台正确解释它,它显示这些URLs允许('取谷歌'也适用):

网站名称/

网站名称/用品/一些-文章

然而,在抓取/站点地图显示的sitemap.xml得到了问题的所有/articles/...的URL,该警告的报告:

网站地图包含由robots.txt封锁网址

因此,只有/被索引(它甚至在某个时候从索引中删除,尽管谷歌从未在网站地图报告中抱怨)。

这个设置背后的原因是Google无法正确呈现SPA路线,因此一些SPA路线(//articles/...)被分段呈现并允许抓取(其他路线尚未呈现,但这并不可取使他们现在可以抓取)。

我临时代替Disallow: /与所有已知的途径黑名单无碎片,问题就消失了:

User-agent: * 
Host: sitename 
Allow: /$ 
Allow: /sitemap.xml 
Allow: /static/ 
Allow: /articles/ 
Disallow: /blacklisted-route1 
Disallow: /blacklisted-route2 
... 
Disallow: /static/*.js$ 

什么是与前者方法的问题?为什么Google的行为如此?

robots.txt规则非常明确,Google的robots.txt测试程序仅证实了这一点。

回答

1

如果allow /$disallow /,禁止获胜(请参阅https://developers.google.com/search/reference/robots_txt中的组成员记录的优先顺序)。

忘掉我先前对最后一条规则的评论。它不适用于你的情况。

要删除片段,请使用规范标记。如果您不希望Google抓取您的网页,请设置nofollow

+0

所以不允许/允许订单在这里和重要Disallow应该先来吧? – estus

+0

你可以尝试,确实...但我更新我的答案,因为它可能会误导... – JVerstry

+0

没有抱歉,我弄错了。我正在更新我的答案,因为它在您的案例中不正确。 – JVerstry

相关问题