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

では、その正体は何なのでしょうか?

WordPress wp-cron.php

皆さん、こんにちは。

業務改善を行う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/bash

curl https://www.example1.com/wordpress/wp-cron.php > /dev/null 2>&1
curl https://www.example2.com/wordpress/wp-cron.php > /dev/null 2>&1

exit 0

ちなみに、WordPressのデベロッパー向けのページでは『curl』の部分に『wget』と記載されていますが、サーバ上にファイルがダウンロードされてしまうため、個人的にはお勧めではありません。

その他、アクセスログに記録されなくても良いのであれば『php』を直接実行する形で記述しても良いかと思います。

Ads

この記事を書いた人

  • 業務コンサルタント高橋晋吾
  • 1968年生 愛知県名古屋市出身 会計・給与・販売購買在庫・税金系などの業務システムを製造・販売する某上場企業の出身で、会計・IT・WEBを中心とした業務改善などを行う業務コンサルタント
  • 中小企業庁『ミラサポ』登録専門家/あいち産業振興機構登録専門家/名古屋産業振興公社登録専門家
  • (Publisher:TRILOGYFORCE.COM)

この記事をシェアする

  • Facebookにシェア
  • はてなブックマークにシェア
  • LINEにシェア

関連記事

お問い合わせ

お悩み・問題・課題を今すぐご相談ください。お問い合わせはこちら

ページのトップへ戻る