robots.txt でやってはいけないこと
robots.txt は、Google をはじめとした、多くの検索エンジンに対して、リストしてほしくないファイルを除外する手段として利用されています。
フォームやその先の内容確認、送信完了ページ、あるいは、フィード用ファイルといった、非 HTML ファイル群などを記載するのが通例でしょう。
この際、非 HTML ファイル群 を除外することについては、注意が必要となります。
具体的には、Javascript、CSS、画像といった、HTML に付帯して読み込まれるファイル群を除外してはならないということです。Javascript や CSS ファイルが検索に引っかかってほしくない気持ちは分かりますが、これらに検索エンジンがアクセスできない様にしてしまうと、検索エンジンが HTML を読む際に、除外されたファイルを読み込まずに判定することになってしまいます。
レイアウトはぐちゃぐちゃで、正しくページが動作せず、画像が欠けた、非常に低品質のページとして認識されてしまいます。
この話をした際に、たまに『では、動的に、サーバサイドで複数の HTML を組み合わせて 1 ページを生成しているような場合、部品となる HTML 自体は robot.txt で除外してしまっているが、これも同じく問題になるの?』という質問を受けます。
結論的には、問題になりません。むしろ、この場合は、HTML 部品を robots.txt で除外すべきです。検索エンジンは、あくまでもクライアントサイトのレンダリング(ブラウザ上における読み込み)を見ていますので、クライアントサイド(ブラウザ)に引き渡される前にベースの HTML に組み込まれるものについては、除外しても問題となりません。
と言いますか、少なくとも Google に関しては、ページのかけら、ブラウザ上の文字出力が少ない(あるいは無い)Javascript や CSS などが検索エンジンに読み込まれたとしても、まともにキーワード付けされることはまずあり得ないので、そんなに神経質に除外することはありません。
不用意になんでもかんでも robots.txt で除外設定を書くのではなく、ページとしてテキストを含んでいて、それでいて、検索エンジンに持って行かれたくないファイルだけを除外する様にしましょう。
尚、robots.txt には思わぬ落とし穴もあるので、Search Console エラーページは放っておいても大丈夫?もご参照ください。