【WordPress】robots.txt に追記したい場合

最終更新日: 公開日: 2020年03月

WordPress では robots.txt は自動で生成されている.

弊社のサイトのように通常のページとワードプレスを融合したサイトを作成している場合にサイトマップをどう作るかという問題がある.
いや,検索エンジンはページを勝手に見つけて持っていくので,サイトマップはそもそもなくても問題ないともいえるが,Google XML Sitemaps というプラグインがあるので,WordPress で生成しているブログなどはこれを使えばよい.

問題はそれ以外のファイルについてである.
以前にローカルファイルをまとめて,xml でサイトマップを生成するスクリプトを作っていたので,それを使うことにする.
Google や Bing などに知らせるのはサイトマップを複数登録すればよい.

問題は robots.txt である.
Google XML Sitemaps は robots.txt に
Sitemap: https://www.rectus.co.jp/sitemap.xml
などと追加してくれるのでいいのだが,それでは自分で作ったサイトマップはどう追加するのか?
または WordPress を使っている場合に robots.txt にさらに記述を追加したい場合はどうするのか?

「外観」->「テーマエディター」
で functions.php を編集する.
仮に /sitemap.html というサイトマップを作った場合は以下の記述を functions.php に追加すればよい.

add_filter('robots_txt', 'add_robots_txt');
function add_robots_txt($output) {
  $public = get_option('blog_public');
  if ($public != 0) { // 検索エンジンにインデックスされる
    $site_url = home_url();
    $path = !empty($site_url) ? $site_url : '';
    $output .= "\nSitemap: $path/sitemap.html";
  };
  return $output;
};

get_option('blog_public') は,設定→表示設定→検索エンジンでの表示 で
検索エンジンがサイトをインデックスしないようにする
にチェックが入っていない時に 1 になる変数.

do_robotstxt アクションフックが先に呼ばれるので,他にこのアクションフックが呼ばれて何かされるようなプラグインや関数がある場合は参考URLにあるように do_robotstxt に add_action したほうがよいが,余計なものを入れていない場合,上記だけで大丈夫.

参考URL)
関数 do_robots()
Re: WordPressで自動生成されるrobots.txt
オプション設定リファレンスの blog_public

ありがとうございました.

WordPress で robots.txt に追記したい場合のFAQ

プラグインを使わない場合,どこを変更しますか?
functions.php で robots_txt に add_filter します.サンプルコードを載せています.
 

Contact

ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.

 
   
contact
Pagetop