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

相關問題