WordPress

WordPress の robots.txt に関する処理はどうなっているのか?

投稿日:2016年7月5日 更新日:

WordPressでの robots.txt に関する処理を調べてみました。

少しネットで調べてみると「robots.txt を自分で作成してルートディレクトリに置いておけば、それが使われるし、なければ WordPress が動的に生成して返してくれる」という情報が得られるわけですが、実際どういう挙動になっているのか分からないと不安だという私のような人のために調査した結果を書いておきます。

1. 今回調べた環境

  • WordPress 4.5.3–ja
  • Apache

2. 処理の流れ

  1. ブラウザから robots.txt へのリクエストがやってくる。

  2. robots.txt があればそれにアクセスさせて終わり。なければ、index.php にアクセスさせる。

    • 処理が書いてあるファイル: .htaccess (mod_rewriteを利用している)
  3. robots.txt へのアクセスであれば、クエリ変数 “robots” をセットする(値は1)。
  4. robots.txt へのアクセスである場合、do_action( 'do_robots' ) を実行する。
    • robots.txt へのアクセスであるかどうかの判定に、クエリ変数 “robots” が使用される。
    • 処理が書いてあるファイル : wp-includes/template-loader.php
  5. do_robots()関数が実行される
    • バーチャルな robots.txt の内容をブラウザへ出力する。
    • 管理サイトの[設定] – [表示設定] で、「サイトをクローラに公開する」にチェックを入れていない場合は、おおそよ以下の内容を生成して出力する。(全てのクローラに対して、全てのページを公開しない)
    User-agent: *
    Disallow: /
    
    • チェックが入っている場合(パスは設定によって変わります)(/wp-admin/ は公開しないが、/wp-admin/admin-ajax.php は公開する)
    User-agent: *
    Disallow: /wp-admin/
    Allow: /wp-admin/admin-ajax.php
    

3. あとがき

他のCMSはよく知らないんですが、シンプルでよい仕組みだと思います。

📂-WordPress
-

執筆者:labo


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

WordPress

WP Cerber Security で「jQuery is not defined」エラーが発生した場合の対処法

WordPress のプラグイン「WP Cerber Security」で「Uncaught ReferenceError: jQuery is not defined」というエラーが発生した場合の対処法を紹介します。

WordPress の Attitude テーマに日本語翻訳ファイルを使用する(子テーマ利用)

WordPress の Attitude テーマに日本語翻訳ファイルを追加する方法です。 子テーマを利用していることを前提としており、子テーマのディレクトリ側に翻訳ファイルを追加します。 目次前置き( …

WordPress

WordPress プラグイン開発における多言語対応(gettextを利用する場合)

目次1. はじめに2. 想定している開発環境3. gettext のインストール4. 多言語対応の作業1. プログラム中の翻訳文字列を使用する箇所で、専用の関数を使うようにします。2. 翻訳ファイルを …

WordPress

【WordPress】特定の画像には Easy FancyBox を適用させない方法

目次1. WordPress の Easy FancyBox プラグインについて問題点2. 特定の画像リンクで、Easy FancyBox を適用させない方法3. デモ 1. WordPress の …

WordPress

外部サイトに同じ記事を載せるので、WordPress の canonical リンク要素を書き換える

外部サイトに同じ記事を載せるので、WordPress の canonical リンク要素を書き換える方法を紹介します。