WordPress の robots.txt:デフォルトのルール、編集、安全な例
WordPress の robots.txt
WordPress の robots.txt:デフォルトのルールと安全な例 | We.Inc
WordPress が仮想の robots.txt を生成する仕組み、コアが出力するデフォルトの行、実ファイルやフィルターで置き換える方法を、安全なファイルビルダー付きで解説します。
WordPress には、デフォルトではディスク上に robots.txt ファイルがありません。/robots.txt がリクエストされると、コアがその場で生成します:User-agent: *、Disallow: /wp-admin/、Allow: /wp-admin/admin-ajax.php、そしてバージョン5.5以降は公開サイトで Sitemap の行が加わります。サイトのルートに実際の robots.txt をアップロードすると、この仮想版は置き換えられます。
WordPress コアが /robots.txt に出力する内容
- User-agent: *
- do_robots()
- ルールをすべてのクローラーに適用する
- Disallow: /wp-admin/
- do_robots()、admin_url() のパス
- クローラーを管理画面に入れない
- Allow: /wp-admin/admin-ajax.php
- do_robots()
- テーマやプラグインが公開ページからこのファイルを呼び出す
- Sitemap: .../wp-sitemap.xml
- WP_Sitemaps::add_robots()(5.5以降)
- クローラーにコアのサイトマップインデックスを示す。公開サイトのみ
デフォルトのファイルはコードで生成されるため、FTP クライアントやホスティングのファイルマネージャーでは見つかりません。これに戸惑うサイト運営者は少なくありません。変更する方法は3つあります。実ファイルをアップロードする、SEO プラグインに編集させる、コードに小さなフィルターを追加する、のいずれかです。下のジェネレーターで安全なバージョンを作りましょう。
- ブラウザーで yoursite.com/robots.txt を開き、現在配信されている内容を確認します。
- ビルダーでサイトに合ったオプションを選び、サイトマップのアドレスを入力します。
- 下のテストパスを確認します。CSS、JavaScript、アップロードファイルはすべて許可と表示されるはずです。
- 結果を robots.txt として wp-config.php があるフォルダーに保存するか、SEO プラグインのエディターに貼り付けます。
- /wp-content/ や /wp-includes/ は決してブロックしないでください。テーマのスタイルシート、スクリプト、画像がそこにあり、Google が訪問者と同じようにページを見るために必要です。
- 独自のサイトマップを生成する SEO プラグインを使っている場合は、コアのものではなくそのサイトマップのアドレスをファイルに書きましょう。
- 実ファイルは、仮想ファイルを通じて動作するプラグインの編集も含め、すべてを上書きします。プラグインのエディターを使う前に、以前アップロードしたファイルは削除しましょう。
- robots.txt で非公開ページを隠そうとしないでください。このファイルは公開されており、隠したかったパスをそのまま列挙することになります。
よくある質問
WordPress の robots.txt ファイルはどこにありますか?
通常はどこにもありません。/robots.txt がリクエストされるたびに、do_robots 関数がレスポンスを書き出します。編集できるファイルが存在するのは、あなたかプラグインがルートフォルダーに実際の robots.txt をアップロードした場合だけです。
「検索エンジンがサイトをインデックスしないようにする」は robots.txt を変更しますか?
WordPress 5.3以降は変更しません。表示設定の記事によると、このオプションは現在、各ページの head に noindex,nofollow の robots メタタグを追加します。5.2までは robots.txt が Disallow: / を返すようになっていました。
プラグインなしで robots.txt を編集するにはどうすればよいですか?
robots.txt という名前のプレーンテキストファイルをサイトのルートにアップロードするか、小さなプラグインや子テーマで robots_txt フィルターにフックします。フィルターは生成されたテキストと、サイトが公開されているかを示すフラグを受け取ります。
robots.txt の内容がプラグインの設定と違うのはなぜですか?
表示設定の記事によると、組み込みの動作が機能するのは、WordPress がサイトのルートにインストールされ、robots.txt が存在しない場合だけです。物理ファイル、ホスト側のルール、キャッシュ層が別の内容を配信していることがあります。
そもそも /wp-admin/ はブロックすべきですか?
デフォルトですでにブロックされており、それで問題ありません。管理画面には検索順位を得る必要のある内容がないからです。admin-ajax.php の Allow 行は残し、それを呼び出す公開機能がブロックされないようにしましょう。
仮想ファイルの生成方法
- WordPress は /robots.txt を do_robots 関数にルーティングします。この関数は出力を User-agent: * で始め、管理フォルダーの Disallow 行と admin-ajax.php の Allow 行を加え、結果を robots_txt フィルターに通します。WP_Sitemaps クラスは同じフィルターを使い、サイトが公開されている場合に Sitemap の行を追加します。
- プラグインも同じフィルターにフックします。そのため SEO プラグインは、ファイルを作らずに robots.txt のエディターを表示できます。
ショップやブログで追加する価値のあるルール
- サイト内検索の結果ページ(?s= を含むアドレス)は中身の薄いページを無限に生み出すことがあるため、多くのサイトがブロックしています。WooCommerce のストアでは、検索結果に表示する必要のないカート、チェックアウト、アカウントのページをブロックすることがよくあります。
- リストは短く保ちましょう。行を増やすたびに重要なものを誤ってブロックする可能性が生まれ、robots.txt はプライバシーを守るツールではありません。
robots_txt フィルターで仮想ファイルを編集する
これを小さなカスタムプラグインか、子テーマの functions.php に追加します。ルートに実際の robots.txt がない場合にだけ実行されます。
ルールと独自のサイトマップを追加する
2つ目の引数でサイトが公開されているかが分かるので、ステージング環境のコピーには手を加えずに済みます。
公開サイトでのデフォルトの内容
ドメインのルートにインストールされ、コアのサイトマップが有効なサイトで、コアが生成したものです。
WordPress の robots.txt ビルダー
サイト内検索の結果をブロック
WooCommerce のカート、チェックアウト、アカウントをブロック
これはステージング環境のコピー(すべてブロック)
サイトマップのアドレス
あなたの robots.txt
コピー
コピーしました
このファイルに対する Googlebot のテスト
ブラウザー内で作成されます。何もアップロードや取得はされません。
無料で始める · クレジットカード不要
関連: ガイド|Webマーケティングと集客を学ぶ
製品
ご利用いただける方
機能
リソース
会社情報
サイトマップを見る