Webサイトを運営していると、Google Search ConsoleやLighthouseで「robots.txt が無効です」というエラーメッセージに遭遇することがあります。このエラーは一見すると技術的で複雑に見えますが、実は適切な知識があれば誰でも解決できる問題なんです。
こんにちは、landinghub(https://www.landinghub.net/)でWeb制作を手がけている私が、今回は「robots.txt が無効です」エラーについて、初心者の方にもわかりやすく解説していきます。
このエラーを放置していると、検索エンジンのクロールが適切に行われず、結果的にSEO効果が低下してしまう可能性があります。特に表示速度の改善を進めている方にとって、robots.txtの正しい設定は欠かせない要素の一つです。
目次
robots.txtとは何か?基本から理解しよう
robots.txtの基本概念
robots.txt(ロボットテキスト)は、検索エンジンのクローラーに対して「どのページをクロールしてもよいか」「どのページはクロールしないでほしいか」を指示するためのファイルです。
Webサイトを家に例えると、robots.txtは玄関に置かれた「立入禁止」や「どうぞお入りください」の看板のようなものです。検索エンジンのクローラーは、まずこの看板(robots.txt)を確認してから、サイト内の各ページを巡回します。
なぜrobots.txtが重要なのか
検索エンジンは無限にクロールしてくれるわけではありません。各サイトには「クロールバジェット」という、クローラーが割り当てられる時間や回数に制限があります。
つまり、不要なページをクロールさせることで、本当に検索結果に表示したい重要なページのクロールが後回しになってしまう可能性があるんです。これは特に大規模なサイトで顕著に現れる問題です。
「robots.txt が無効です」エラーの種類と原因
Lighthouseで検出される主なエラー
Google ChromeのLighthouseツールでは、robots.txtに関して以下のようなエラーが検出されます:
1. No user-agent specified(ユーザーエージェントが指定されていない)
User-agent:
Disallow: /admin/
このように、User-agent:の後に何も記述されていない場合に発生します。
2. Pattern should either be empty, start with “/” or ““(パターンは空、”/”、または”“で始まる必要がある)
User-agent: *
Disallow: admin/
正しくは「/admin/」と先頭にスラッシュを付ける必要があります。
3. Unknown directive(不明なディレクティブ)
User-agent: *
Disalow: /admin/
「Disallow」のスペルミスなど、認識できない命令が含まれている場合です。
4. Invalid sitemap URL(無効なサイトマップURL)
Sitemap: /sitemap.xml
相対URLではなく、完全なURLを指定する必要があります。
5. $ should only be used at the end of the pattern($は パターンの最後でのみ使用可能)
User-agent: *
Disallow: /file$.html
正しくは「/file.html$」のように、最後に配置します。
Search Consoleで表示される関連エラー
Google Search Consoleでは、以下のような関連エラーが表示されることがあります:
- 「robots.txtによりブロックされましたが、インデックスに登録しました」
- 「robots.txtが未取得」
- 「robots.txtにアクセスできません」
これらのエラーはすべて、robots.txtファイルの設定や配置に問題があることを示しています。
robots.txtの正しい書き方
基本的な構文
robots.txtの基本的な構文は以下の通りです:
User-agent: *
Disallow: /admin/
Allow: /admin/public/
Sitemap: https://example.com/sitemap.xml
User-agent: 対象となるクローラーを指定 Disallow: クロールを禁止するディレクトリやファイル Allow: 例外的にクロールを許可する場所 Sitemap: XMLサイトマップの場所
実践的な記述例
基本的な設定例
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
特定のクローラーを制御する例
User-agent: Googlebot
Disallow: /private/
User-agent: Bingbot
Disallow: /temp/
User-agent: *
Disallow: /admin/
よくある間違いとその修正方法
間違い1: ファイル名の誤記
❌ robot.txt
❌ robots.TXT
✅ robots.txt
間違い2: 配置場所の誤り
❌ https://example.com/blog/robots.txt
✅ https://example.com/robots.txt
間違い3: 構文エラー
❌ User-agent:
❌ Disallow: admin/
✅ User-agent: *
✅ Disallow: /admin/
エラーの具体的な修正方法
1. ファイルの作成と配置
Step 1: テキストエディタでファイルを作成 メモ帳やテキストエディタを使って、robots.txtファイルを作成します。
Step 2: 正しい構文で記述
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://yourdomain.com/sitemap.xml
Step 3: ルートディレクトリにアップロード FTPクライアントを使って、サイトのルートディレクトリ(通常はpublic_htmlフォルダ)にアップロードします。
2. WordPressでの設定方法
プラグインを使用する方法
Yoast SEOを使用する場合
- WordPress管理画面で「Yoast SEO」→「ツール」に移動
- 「ファイルエディタ」を選択
- 「Create robots.txt file」をクリック
- 必要な設定を記述して保存
Rank Mathを使用する場合
- 「Rank Math」→「General Settings」に移動
- 「Edit robots.txt」を選択
- 設定を記述して保存
3. エラーの検証方法
Google Search Consoleでの確認
- Search Consoleにログイン
- 「クロール」→「robots.txtテスター」を選択
- URLとUser-agentを指定してテスト実行
- エラーがあれば修正のヒントが表示されます
ブラウザでの直接確認
https://yourdomain.com/robots.txt
上記URLにアクセスして、ファイルの内容が正しく表示されることを確認します。
表示速度改善との関係
robots.txtがサイト速度に与える影響
robots.txtの適切な設定は、実はサイトの表示速度向上にも大きく貢献します。
1. 不要なリソースのクロール回避 CSSファイルや画像ファイルなど、検索結果に直接関係のないリソースへのクロールを制限することで、サーバーの負荷を軽減できます。
2. クロールバジェットの最適化 重要なページにクロールリソースを集中させることで、インデックスの更新が早くなり、結果的にサイト全体のパフォーマンスが向上します。
3. サーバーリソースの節約
User-agent: *
Disallow: /wp-content/themes/
Disallow: /wp-content/plugins/
Disallow: /*.css$
Disallow: /*.js$
このような設定により、サーバーへの不要なアクセスを減らし、実際のユーザー向けコンテンツの配信速度を向上させることができます。
landinghubでの最適化事例
私たちlandinghub(https://www.landinghub.net/)では、クライアントサイトの表示速度改善において、robots.txtの最適化も重要な施策の一つとして取り組んでいます。
特に、以下のような設定により、サイト全体のパフォーマンスが平均15-20%向上した事例があります:
User-agent: *
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wp-content/plugins/
Disallow: /wp-content/themes/
Allow: /wp-admin/admin-ajax.php
Allow: /wp-content/uploads/
Sitemap: https://example.com/sitemap.xml
高度な設定とベストプラクティス
動的サイトでの設定
ECサイトでの設定例
User-agent: *
Disallow: /cart/
Disallow: /checkout/
Disallow: /account/
Disallow: /*?add-to-cart=
Allow: /
Sitemap: https://example.com/sitemap.xml
会員制サイトでの設定例
User-agent: *
Disallow: /members/
Disallow: /login/
Disallow: /register/
Allow: /
Sitemap: https://example.com/sitemap.xml
セキュリティ面での配慮
robots.txtは公開ファイルであるため、セキュリティ上重要な情報を含めないよう注意が必要です。
避けるべき設定
❌ Disallow: /secret-admin/
❌ Disallow: /confidential-data/
このような設定は、逆にセキュリティホールの存在を教えてしまう可能性があります。
トラブルシューティング
よくある問題と解決策
問題1: 「robots.txtが見つかりません」 解決策: ファイルがルートディレクトリに正しく配置されているか確認。ファイル名のスペルミスがないかチェック。
問題2: 「設定が反映されない」 解決策: ブラウザのキャッシュをクリアし、Search Consoleで再取得をリクエスト。
問題3: 「インデックスから消えてしまった」 解決策: 重要なページをDisallowで制限していないか確認。必要に応じてAllowディレクティブを追加。
緊急時の対処法
もしrobots.txtの設定ミスでサイト全体がクロールされなくなった場合:
- 一時的に空のrobots.txtファイルをアップロード
User-agent: *
Disallow:
- Search Consoleで再クロールをリクエスト
- 問題を特定して正しい設定に修正
まとめ
「robots.txt が無効です」エラーは、適切な知識と手順で確実に解決できる問題です。重要なポイントを振り返ってみましょう:
- 正しい構文と配置場所の確認
- 定期的なエラーチェック
- 表示速度改善との相乗効果
- セキュリティ面での配慮
robots.txtの最適化は、単なるエラー修正にとどまらず、サイト全体のパフォーマンス向上にもつながる重要な施策です。
もし設定に不安がある場合や、より専門的な最適化をお考えの場合は、私たちlandinghub(https://www.landinghub.net/)にお気軽にご相談ください。表示速度改善からSEO対策まで、トータルでサポートいたします。
正しいrobots.txtの設定により、あなたのサイトがより多くのユーザーに見つけられ、優れたユーザー体験を提供できるようになることを願っています。