1

問題は、ホワイトリストrobots.txtがDisallow: /であることが、Googleで期待どおりに機能しないことです。Googleの「サイトマップにrobots.txtによってブロックされたURLが含まれています」警告

Googleはrobots.txtのルールを制限するとの問題があります。

User-agent: * 
Host: sitename 
Allow: /$ 
Allow: /sitemap.xml 
Allow: /static/ 
Allow: /articles/ 
Disallow:/
Disallow: /static/*.js$ 
sitemap.xmlとは、グーグルで /、多数の /articles/...のURL:

<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のテスターが含まれています

検索コンソールが正しく解釈すると、許可されているURL(「Fetch as Google」も同様)が表示されます。

サイト名/

サイト名/記事/一部-記事

しかし、クロール/サイトマップのレポートは、sitemap.xmlとは、すべての/articles/... URLの問題を持っていることを示し、警告は次のとおりです。

サイトマップのrobots.txtでブロックされたURLが含まれてい

このように、/のみがインデックスに登録されています(GoogleはサイトマップレポートでGoogleにそれほど不平を言っていませんでしたが、インデックスからも削除さえされました)。

このセットアップの背後にある理由は、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/Allowの注文が問題となり、Disallowが先に来るはずです。 – estus

+0

あなたは本当にそれを試すことができます...しかし、それは誤解を招くかもしれないとして私の答えを更新しています... – JVerstry

+0

申し訳ありませんが、私は間違っています。私はあなたのケースでは正しくない/私の答えを更新しています。 – JVerstry

関連する問題