WordPressのサイトが、なんとなく重くなってきた。画像を圧縮したり、キャッシュを入れたりしても、管理画面の動きまで遅い。そんなときに見直したいのが「autoload(自動読み込み)」です。

autoloadは、プラグインやテーマの設定をページの表示のたびにまとめて読み込む仕組みです。長く運営しているサイトほど、この中身が知らないうちに膨らんでいることがあります。

本記事では、autoloadの仕組みと、サイトが重くなる理由、確認方法、減らし方を、TCDの検証サイトで実際に確認した結果とあわせて解説します。


WordPressで記事販売ができる「YOMERU」
記事を、そのまま収益に。
WordPressサイトで記事の有料販売ができる
無料のプラグイン「YOMERU」。

autoload(自動読み込み)とは

WordPressは、サイトの設定やプラグイン・テーマの設定を、データベースの「wp_options」という表に保存しています。

このうち「autoload」が有効になっている設定は、ページを表示するたびに、まとめてメモリに読み込まれます。よく使う設定をまとめて読み込んでおくことで、そのつどデータベースに問い合わせる手間を省くための仕組みです。

autoloadが増えるとサイトが重くなる理由

便利な仕組みですが、autoloadの設定が増えすぎると、ページを表示するたびに大量のデータを読み込むことになり、表示や管理画面の動きが遅くなります。

autoloadが膨らむ主な原因は、次のようなものです。

  • プラグインが大きなデータを、autoloadを有効にしたまま保存している
  • 削除したプラグインの設定が、データベースに残ったままになっている
  • 一時的なデータ(トランジェント)が溜まっている

とくに、プラグインを削除しても設定は自動では消えないことが多いため、長く運営しているサイトほど注意が必要です。

WordPress 6.6からの変更点

WordPress 6.6から、autoloadの扱いが変わりました。

  • 約150KBを超える大きな設定は、自動ではautoloadされなくなった
  • autoloadの値が「yes/no」から「on/off/auto」などに変わった(「auto」はWordPressが判断する)
  • サイトヘルスで、autoloadの合計が800KBを超えると警告が表示されるようになった

ただし、6.6より前に保存された設定や、プラグインがautoloadを有効と明示した設定は、そのまま読み込まれます。

autoloadの量を確認する方法

サイトヘルスで確認する

管理画面の「ツール」→「サイトヘルス」で、autoloadの量を確認できます。TCDの検証サイトでは、次のように表示されました。

サイトヘルスの「自動読み込みオプションは許容範囲内」

194個・116KBで「許容範囲内」という結果でした。合計が800KBを超えると「自動読み込みオプションがパフォーマンスに影響を与える可能性があります」という警告が表示されるので、その場合は中身を見直しましょう。サイトヘルスの使い方は、こちらの記事も参考にしてください。

プラグイン「AAA Option Optimizer」で中身を確認する

どの設定がどれくらいの大きさなのかを確認するなら、プラグイン「AAA Option Optimizer」が便利です。

管理画面から「AAA Option Optimizer」を検索してインストールするか、下のボタンからもダウンロード可能です。プラグインファイルを wp-content/pluginsディレクトリにアップした後、管理画面から有効化してください。

AAA Option Optimizer

有効化すると「ツール」→「AAA Option Optimizer」に画面が追加されます。「All options」タブで「Get all options」をクリックし、「Size (KB)」で並べ替えると、大きい設定から順に確認できます。

AAA Option Optimizerの「All options」画面

検証サイトで確認すると、いちばん大きいのは約207KBのRSSフィードの一時データでしたが、autoloadは「off」で、ページの表示のたびには読み込まれていませんでした。WordPress 6.6からの変更で、大きなデータが自動で外されていることがわかります。

データベースで直接確認する(上級者向け)

phpMyAdminなどでデータベースを直接確認できる場合は、次のSQLでautoloadの合計を確認できます。「wp_」の部分は、wp-config.phpの「$table_prefix」に合わせて書き換えてください。

SELECT COUNT(*) AS options, ROUND(SUM(LENGTH(option_value)) / 1024) AS kb
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto');

大きい順に20件を確認するSQLはこちらです。

SELECT option_name, ROUND(LENGTH(option_value) / 1024, 1) AS kb, autoload
FROM wp_options
WHERE autoload IN ('yes', 'on', 'auto-on', 'auto')
ORDER BY LENGTH(option_value) DESC
LIMIT 20;

autoloadを減らす方法

作業の前にバックアップを取る

データベースを直接変更する作業なので、必ず事前にデータベースのバックアップを取っておきましょう。バックアップの方法は、こちらの記事を参考にしてください。

使っていないプラグインの設定を見つける

大きな設定のなかに、すでに削除したプラグインの名前が付いたものがあれば、残骸の可能性があります。AAA Option Optimizerでは、「Source」の欄にどのプラグインやテーマの設定かが表示されます(判断できないものは「Unknown」)。

削除より「autoloadを外す」を優先する

不要そうな設定が見つかったら、まずは削除ではなく、autoloadを外すのがおすすめです。AAA Option Optimizerの「Remove autoload」を使うと、設定はデータベースに残したまま、ページの表示のたびには読み込まないようにできます。

もし必要な設定だった場合でも、使うときに読み込まれるだけなので、サイトが壊れる心配がほとんどありません。完全に不要だと確信できるものだけ「Delete」で削除しましょう。

プラグインやテーマを作る立場なら、WordPress 6.4から使える次の関数でautoloadを外すこともできます。

wp_set_option_autoload( 'オプション名', false );

WordPress本体とテーマの設定は触らない

「Source」が「WordPress」になっている設定は、WordPress本体が使うものです。また、TCDテーマの設定(dp_options など)は、テーマが毎回使うためautoloadされていて問題ありません。これらは変更しないようにしましょう。

AAA Option Optimizerを使うときの注意点

  • インストール直後は「未使用」の判定があてにならない:使われた設定を記録しながら判定する仕組みのため、入れたばかりのときはWordPress本体の設定まで「Unused, but autoloaded(未使用)」と表示される。数日使うか、サイトと管理画面のページをひととおり表示してから判断する
  • 更新状況を確認する:検証時点で、最新のWordPressでは「未検証」と表示され、最終更新から時間がたっていた。使い終わったら無効化・削除しておくと安心

まとめ

autoloadは、設定をページの表示のたびにまとめて読み込む仕組みです。

  • autoloadが増えすぎると、サイトや管理画面が重くなる
  • WordPress 6.6から、大きな設定は自動でautoloadされなくなり、サイトヘルスで量を確認できるようになった
  • 中身はAAA Option Optimizerで、大きい順に確認できる
  • 減らすときは、バックアップを取ってから、削除より「autoloadを外す」を優先する

サイトが重いと感じたら、画像やキャッシュとあわせて、一度autoloadの量も確認してみてください。

世界最高品質のデザインの
WordPressテーマ集
WordPressテーマ「ISSUE」
WordPressテーマ「ISSUE」
人材不足を解決する求人採用サイトを。
WordPressテーマ「SEEED」
WordPressテーマ「SEEED」
Webサービスを販売するLP型テーマ。
WordPressテーマ「GENESIS」
WordPressテーマ「GENESIS」
スタイリッシュな企業サイトの決定版。
WordPressテーマ「SOLARIS」
WordPressテーマ「SOLARIS」
一流の企業のための一流の企業サイトを。