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

WordPress のプラグイン Autoptimize についての覚書

WordPress のプラグイン Autoptimize についての覚書です。

WordPress

WordPressのマルチサイトでサイトを判別するPHPコード

WordPress では マルチサイトといって 1つのWordPress内に複数のサイトを作成する機能があります。(詳しくは、ネットワークの作成 – WordPress Codex 日本語 …

WordPress

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

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

WordPress

WSL + Homestead で WordPress のプラグイン開発環境を作る

目次1. はじめに2. 環境3. 作業1. 今回 WordPress をインストールするディレクトリを用意します2. Homestead に Webアプリケーションの設定を追加します3. Window …

WordPress

WordPress 5.4 以降で記事にリンクを貼る際のオプション

WordPress 5.4 以降で、記事にリンクを貼る際のオプションについて説明します。