WPMLのパフォーマンストリアージ – 管理画面の遅延、翻訳ダッシュボードのタイムアウト、フロントエンドのラグ
WPMLのパフォーマンスの問題(管理画面の遅延、フロントエンドの動作の重さ、翻訳ダッシュボードのタイムアウト)は、ほとんどの場合、いくつかの共通する要因のいずれかに起因します。問題がWPML自体にあると判断する前に、このページで確認すべき順序に沿ってこれらの要因を説明します。
-
遅延箇所の確認
- フロントエンドが遅く、管理画面は正常:ページ全体のキャッシュ設定、またはフロントエンドの負荷が高いプラグインが原因である可能性が高いです。
- 管理画面が遅く、フロントエンドは正常:
wp_optionsの自動読み込みの肥大化、管理画面専用の重いプラグイン、またはサーバーのスペック不足が原因である可能性が高いです。 - 翻訳ダッシュボードのみが遅い:ダッシュボードのクエリに含まれる投稿数が多く、PHPメモリまたは実行時間が不足している可能性が高いです。
- 翻訳の操作が遅い:翻訳サービスへの接続に問題がある可能性が高いです。WPMLサポートの通信ログを確認してください。
どのログがどの症状に対応しているかについては、ログを参照してください。
-
サーバーリソースの確認
WPMLサポートを開きます。上部の警告パネルでは、PHPメモリがWPMLの推奨する256MBを下回っている場合にフラグが表示されます。より大きなカタログを持つサイトでは、512MB以上が必要です。
その他のサーバーリソースに関する症状:
- データベースクエリが遅い。翻訳数が多い大規模なサイトでは、SSD搭載のデータベースサーバー、十分な
innodb_buffer_pool_size、およびwp_icl_translationsテーブルのインデックス(これらはWPMLによって追加されるため、手動での介入が必要になることはまれです)が効果的です。 - PHPの実行時間。
max_execution_timeが60秒未満でダッシュボードがタイムアウトする場合は、この値を増やしてください。 - CPU。共有ホスティングプランでは、CPUの制限が厳しいことがよくあります。制限がかけられていないかホスティングプロバイダーに確認してください。
- データベースクエリが遅い。翻訳数が多い大規模なサイトでは、SSD搭載のデータベースサーバー、十分な
-
オブジェクトキャッシュ
オブジェクトキャッシュがないWordPressでは、リクエストのたびにデータベースからWPMLの多くの設定を読み込みます。RedisまたはMemcachedをオブジェクトキャッシュとして追加してください(ほとんどのマネージドWordPressホスティングで提供されています。提供されていない場合は、Redis Object CacheまたはWP Redisプラグインで有効にできます)。
通常、これにより大幅な改善が見られます。以前はデータベースへのアクセスが必要だった設定が、メモリから提供されるようになります。
-
ページ全体のキャッシュ
ページ全体のキャッシュ(WP Rocket、W3 Total Cache、ホスティングプロバイダーのエッジキャッシュ)は、フロントエンドの速度を向上させる上で最も効果的です。
すでに導入しているにもかかわらずページの動作が遅く感じる場合は、キャッシュが言語ごとのURLを正しく処理しているか確認してください。WPMLのURL構造(ディレクトリの言語、サブドメインの言語、ドメインの言語のいずれか)では、キャッシュがURLごとに異なる必要があります。ほとんどのキャッシュはこれを自動的に行いますが、フランス語版が英語版のキャッシュから提供されていないか、あるいはその逆になっていないかを確認する価値はあります。
-
競合するプラグインまたは遅いプラグイン
サイトにはプラグインが蓄積されますが、よく作られているものもあればそうでないものもあります。遅いプラグインを見つけるには、次の手順に従います。
- Query Monitor(デバッグプラグイン)をインストールします。
- 動作が遅いページを再読み込みします。
- Queries by Componentを確認します。最も負荷の高いクエリを実行しているプラグインが疑われます。
プラグインが原因である場合は、それを置き換えるか、遅延の原因となっている機能を無効にしてください。
-
サイトではなく翻訳サービスの遅延
翻訳ジョブの進行が遅く感じられる一方で、サイト自体は正常に動作している場合、ボトルネックはサイトとWPMLの翻訳インフラストラクチャの間にあります。
WPMLサポート通信ログを確認してください。ログには、すべてのAPI呼び出しのレイテンシが表示されます。個々の呼び出しに何秒もかかっている場合、問題はサイトではなく接続(ネットワークパス、DNS、またはホスティングプロバイダーの送信制限)にあります。代わりにWPML独自のキャッシュが原因である場合、安全なトラブルシューティングツールにはWPMLのキャッシュをクリアが含まれています。パフォーマンスの調査にサポートの確認が必要な場合は、サポートとのデバッグ情報の共有を通じて、見つけた情報をパッケージ化してください。