WordPressで構築されたウェブサイトやウェブサイトの一部にWordPressを使っている場合、裏側では頻繁にアクセスしているものがあったりします。
では、その正体は何なのでしょうか?

皆さん、こんにちは。
業務改善を行うIT・業務コンサルタント、高橋です。
さて、ウェブサイトの構築でよく使われるWordPressですが、パフォーマンス低下が気になる場合はこれを試してみるのも良いかもしれません。
WordPressへの頻繁なアクセスとは
WordPressには、『メール投稿』、『予約投稿』、『E-mail通知』などのタスクスケジュール実行機能において『wp-cron.php』というものが使われています。
これは、レンタルサーバなどでも使われているUNIX系のスケジュール実行プログラムと似たような機能で、基本的にはWordPressサイトにアクセスがある度に『wp-cron.php』が呼び出されてしまいます。
そのため、アクセスの多いウェブサイトにおいてはパフォーマンス低下などの問題が発生する可能性をもっています。
そのような場合は『wp-cron.php』を無効にし、サーバの『cronジョブ』にて一定間隔でそれを実行させることができます。
wp-cron.phpの無効化とcronジョブでの実行
まず、WordPressがインストールされているルートディレクトリにある『wp-config.php』に以下の記述を加えます。
define(‘DISABLE_WP_CRON’, true);
これ、あまり最後の方で記述すると機能してくれませんので、データベース項目の後ろあたりに追加するのが良いです。
/** データベースの照合順序 (ほとんどの場合変更する必要はありません) */
define(‘DB_COLLATE’, ”);
define(‘DISABLE_WP_CRON’, true);
次に『cronジョブ』の設定ですが、例えば1時間に1回『wp-cron.php』を実行するようにしておく場合は以下のような感じです。
0 */1 * * * curl https://www.example.com/wordpress/wp-cron.php > /dev/null 2>&1
先頭の0は分、*/1は時間(1時間ごと)、後ろ3つの*は日、月、曜日で、3つとも*にすることで毎日という意味になります。
また、複数実行したい場合などはシェルスクリプトを設置してcronジョブに登録しておくと良いです。
#!/bin/bash
SHELL=/bin/bashcurl https://www.example1.com/wordpress/wp-cron.php > /dev/null 2>&1
curl https://www.example2.com/wordpress/wp-cron.php > /dev/null 2>&1exit 0
ちなみに、WordPressのデベロッパー向けのページでは『curl』の部分に『wget』と記載されていますが、サーバ上にファイルがダウンロードされてしまうため、個人的にはお勧めではありません。
その他、アクセスログに記録されなくても良いのであれば『php』を直接実行する形で記述しても良いかと思います。