問題は、ホワイトリスト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テスト担当者だけがそのことを確認しています。
ここでDisallow/Allowの注文が問題となり、Disallowが先に来るはずです。 – estus
あなたは本当にそれを試すことができます...しかし、それは誤解を招くかもしれないとして私の答えを更新しています... – JVerstry
申し訳ありませんが、私は間違っています。私はあなたのケースでは正しくない/私の答えを更新しています。 – JVerstry