WordPressのrobots.txtは、検索ロボットへ巡回してよい場所を伝えるファイルです。標準では実ファイルがなくても
/robots.txt
に仮想内容を返すことがあります。編集前に現在の応答、検索エンジンでの表示設定、サイトマップURLを確認し、
Disallow: /
でサイト全体を止めないことが最重要です。
最初に答え:現在の /robots.txt を確認し、必要な場所だけを制御する
ブラウザーで
https://ドメイン/robots.txt
を開き、200でテキストが返るか確認します。WordPressの「検索エンジンがサイトをインデックスしないようにする」がオフであることを確認し、必要ならSitemap行を正しいサイトマップURLへ設定します。
- 公開URLの /robots.txt を開く
- 設定 → 表示設定の検索エンジン項目を見る
- User-agent と Disallow の組を読む
- Sitemap URLが200か確認する
- 変更後に公開robots.txtを再取得する
robots.txtでできること・できないこと
robots.txtは巡回の指示であり、機密情報を守る認証ではありません。DisallowしてもURLだけ検索結果へ残る場合があり、削除したいページにはnoindexや認証など目的に合う方法が必要です。
| 見え方 | 原因候補 | 最初の確認 |
|---|---|---|
| Disallow: / | 全体巡回停止 | 公開サイトでは解除を検討 |
| wp-adminのみDisallow | 標準的な管理画面制御 | admin-ajax許可を確認 |
| Sitemapが古い | サイトマップURL変更漏れ | 実URLへ修正 |
| robots.txtが404 | 仮想応答・サーバー設定 | パーマリンクと実ファイル |
手順1:現在の公開内容を読む
/robots.txt
を未ログインで開き、User-agent、Disallow、Allow、Sitemapを記録します。管理画面やプラグインの表示ではなく、検索ロボットが取得する公開URLを基準にします。
複数のrobots.txt生成元がある場合、サーバーの実ファイルがWordPressやSEOプラグインより優先することがあります。
実ファイルは見つからなくて、WordPressが表示しているみたいです。
ここまでここまで合ってるかな…?まだ少し自信がありません。
うん、そこまで合っているよ。WordPressが自分で表示していることもあるから、異常じゃないんだ。
実ファイルと設定画面を順番に見れば大丈夫だよ。
変更前をそのまま残しておけば戻せるんですね。
一行ずつなら、私でも落ち着いて見られそうです。
そうそう、変更前を残しておけば安心だね。
いきなり何行も変えず、今回は一つだけにしようか。
手順2:検索表示設定との関係を確認する
「設定 → 表示設定」で検索エンジンへの表示項目を確認します。公開サイトで誤ってオンなら、意図を確認して解除します。
この設定は環境やプラグインによりrobots.txtやnoindexへ影響します。解除後はページソースのrobots metaも確認します。
手順3:必要最小限のルールを書く
例として管理画面を巡回させず、ajaxを許可する場合は
User-agent: *
、
Disallow: /wp-admin/
、
Allow: /wp-admin/admin-ajax.php
を行ごとに記載します。
CSS、JavaScript、画像を広く遮断するとレンダリング評価へ影響します。理由の分からないDisallowをコピーしません。
手順4:サイトマップと公開応答を確認する
Sitemap: https://ドメイン/sitemap.xml
のように絶対URLを記載し、そのURLが実際に200で開くか確認します。
変更後はキャッシュを消し、未ログインでrobots.txtを開き直します。Search Consoleの検査は公開内容が確定した後に行います。
記事を検索から消すならDisallowだと思っていました…。
noindexとは違うって聞いて、急に分からなくなってきました。
分からなくなって当然だよ。
Disallowは巡回を控えてもらう言葉で、検索から消す約束ではないんだ。目的を一緒に整理しようね。
巡回と検索結果は別なんですね。
まだごちゃごちゃするので、今回は公開したい記事だけ確認してもいいのかな…?
うん、今回は公開したい記事だけ見れば十分だよ。
トップと記事が拒否されていないか、まずそこだけ確かめようか。
まず読める最小の設定例を知る
一般的なWordPressサイトで、管理画面周辺だけをクロール対象から外したい場合の基本形は次のとおりです。
User-agent: *
Disallow: /wp-admin/
Allow: /wp-admin/admin-ajax.php
Sitemap: https://example.com/sitemap.xml
User-agent: *
はすべての検索クローラー向け、
Disallow
はクロールを控えてほしいパス、
Allow
はその中でも取得を許可する例外です。サイトマップのURLは自分のサイトで実際に公開されているものへ置き換えます。例をそのまま貼る前に、URLをブラウザーで開いて200で表示されるか確認してください。
記事を検索から消すために
Disallow
を使うのは適切とは限りません。すでに検索結果へ出ているURLをクロール禁止にすると、検索エンジンがページ内のnoindexを再確認できなくなる場合があります。非公開、noindex、削除後の404または410など、目的に合う方法を選びます。
仮想robots.txtと実ファイルの違い
WordPressはルートに実ファイルがなくても、
https://あなたのドメイン/robots.txt
へアクセスすると内容を動的に返せます。サーバーの公開ディレクトリへ物理的なrobots.txtを置くと、そちらが優先される構成があります。管理画面の設定を変えたのに内容が変わらない場合は、実ファイル、SEOプラグイン、サーバーやCDNのキャッシュがどこで応答しているかを確認します。
サブディレクトリへrobots.txtを置いても、その場所だけのルールとしては機能しません。原則として対象ホストのルートで配信します。
www
の有無やサブドメインが違えば別ホストなので、それぞれの公開状況も確認が必要です。
robots.txt・noindex・X-Robots-Tagを混同しない
| 仕組み | 主な役割 | 確認場所 |
|---|---|---|
| robots.txt | クローラーの巡回範囲を案内 | ドメイン直下のrobots.txt |
| meta robots | HTMLページのインデックス可否を示す | ページのhead内 |
| X-Robots-Tag | HTTPヘッダーでインデックス指示 | レスポンスヘッダー |
| WordPressの表示設定 | 検索エンジン抑制の設定を生成 | 設定→表示設定 |
robots.txtで許可されていても、ページ側にnoindexがあれば検索登録されないことがあります。反対に、robots.txtで拒否しただけでは、外部リンクからURLだけが検索結果へ残る可能性があります。検索に出したい記事は、クロール可能、200応答、index可能、内部リンクありの4点をまとめて見ます。
変更後は代表URLを4種類確認する
トップページだけが開けても合格ではありません。トップ、カテゴリ、個別記事、画像の代表URLを選び、それぞれが意図せず拒否されていないかを確認します。会員ページや管理画面など、拒否したいURLも1つ選んでルールが一致するか見ます。ワイルドカードや末尾記号を使う場合は、似た公開URLまで巻き込まないか慎重に確認してください。
Search ConsoleのURL検査では、公開URLがGoogleに取得可能か、インデックス登録を妨げる指示がないかを確認できます。ただし、robots.txtを書き換えた直後に検索順位が上がる保証はありません。変更日時、変更前の内容、対象URLを記録し、クロール状況を数日から数週間の単位で観察します。
障害時にすぐ戻せる変更方法
編集前の全文を日付付きで保存し、一度に複数のルールを変えません。1つ変更したらrobots.txtを再取得し、主要ページが開くことを確認します。全サイトを止める
Disallow: /
は、公開サイトでは特に危険です。準備中サイトから公開へ切り替えたときの消し忘れも確認してください。
ルールを戻しても検索エンジン側の再取得には時間差があります。慌てて別の設定を重ねると原因が分からなくなるため、サーバーの応答、公開HTML、Search Consoleの順に事実を分けて記録します。
トップと記事は拒否されていませんでした。
管理画面だけが対象みたいで、少しほっとしています。
管理画面だけなら、ひとまず安心だね。
サイトマップにも記事があれば、今日はそれ以上触らなくて大丈夫だよ。
サイトマップにも記事がありました!
全部理解できたとは言えないけど、怖くて触れない状態からは一歩進めた気がします。
成功したと判断するチェック
公開robots.txtが200で意図したテキストを返し、サイト全体のDisallowがなく、Sitemap URLが開き、主要ページに意図しないnoindexがない状態です。
- 公開robots.txtを読んだ
- 表示設定を確認した
- 全体Disallowがない
- サイトマップが200
- 主要ページのrobots metaを確認した
複数サイトの技術設定をまとめて管理したい場合
robots.txtの編集だけでサーバーを変える必要はありません。複数のWordPressサイトを運営し、ルートファイルや高速化設定も含めて管理環境を見直す人に限って比較候補になります。
広告・PRを含みます。料金・特典は公式ページで最新条件をご確認ください。
よくある質問
Disallowすれば検索結果から消えますか?
必ずしも消えません。インデックス制御にはnoindexや認証などを使います。
robots.txtが見当たりません
WordPressは仮想的に応答する場合があります。公開URLを直接確認します。
管理画面を全部許可してよいですか?
認証は別にありますが、不要な巡回を避けるため標準的な制御を維持します。
まとめ:robots.txtは公開応答を見て必要最小限にする
公開robots.txt、表示設定、サイトマップを確認し、全体を止めるDisallowを避けます。巡回制御とnoindexを分け、変更後の公開応答まで確認します。
現在のサーバーでrobots.txtを正しく配信でき、検索設定も正常な人は、今回の操作が完了した時点で新しい契約を検討する必要はありません。新規サイトや運用環境全体を見直す場合だけ、条件を比較してください。
シンレンタルサーバーの公式情報を確認する