「サーバー移転したら、サイトが表示されなくなった…」よくある失敗を避ける完全ガイド
「新しいサーバーに移転したのに、サイトが表示されない…」
「移転後、画像やCSSが読み込まれず、デザインが崩れている…」
「データベースエラーが出て、記事が表示されない…」
WordPressのサーバー移転は、多くのサイト管理者にとって最も神経を使う作業の一つですが、その80%以上が適切な準備と手順さえ踏んでいれば回避できた問題でした。
サーバー移転に失敗すると、数時間から数日のダウンタイムが発生し、特にビジネスサイトでは売上機会の損失、SEOランキングの低下、顧客の信頼喪失など、深刻な影響が出ることもあります。
この記事では、サーバー移転の失敗を防ぐための完全チェックリストと、万が一の際のトラブルシューティングを詳しく解説します。
サーバー移転の計画:失敗しない準備チェックリスト
サーバー移転の成功は、準備段階で決まると言っても過言ではありません。以下の項目を事前にチェックしておきましょう。
サイト現状分析チェックリスト
チェック項目 | 確認内容 | 対応方針 |
---|---|---|
現サーバー環境 | PHP・MySQL・Apacheバージョン | 新サーバーも同等以上のバージョンに |
サイト規模 | ファイル総数・データベース容量 | 十分な容量のサーバーを選択 |
カスタム設定 | .htaccess・php.ini設定 | 新サーバーでも同様の設定が可能か確認 |
外部連携 | API連携やCDN設定 | IPアドレス制限がある場合は事前対応 |
SSL証明書 | 現在のSSL種類と期限 | 新サーバーでのSSL取得方法を確認 |
メールアカウント | 現在のメール設定・アカウント数 | メール移行計画も作成 |
緊急度と適切なタイミング選定
サーバー移転のタイミングは慎重に選ぶ必要があります。
- □ サイトのアクセス統計を確認し、最もアクセスが少ない時間帯を特定
- □ 特別なキャンペーン期間や重要なイベント期間は避ける
- □ 移転作業に集中できる十分な時間を確保(予想時間の2倍を見積もる)
- □ 何か問題が発生した場合のバックアッププランを準備
業種別の推奨移転タイミング: ECサイトは注文が少ない深夜(午前1-4時)、企業サイトは休日の早朝、ブログなどのメディアサイトは週末の早朝がお勧めです。
必要なツールと情報の準備
移転作業をスムーズに行うために、以下のツールと情報を事前に準備しましょう。
- アクセス情報:現サーバーと新サーバーの両方のFTP・データベース接続情報
- バックアップツール:UpdraftPlus、BackWPupなどのプラグイン、またはホスティング提供のバックアップ機能
- DNSレコード情報:現在のDNS設定の記録(A、CNAME、MX、TXTなど全てのレコード)
- 移行プラグイン:Duplicator、All-in-One WP Migration、WP Migrate DBなど
- FTPクライアント:FileZilla、CyberDuckなど
- テキストエディタ:設定ファイルの編集用(VSCode、Sublime Text、Notepad++など)
プロのヒント: 複雑なサイトの場合、専用のサーバー移転ツール(Duplicatorなど)を使うと、手動での作業量を大幅に削減できます。特に、プラグイン・テーマの設定やカスタマイズが多いサイトには有効です。
サーバー移転の失敗事例と回避策
典型的なサーバー移転失敗のケースを紹介し、その回避策を解説します。
事例1:データベース接続エラーによるサイト表示不能
発生状況:
あるコーポレートサイトのサーバー移転後、「データベースに接続できません」というエラーが表示され、サイトにアクセスできなくなりました。
原因:
wp-config.phpファイル内のデータベース接続情報(DB_NAME、DB_USER、DB_PASSWORD、DB_HOST)が、新サーバーの設定と一致していませんでした。特に、新サーバーでは「localhost」ではなく「127.0.0.1」や専用のIPアドレスを使用する必要がありました。
回避策:
- 新サーバーの正確なデータベース情報を事前に確認
- wp-config.phpを新環境用に編集(DB名、ユーザー名、パスワード、ホスト)
- テスト接続で設定を事前検証
データベース接続設定の例:
1 2 3 4 5 6 |
// 新サーバー用に変更 define('DB_NAME', '新サーバーのDB名'); define('DB_USER', '新サーバーのユーザー名'); define('DB_PASSWORD', '新サーバーのパスワード'); define('DB_HOST', '新サーバーのホスト'); // 'localhost'とは限らない |
事例2:パーマリンク構造の崩壊とページの404エラー
発生状況:
ブログサイトの移転後、トップページは表示されるものの、個別記事や固定ページにアクセスすると404エラーが表示されるようになりました。
原因:
新サーバーで.htaccessファイルが転送されなかった、または上書きされた結果、WordPressのパーマリンク設定が機能しなくなりました。また、新サーバーでmod_rewriteモジュールが有効になっていないケースもありました。
回避策:
- 新サーバーに.htaccessファイルが正しく転送されたか確認
- 管理画面「設定 → パーマリンク」を開き、設定を保存して.htaccessを再生成
- 新サーバーでApacheのmod_rewriteモジュールが有効になっているか確認
標準的なWordPress .htaccessファイル:
1 2 3 4 5 6 7 8 9 10 11 |
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress |
事例3:CSS・画像が読み込まれずサイトデザインが崩壊
発生状況:
サーバー移転後、サイト構造は表示されるものの、CSSやJavaScript、画像が読み込まれず、デザインが完全に崩れた状態になりました。
原因:
WordPress内のサイトURL設定が旧サーバーのURLのままで、新しいURLに更新されていなかったため、リソースのパスが絶対パスで指定されていた場合に読み込みエラーが発生しました。また、DNSの伝播が完了していないケースもありました。
回避策:
- 新サーバーでのサイトURLとホームURLを正しく設定
- データベース内の古いURLを新URLに一括置換(Search-Replace-DB等のツールを使用)
- テーマやプラグインでハードコードされたURLがないか確認
- DNSの伝播が完了するまで、旧サーバーも維持
WordPress URLの更新SQL:
(※直接SQLを実行する前にバックアップを取ることを強く推奨します)
1 2 3 |
UPDATE wp_options SET option_value = 'https://新サイトURL.com' WHERE option_name = 'siteurl'; UPDATE wp_options SET option_value = 'https://新サイトURL.com' WHERE option_name = 'home'; |
事例4:パーミッションとオーナーシップの問題
発生状況:
サーバー移転後、サイトは表示されるものの、メディアのアップロードや、プラグインのインストールがエラーで失敗するようになりました。
原因:
新サーバーでのファイルパーミッション(権限設定)とオーナーシップ(所有者設定)が適切でなかったため、WordPressがファイルの書き込み操作を行えなくなりました。
回避策:
- WordPress推奨のパーミッション設定を適用(ディレクトリは755、ファイルは644)
- wp-content/uploadsディレクトリのパーミッションを特に確認
- 新サーバーのPHPプロセスユーザーとファイルオーナーが一致するように設定
一般的なパーミッション設定コマンド:
1 2 3 4 5 6 7 8 9 |
// ディレクトリのパーミッションを755に設定 find /path/to/wordpress/ -type d -exec chmod 755 {} \; // ファイルのパーミッションを644に設定 find /path/to/wordpress/ -type f -exec chmod 644 {} \; // wp-contentのオーナーシップを適切なユーザーに設定(例:www-data) chown -R www-data:www-data /path/to/wordpress/wp-content/ |
事例5:SSLの設定ミスによる混在コンテンツエラー
発生状況:
SSL対応したサーバーに移転したところ、ブラウザで「安全でない混在コンテンツ」の警告が表示され、一部のリソースが読み込まれない状態になりました。
原因:
データベース内のURLが旧サーバーの「http://」で始まるURLのまま残っており、新サーバーの「https://」と混在していました。また、テーマやプラグインのコード内にハードコードされたhttpのURLが存在していました。
回避策:
- Better Search Replaceのようなプラグインで、httpからhttpsへのURLを一括置換
- wp-config.phpに強制HTTPS設定を追加
- テーマやプラグインのコードを確認し、ハードコードされたURLがあれば修正
wp-config.phpでのHTTPS強制設定:
1 2 3 4 5 6 7 8 |
// HTTPSを強制する設定 define('FORCE_SSL_ADMIN', true); define('FORCE_SSL_LOGIN', true); // WordPressでURLを処理する際、常にhttpsを使用 if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false) $_SERVER['HTTPS'] = 'on'; |
サーバー移転の安全な実行ステップ
これから紹介する手順に従えば、WordPress サイトを安全に新サーバーに移行することができます。
ステップ1:バックアップの実施
万が一の場合に備えて、まず完全なバックアップを取得します。
バックアップ項目 | バックアップ方法 | 保存場所 |
---|---|---|
WordPress ファイル | FTPクライアントで全ファイルをダウンロード または バックアッププラグイン(UpdraftPlusなど) |
ローカルPC + クラウドストレージ |
データベース | phpMyAdminからエクスポート または コマンドラインからmysqldump |
ローカルPC + クラウドストレージ |
設定ファイル | wp-config.php、.htaccess、robots.txtなど 個別に保存 |
テキストエディタで 別途保存 |
プロのヒント: バックアップファイルに日付とサイト名を含めた命名規則を使うと、後で識別しやすくなります。例:「サイト名_YYYYMMDD_完全バックアップ.zip」
ステップ2:新サーバーの準備と設定
新サーバー環境を最適な状態に整えます。
- 基本環境の確認:
- PHP バージョン:WordPress推奨の最新バージョン(7.4以上)を設定
- MySQL/MariaDBバージョン:5.6以上を推奨
- メモリ制限:最低128MB以上(推奨256MB)
- 必要モジュールの有効化:
- mod_rewrite(URLリライト用)
- mod_ssl(HTTPS用)
- PHP拡張モジュール:GD/ImageMagick、XML、Curl、MBString
- データベース作成:
- 新サーバーで新しいデータベース、ユーザー、パスワードを作成
- ユーザーに適切な権限を付与
- 文字セットをutf8mb4、照合順序をutf8mb4_unicode_ciに設定
PHP最適化設定(php.ini):
1 2 3 4 5 6 |
memory_limit = 256M max_execution_time = 300 post_max_size = 64M upload_max_filesize = 64M max_input_vars = 3000 |
ステップ3:ファイルとデータベースの転送
サイトのコンテンツを新サーバーへ移行します。
方法A:専用の移行プラグインを使用(推奨)
- Duplicatorプラグイン:
- 現サイトにプラグインをインストールして有効化
- 「パッケージ」を作成(サイトファイル+データベースを含む)
- インストーラーと作成されたパッケージを新サーバーにアップロード
- ブラウザでインストーラーURLにアクセスし、ウィザードに従って復元
- All-in-One WP Migration:
- 現サイトにプラグインをインストールして有効化
- エクスポート機能でサイト全体をファイルとして保存
- 新サーバーに同プラグインをインストール
- エクスポートしたファイルをインポート
方法B:手動転送(上級者向け)
- WordPress ファイルの転送:
- FTPを使用して全ファイルを新サーバーにアップロード
- wp-config.phpは転送せず、後で新しく作成
- データベースのインポート:
- phpMyAdminまたはコマンドラインを使用
- URL置換(旧URL→新URL)を実施
- wp-config.phpの作成:
- サンプルファイル(wp-config-sample.php)をベースに作成
- 新サーバーのDB情報を設定
- セキュリティキー(Authentication Unique Keys and Salts)を新規生成
データベース内のURL置換SQL:
1 2 3 4 5 6 |
-- 注意: 必ずバックアップを取った上で実行してください UPDATE wp_options SET option_value = replace(option_value, 'http://古いドメイン.com', 'https://新しいドメイン.com') WHERE option_name = 'home' OR option_name = 'siteurl'; UPDATE wp_posts SET guid = replace(guid, 'http://古いドメイン.com', 'https://新しいドメイン.com'); UPDATE wp_posts SET post_content = replace(post_content, 'http://古いドメイン.com', 'https://新しいドメイン.com'); UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://古いドメイン.com', 'https://新しいドメイン.com'); |
ステップ4:DNS設定の変更(切り替え準備)
サイトが新サーバーで正常に動作することを確認した後、DNS設定を変更します。
- TTL値の事前調整:
- 移転の24-48時間前に、DNSのTTL(Time to Live)を短く設定(300秒程度)
- これにより、DNS変更後の伝播時間を短縮
- hosts ファイルでのテスト:
- DNS変更前に、ローカルhostsファイルを編集して新サーバーをテスト
- Windows: C:\Windows\System32\drivers\etc\hosts
- Mac/Linux: /etc/hosts
- 例: 「123.45.67.89 www.yoursite.com」
- 実際のDNS変更:
- ドメインレジストラまたはDNSサービスの管理画面にアクセス
- Aレコードを新サーバーのIPアドレスに変更
- 必要に応じてCNAME、MX、TXT、その他のレコードも更新
DNSレコードの主な種類と用途:
- A レコード:ドメインをIPアドレスに紐付け(最も重要)
- CNAME レコード:サブドメインを別のドメインに紐付け
- MX レコード:メールサーバーを指定
- TXT レコード:SPFなどのテキスト情報(メール認証など)
- AAAA レコード:IPv6アドレスの紐付け
ステップ5:最終確認と調整
DNS変更後、サイトが新サーバーで完全に機能していることを確認し、必要に応じて調整します。
確認項目 | チェックポイント | 対応方法 |
---|---|---|
基本機能の動作 | ・全ページ表示 ・画像/CSSの読み込み ・リンク切れがないか |
・問題箇所を特定 ・URLやパス設定を修正 |
フォーム機能 | ・問い合わせフォーム ・ユーザー登録 ・コメント投稿 |
・テスト送信を実施 ・メール設定を確認 |
パフォーマンス | ・読み込み速度 ・レスポンス時間 ・サーバー負荷 |
・キャッシュ設定 ・リソース最適化 |
SEO状態 | ・インデックス状況 ・canonical設定 ・リダイレクト |
・Search Consoleで確認 ・必要なリダイレクト設定 |
最終チェックリスト:
- 新サイトでGoogle Search Consoleの所有権を確認
- Analytics等のトラッキングコードが機能しているか確認
- 旧サーバーのバックアップを保持(最低2週間程度)
- サーバー移行完了を関係者に通知
サーバー移転失敗時の緊急対応策
万が一、サーバー移転に問題が発生した場合の緊急対応策を紹介します。
症状別トラブルシューティング
1. サイトが完全に表示されない(白い画面/500エラー)
- エラーログの確認:
- サーバーのエラーログ(通常は/var/log/apache2/error.log または同等)
- WordPressのデバッグログ(wp-content/debug.log)
- wp-config.phpのデバッグモード有効化:
123define('WP_DEBUG', true);define('WP_DEBUG_LOG', true);define('WP_DEBUG_DISPLAY', true); - データベース接続の確認:
- wp-config.phpのDB接続情報が正確か確認
- 別のツールでデータベースに直接接続できるか確認
- PHP互換性の確認:
- 新サーバーのPHPバージョンが対応しているか確認
- 一時的に下位バージョンに切り替え検討
2. リンク切れ/パーマリンク問題(404エラー)
- .htaccessの再生成:
- 管理画面「設定 → パーマリンク」で設定を保存
- またはサンプル.htaccessを作成してアップロード
- mod_rewriteの有効化確認:
- Apacheモジュールリストでmod_rewriteが有効か確認
- 有効でない場合は有効化(a2enmod rewriteなど)
「サーバー移転したら、サイトが表示されなくなった…」よくある失敗を避ける完全ガイド
「新しいサーバーに移転したのに、サイトが表示されない…」
「移転後、画像やCSSが読み込まれず、デザインが崩れている…」
「データベースエラーが出て、記事が表示されない…」
WordPressのサーバー移転は、多くのサイト管理者にとって最も神経を使う作業の一つです。エーデルハーツでは年間約30件のサーバー移転関連のトラブル解決を行っていますが、その80%以上が適切な準備と手順さえ踏んでいれば回避できた問題でした。
サーバー移転に失敗すると、数時間から数日のダウンタイムが発生し、特にビジネスサイトでは売上機会の損失、SEOランキングの低下、顧客の信頼喪失など、深刻な影響が出ることもあります。
しかし、正しい知識と計画的なアプローチがあれば、WordPress サイトのサーバー移転はほぼゼロダウンタイムで安全に実施可能です。実際に当社では、適切な手順を踏むことで、99%以上のケースでサイトを数分以内に新環境で完全復元することに成功しています。
この記事では、WordPress開発歴10年の専門エンジニアとして培った知見をもとに、サーバー移転の失敗を防ぐための完全チェックリストと、万が一の際のトラブルシューティングを詳しく解説します。
サーバー移転の計画:失敗しない準備チェックリスト
サーバー移転の成功は、準備段階で決まると言っても過言ではありません。以下の項目を事前にチェックしておきましょう。
サイト現状分析チェックリスト
チェック項目 確認内容 対応方針 現サーバー環境 PHP・MySQL・Apacheバージョン 新サーバーも同等以上のバージョンに サイト規模 ファイル総数・データベース容量 十分な容量のサーバーを選択 カスタム設定 .htaccess・php.ini設定 新サーバーでも同様の設定が可能か確認 外部連携 API連携やCDN設定 IPアドレス制限がある場合は事前対応 SSL証明書 現在のSSL種類と期限 新サーバーでのSSL取得方法を確認 メールアカウント 現在のメール設定・アカウント数 メール移行計画も作成 緊急度と適切なタイミング選定
サーバー移転のタイミングは慎重に選ぶ必要があります。
- □ サイトのアクセス統計を確認し、最もアクセスが少ない時間帯を特定
- □ 特別なキャンペーン期間や重要なイベント期間は避ける
- □ 移転作業に集中できる十分な時間を確保(予想時間の2倍を見積もる)
- □ 何か問題が発生した場合のバックアッププランを準備
業種別の推奨移転タイミング: ECサイトは注文が少ない深夜(午前1-4時)、企業サイトは休日の早朝、ブログなどのメディアサイトは週末の早朝がお勧めです。
必要なツールと情報の準備
移転作業をスムーズに行うために、以下のツールと情報を事前に準備しましょう。
- アクセス情報:現サーバーと新サーバーの両方のFTP・データベース接続情報
- バックアップツール:UpdraftPlus、BackWPupなどのプラグイン、またはホスティング提供のバックアップ機能
- DNSレコード情報:現在のDNS設定の記録(A、CNAME、MX、TXTなど全てのレコード)
- 移行プラグイン:Duplicator、All-in-One WP Migration、WP Migrate DBなど
- FTPクライアント:FileZilla、CyberDuckなど
- テキストエディタ:設定ファイルの編集用(VSCode、Sublime Text、Notepad++など)
プロのヒント: 複雑なサイトの場合、専用のサーバー移転ツール(Duplicatorなど)を使うと、手動での作業量を大幅に削減できます。特に、プラグイン・テーマの設定やカスタマイズが多いサイトには有効です。
サーバー移転の失敗事例と回避策
典型的なサーバー移転失敗のケースを紹介し、その回避策を解説します。
事例1:データベース接続エラーによるサイト表示不能
発生状況:
あるコーポレートサイトのサーバー移転後、「データベースに接続できません」というエラーが表示され、サイトにアクセスできなくなりました。原因:
wp-config.phpファイル内のデータベース接続情報(DB_NAME、DB_USER、DB_PASSWORD、DB_HOST)が、新サーバーの設定と一致していませんでした。特に、新サーバーでは「localhost」ではなく「127.0.0.1」や専用のIPアドレスを使用する必要がありました。回避策:
- 新サーバーの正確なデータベース情報を事前に確認
- wp-config.phpを新環境用に編集(DB名、ユーザー名、パスワード、ホスト)
- テスト接続で設定を事前検証
データベース接続設定の例:
123456// 新サーバー用に変更define('DB_NAME', '新サーバーのDB名');define('DB_USER', '新サーバーのユーザー名');define('DB_PASSWORD', '新サーバーのパスワード');define('DB_HOST', '新サーバーのホスト'); // 'localhost'とは限らない事例2:パーマリンク構造の崩壊とページの404エラー
発生状況:
ブログサイトの移転後、トップページは表示されるものの、個別記事や固定ページにアクセスすると404エラーが表示されるようになりました。原因:
新サーバーで.htaccessファイルが転送されなかった、または上書きされた結果、WordPressのパーマリンク設定が機能しなくなりました。また、新サーバーでmod_rewriteモジュールが有効になっていないケースもありました。回避策:
- 新サーバーに.htaccessファイルが正しく転送されたか確認
- 管理画面「設定 → パーマリンク」を開き、設定を保存して.htaccessを再生成
- 新サーバーでApacheのmod_rewriteモジュールが有効になっているか確認
標準的なWordPress .htaccessファイル:
1234567891011# BEGIN WordPress<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule># END WordPress事例3:CSS・画像が読み込まれずサイトデザインが崩壊
発生状況:
サーバー移転後、サイト構造は表示されるものの、CSSやJavaScript、画像が読み込まれず、デザインが完全に崩れた状態になりました。原因:
WordPress内のサイトURL設定が旧サーバーのURLのままで、新しいURLに更新されていなかったため、リソースのパスが絶対パスで指定されていた場合に読み込みエラーが発生しました。また、DNSの伝播が完了していないケースもありました。回避策:
- 新サーバーでのサイトURLとホームURLを正しく設定
- データベース内の古いURLを新URLに一括置換(Search-Replace-DB等のツールを使用)
- テーマやプラグインでハードコードされたURLがないか確認
- DNSの伝播が完了するまで、旧サーバーも維持
WordPress URLの更新SQL:
(※直接SQLを実行する前にバックアップを取ることを強く推奨します)123UPDATE wp_options SET option_value = 'https://新サイトURL.com' WHERE option_name = 'siteurl';UPDATE wp_options SET option_value = 'https://新サイトURL.com' WHERE option_name = 'home';事例4:パーミッションとオーナーシップの問題
発生状況:
サーバー移転後、サイトは表示されるものの、メディアのアップロードや、プラグインのインストールがエラーで失敗するようになりました。原因:
新サーバーでのファイルパーミッション(権限設定)とオーナーシップ(所有者設定)が適切でなかったため、WordPressがファイルの書き込み操作を行えなくなりました。回避策:
- WordPress推奨のパーミッション設定を適用(ディレクトリは755、ファイルは644)
- wp-content/uploadsディレクトリのパーミッションを特に確認
- 新サーバーのPHPプロセスユーザーとファイルオーナーが一致するように設定
一般的なパーミッション設定コマンド:
123456789// ディレクトリのパーミッションを755に設定find /path/to/wordpress/ -type d -exec chmod 755 {} \;// ファイルのパーミッションを644に設定find /path/to/wordpress/ -type f -exec chmod 644 {} \;// wp-contentのオーナーシップを適切なユーザーに設定(例:www-data)chown -R www-data:www-data /path/to/wordpress/wp-content/事例5:SSLの設定ミスによる混在コンテンツエラー
発生状況:
SSL対応したサーバーに移転したところ、ブラウザで「安全でない混在コンテンツ」の警告が表示され、一部のリソースが読み込まれない状態になりました。原因:
データベース内のURLが旧サーバーの「http://」で始まるURLのまま残っており、新サーバーの「https://」と混在していました。また、テーマやプラグインのコード内にハードコードされたhttpのURLが存在していました。回避策:
- Better Search Replaceのようなプラグインで、httpからhttpsへのURLを一括置換
- wp-config.phpに強制HTTPS設定を追加
- テーマやプラグインのコードを確認し、ハードコードされたURLがあれば修正
wp-config.phpでのHTTPS強制設定:
12345678// HTTPSを強制する設定define('FORCE_SSL_ADMIN', true);define('FORCE_SSL_LOGIN', true);// WordPressでURLを処理する際、常にhttpsを使用if (strpos($_SERVER['HTTP_X_FORWARDED_PROTO'], 'https') !== false)$_SERVER['HTTPS'] = 'on';サーバー移転の安全な実行ステップ
これから紹介する手順に従えば、WordPress サイトを安全に新サーバーに移行することができます。
ステップ1:バックアップの実施
万が一の場合に備えて、まず完全なバックアップを取得します。
バックアップ項目 バックアップ方法 保存場所 WordPress ファイル FTPクライアントで全ファイルをダウンロード
または
バックアッププラグイン(UpdraftPlusなど)ローカルPC
+
クラウドストレージデータベース phpMyAdminからエクスポート
または
コマンドラインからmysqldumpローカルPC
+
クラウドストレージ設定ファイル wp-config.php、.htaccess、robots.txtなど
個別に保存テキストエディタで
別途保存プロのヒント: バックアップファイルに日付とサイト名を含めた命名規則を使うと、後で識別しやすくなります。例:「サイト名_YYYYMMDD_完全バックアップ.zip」
ステップ2:新サーバーの準備と設定
新サーバー環境を最適な状態に整えます。
- 基本環境の確認:
- PHP バージョン:WordPress推奨の最新バージョン(7.4以上)を設定
- MySQL/MariaDBバージョン:5.6以上を推奨
- メモリ制限:最低128MB以上(推奨256MB)
- 必要モジュールの有効化:
- mod_rewrite(URLリライト用)
- mod_ssl(HTTPS用)
- PHP拡張モジュール:GD/ImageMagick、XML、Curl、MBString
- データベース作成:
- 新サーバーで新しいデータベース、ユーザー、パスワードを作成
- ユーザーに適切な権限を付与
- 文字セットをutf8mb4、照合順序をutf8mb4_unicode_ciに設定
PHP最適化設定(php.ini):
123456memory_limit = 256Mmax_execution_time = 300post_max_size = 64Mupload_max_filesize = 64Mmax_input_vars = 3000ステップ3:ファイルとデータベースの転送
サイトのコンテンツを新サーバーへ移行します。
方法A:専用の移行プラグインを使用(推奨)
- Duplicatorプラグイン:
- 現サイトにプラグインをインストールして有効化
- 「パッケージ」を作成(サイトファイル+データベースを含む)
- インストーラーと作成されたパッケージを新サーバーにアップロード
- ブラウザでインストーラーURLにアクセスし、ウィザードに従って復元
- All-in-One WP Migration:
- 現サイトにプラグインをインストールして有効化
- エクスポート機能でサイト全体をファイルとして保存
- 新サーバーに同プラグインをインストール
- エクスポートしたファイルをインポート
方法B:手動転送(上級者向け)
- WordPress ファイルの転送:
- FTPを使用して全ファイルを新サーバーにアップロード
- wp-config.phpは転送せず、後で新しく作成
- データベースのインポート:
- phpMyAdminまたはコマンドラインを使用
- URL置換(旧URL→新URL)を実施
- wp-config.phpの作成:
- サンプルファイル(wp-config-sample.php)をベースに作成
- 新サーバーのDB情報を設定
- セキュリティキー(Authentication Unique Keys and Salts)を新規生成
データベース内のURL置換SQL:
123456-- 注意: 必ずバックアップを取った上で実行してくださいUPDATE wp_options SET option_value = replace(option_value, 'http://古いドメイン.com', 'https://新しいドメイン.com') WHERE option_name = 'home' OR option_name = 'siteurl';UPDATE wp_posts SET guid = replace(guid, 'http://古いドメイン.com', 'https://新しいドメイン.com');UPDATE wp_posts SET post_content = replace(post_content, 'http://古いドメイン.com', 'https://新しいドメイン.com');UPDATE wp_postmeta SET meta_value = replace(meta_value, 'http://古いドメイン.com', 'https://新しいドメイン.com');ステップ4:DNS設定の変更(切り替え準備)
サイトが新サーバーで正常に動作することを確認した後、DNS設定を変更します。
- TTL値の事前調整:
- 移転の24-48時間前に、DNSのTTL(Time to Live)を短く設定(300秒程度)
- これにより、DNS変更後の伝播時間を短縮
- hosts ファイルでのテスト:
- DNS変更前に、ローカルhostsファイルを編集して新サーバーをテスト
- Windows: C:\Windows\System32\drivers\etc\hosts
- Mac/Linux: /etc/hosts
- 例: 「123.45.67.89 www.yoursite.com」
- 実際のDNS変更:
- ドメインレジストラまたはDNSサービスの管理画面にアクセス
- Aレコードを新サーバーのIPアドレスに変更
- 必要に応じてCNAME、MX、TXT、その他のレコードも更新
DNSレコードの主な種類と用途:
- A レコード:ドメインをIPアドレスに紐付け(最も重要)
- CNAME レコード:サブドメインを別のドメインに紐付け
- MX レコード:メールサーバーを指定
- TXT レコード:SPFなどのテキスト情報(メール認証など)
- AAAA レコード:IPv6アドレスの紐付け
ステップ5:最終確認と調整
DNS変更後、サイトが新サーバーで完全に機能していることを確認し、必要に応じて調整します。
確認項目 チェックポイント 対応方法 基本機能の動作 ・全ページ表示
・画像/CSSの読み込み
・リンク切れがないか・問題箇所を特定
・URLやパス設定を修正フォーム機能 ・問い合わせフォーム
・ユーザー登録
・コメント投稿・テスト送信を実施
・メール設定を確認パフォーマンス ・読み込み速度
・レスポンス時間
・サーバー負荷・キャッシュ設定
・リソース最適化SEO状態 ・インデックス状況
・canonical設定
・リダイレクト・Search Consoleで確認
・必要なリダイレクト設定最終チェックリスト:
- 新サイトでGoogle Search Consoleの所有権を確認
- Analytics等のトラッキングコードが機能しているか確認
- 旧サーバーのバックアップを保持(最低2週間程度)
- サーバー移行完了を関係者に通知
サーバー移転失敗時の緊急対応策
万が一、サーバー移転に問題が発生した場合の緊急対応策を紹介します。
症状別トラブルシューティング
1. サイトが完全に表示されない(白い画面/500エラー)
- エラーログの確認:
- サーバーのエラーログ(通常は/var/log/apache2/error.log または同等)
- WordPressのデバッグログ(wp-content/debug.log)
- wp-config.phpのデバッグモード有効化:
123define('WP_DEBUG', true);define('WP_DEBUG_LOG', true);define('WP_DEBUG_DISPLAY', true); - データベース接続の確認:
- wp-config.phpのDB接続情報が正確か確認
- 別のツールでデータベースに直接接続できるか確認
- PHP互換性の確認:
- 新サーバーのPHPバージョンが対応しているか確認
- 一時的に下位バージョンに切り替え検討
2. リンク切れ/パーマリンク問題(404エラー)
- .htaccessの再生成:
- 管理画面「設定 → パーマリンク」で設定を保存
- またはサンプル.htaccessを作成してアップロード
- mod_rewriteの有効化確認:
- Apacheモジュールリストでmod_rewriteが有効か確認
- 有効でない場合は有効化(a2enmod rewriteなど)
コピー
止まったので、続きをお願いします。
Copy - mod_rewriteの有効化確認:
- Apacheモジュールリストでmod_rewriteが有効か確認
- 有効でない場合は有効化(a2enmod rewriteなど)
- パーマリンク設定の見直し:
- 一時的にデフォルト設定(/?p=123形式)に戻して動作確認
- 正常なら徐々に希望の設定に戻す
3. 画像・CSSが読み込まれない(デザイン崩れ)
- URLのハードコードを修正:
- Better Search Replaceプラグインでデータベース内のURL置換
- 開発者ツールでどのリソースが404になっているか確認
- 混在コンテンツの修正:
- httpとhttpsの混在を修正
- wp-config.phpに強制HTTPS設定を追加
- パスの修正:
- 絶対パスが環境によって異なる場合は相対パスに変更
- wp-content/uploadsディレクトリのパーミッション確認
4. メール送信機能が動作しない
- PHPのメール設定確認:
- php.iniのsendmail設定
- SMTPサーバーとの接続設定
- メール送信プラグインの導入:
- WP Mail SMTPのようなプラグインを使用
- 外部SMTPサービス(SendGrid、Mailgunなど)との連携
- テストメールの送信:
- プラグインやコードで送信テストを実施
- ログを確認して詳細なエラー情報を取得
緊急ロールバック手順(最終手段)
サーバー移転に重大な問題が発生し、すぐに解決できない場合は、旧サーバーに戻す「ロールバック」が必要になることもあります。
- DNS設定の復元:
- ドメインのDNS設定を旧サーバーのIPアドレスに戻す
- TTL値を短く設定し、伝播を早める
- 旧サーバーの状態確認:
- 旧サーバーが正常に動作しているか確認
- 必要に応じてバックアップから復元
- 移行期間中の更新データの統合:
- 移行後に新サーバーで追加・変更されたデータがあれば抽出
- 旧サーバーのデータベースに統合
- 移行再計画:
- 失敗の原因を分析
- より綿密な計画と準備を行い、再度移行を実施
プロのヒント: ロールバック計画は、サーバー移転前に必ず準備しておくべきです。具体的な手順と必要なバックアップを事前に確認し、緊急時にすぐに実行できるようにしておきましょう。
サーバー移転を安全に行うためのエーデルハーツのサービス
サーバー移転は技術的な知識と経験が求められる作業です。エーデルハーツでは、WordPressサイトのスムーズで安全なサーバー移転をサポートしています。
サーバー移転実績
- 年間対応件数:約40件のサーバー移転/移行案件
- ダウンタイム実績:95%以上のケースで5分以内のダウンタイムを実現
- トラブル発生率:2%未満(適切な事前準備による)
- サイト規模:小規模ブログから月間100万PV超の大型サイトまで対応
サーバー移転サービスの特徴
- 事前調査と最適プラン提案
サイトの規模や特性、移転の目的を詳しくヒアリングし、最も適した移転方法とスケジュールを提案します。大規模サイトや複雑な構成のサイトでも安全に移行できるよう、綿密な計画を立てます。
- ゼロダウンタイム移行技術
特殊な段階的移行技術により、ほぼゼロに近いダウンタイムでの移転を実現します。特にビジネスクリティカルなサイトでは、営業時間外の短時間で完了する精密な移行計画を実行します。
- 移転後のパフォーマンス最適化
単なる「引っ越し」だけでなく、新サーバーでのパフォーマンスを最大化するための最適化も実施。キャッシュ設定、データベース最適化、サーバー設定の調整など、移転を機に全体的な改善を図ります。
サービス内容 スタンダード
プランプレミアム
プラン企業向け
プランサイト分析・移転計画 ○ ○ ○ 完全バックアップ ○ ○ ○ データ移行 ○ ○ ○ 設定移行・調整 ○ ○ ○ SSL証明書設定 ○ ○ ○ 動作検証・調整 ○ ○ ○ ゼロダウンタイム移行 – ○ ○ パフォーマンス最適化 – ○ ○ 移行後30日サポート – ○ ○ カスタムプラグイン対応 – – ○ SEO維持対策 – – ○ 段階的移行(複数サイト) – – ○ 「小回りの良さ」を活かしたサポート体制
- 柔軟なスケジュール対応
お客様のビジネスサイクルに合わせた移転スケジュールを組み、深夜作業や週末対応も可能です。急ぎの案件でも、臨機応変に対応いたします。
- 一貫したプロジェクト管理
担当者が一貫してプロジェクトを管理するため、情報の伝達ミスや責任の分散がなく、スムーズな進行を実現します。何か問題が起きても、すぐに意思決定できる体制です。
- 透明なコミュニケーション
作業の各段階で明確な報告と説明を行い、専門知識がなくても理解できるよう配慮します。不安点や疑問点にも丁寧にお答えし、安心してお任せいただける環境を作ります。
まとめ:計画と準備がサーバー移転成功の鍵
WordPressのサーバー移転は、適切な計画と準備があれば、ほとんどのケースで問題なく実行できる作業です。この記事で紹介したチェックリストと手順を参考に、安全なサーバー移転を実現しましょう。
重要ポイントの再確認
- 完全なバックアップは不可欠:移転前に必ず取得し、複数の場所に保存
- 事前準備と計画が成功の鍵:サーバー環境の確認、必要なツールの準備、作業スケジュールの計画
- テストは徹底的に:DNS変更前に新サーバーで完全な動作テストを実施
- ロールバック計画を用意:万が一の場合に備えて、元に戻す手順を準備
- タイミングと周知が重要:アクセスの少ない時間帯を選び、関係者に事前に通知
サーバー移転は技術的な挑戦が多い作業ですが、正しい知識と手順で進めれば、サイトのパフォーマンス向上やコスト削減などの大きなメリットをもたらします。
特に重要なビジネスサイトや複雑な構成のWordPressサイトでは、専門家のサポートを受けることで、リスクを最小化し、確実な移転を実現できます。エーデルハーツでは、お客様のサイト特性や移転目的に合わせた最適な移転プランをご提案しています。安全で確実なサーバー移転をご希望の方は、ぜひお気軽にご相談ください。
次回は「突然重くなったサイト:パフォーマンス緊急改善術」について詳しく解説します。WordPressサイトの表示速度低下は、ユーザー体験とSEOの両面で大きな問題です。速度改善のための具体的な方法を紹介します。お楽しみに。
次の記事「突然重くなったサイト:パフォーマンス緊急改善術」も作成いたします。
Copy
「なんだか最近、サイトが遅い…」WordPressサイトを高速化する即効テクニック
「ページの読み込みに何秒もかかるようになった…」
「モバイルだとタイムアウトエラーが出る…」
「Google検索結果で『このサイトは遅いです』と表示されるようになった…」
WordPressサイトの表示速度が遅くなると、ユーザー体験の低下だけでなく、SEOランキングの下降、コンバージョン率の低下など、ビジネスに直結する深刻な問題が発生します。実際、Googleの調査によると、ページ読み込みが3秒から5秒に遅くなるだけで、直帰率は90%増加するとのことです。
エーデルハーツでは年間約50件の速度改善プロジェクトを手がけていますが、適切な最適化を行うことで平均65%の速度向上に成功しています。多くの場合、サイトオーナーが気づいていない数十の小さな問題が積み重なって遅延を引き起こしているのです。
この記事では、WordPress開発歴10年の専門エンジニアの知見をもとに、サイトが突然遅くなった原因の診断方法から、今すぐできる緊急対策、そして長期的なパフォーマンス戦略までを、初心者でも実行できる形で詳しく解説します。
サイトの重さを正確に測定・診断する方法
速度改善の第一歩は、現状を正確に把握することです。感覚的な「遅い」ではなく、数値で測定しましょう。
パフォーマンス測定ツール
測定ツール 特徴と用途 主要指標 PageSpeed Insights Googleが提供する無料ツール。
モバイル・デスクトップの両方を測定。
SEO視点での改善点を提示。・Core Web Vitals
・Performance Score
・First Contentful PaintGTmetrix 詳細な速度レポートを提供。
過去との比較機能あり。
異なる地域からのテストが可能。・Performance Score
・Total Blocking Time
・Largest Contentful PaintWebPageTest 最も詳細なテストが可能。
上級者向け。
ウォーターフォールチャートで詳細分析。・Time to First Byte
・Start Render
・Speed Indexブラウザ開発者ツール Chrome/Firefox等の標準ツール。
リアルタイム分析が可能。
特定の問題箇所を特定しやすい。・Network Timing
・JavaScript Execution
・Memory Usage測定のベストプラクティス: 同じページを3〜5回測定し、平均値を取りましょう。また、異なる時間帯(ピーク時と閑散時)での測定も有効です。一度の測定だけでは、一時的な遅延と恒常的な問題の区別がつきません。
Core Web Vitalsを理解する
Googleが重視する3つの指標「Core Web Vitals」を理解することで、改善の優先順位が明確になります。
指標名 意味 良好な数値 改善方法 LCP
(Largest Contentful Paint)最大コンテンツの表示速度
(メインビジュアルなどの表示時間)2.5秒以内 画像最適化、サーバー応答速度向上 FID
(First Input Delay)初回入力の遅延時間
(クリックなどへの反応速度)100ミリ秒以内 JavaScriptの最適化、不要スクリプト削除 CLS
(Cumulative Layout Shift)累積レイアウトシフト
(表示中の画面のズレ)0.1以下 画像・広告のサイズ指定、フォント最適化 サイトの重さを診断するチェックリスト
以下のチェックリストで、サイトの遅延原因を特定しましょう。
- □ ページサイズが5MB以上(画像や動画が最適化されていない可能性)
- □ HTTP要求が100以上(不要なリソース読み込みがある可能性)
- □ Time to First Byte (TTFB)が1秒以上(サーバー側の問題の可能性)
- □ JavaScriptの実行時間が長い(重いJSライブラリや非効率なコードの可能性)
- □ レンダリングブロックリソースが多数ある(CSSやJSの読み込み方法に問題)
- □ モバイルとデスクトップで大きな速度差がある(レスポンシブ対応に問題)
- □ 未使用のCSSが多い(肥大化したテーマやプラグインの可能性)
- □ キャッシュの有効期限が短い(ブラウザキャッシュが効果的に機能していない)
上記のうち3つ以上に該当する場合は、サイトに複数の速度問題が存在する可能性が高いです。適切な改善策を順番に実施していきましょう。
WordPressサイトが重くなる5大原因
パフォーマンス問題の根本原因を理解することで、効果的な対策が可能になります。
1. 最適化されていない画像(発生率:約35%)
症状の特徴:
画像を多く含むページが特に遅い、ページサイズが極端に大きい、最初のコンテンツ表示(LCP)が遅いなどの症状が見られます。WordPressでは、アップロードされた画像が自動的に最適化されないため、特に高解像度の写真を直接アップロードしている場合に問題が発生します。影響:
- ページサイズの肥大化(平均2〜3倍)
- 帯域幅とホスティングコストの増加
- モバイルユーザーの読み込み時間が極端に長くなる
事例: あるプロフェッショナルフォトグラファーのポートフォリオサイトでは、1ページあたり20枚以上の高解像度画像(1枚約4MB)を使用していました。最適化後、視覚的な品質を維持しながらも画像サイズを平均200KBまで削減。これにより、ページ読み込み時間が12秒から2.8秒に改善されました。
2. 過剰なプラグイン使用(発生率:約25%)
症状の特徴:
管理画面の動作が極端に遅い、フロントエンドでJavaScriptの実行時間が長い、データベースクエリが多いなどの症状が見られます。「必要だから」と多数のプラグインを導入していくうちに、相互作用による負荷が蓄積していきます。影響:
- HTTP要求の増加(プラグインごとにJS・CSSファイルを追加)
- データベース負荷の増加(複雑なクエリの増加)
- 管理画面のレスポンス低下
- メモリ使用量の増加
事例: 35個のプラグインを使用していた企業サイトでは、ページ読み込みに4.5秒かかっていました。不要なプラグインを15個削除し、一部の機能を軽量コードに置き換えたところ、読み込み時間が1.8秒に改善。同時に管理画面の操作性も大幅に向上しました。
3. 低品質なホスティング環境(発生率:約20%)
症状の特徴:
TTFBが一貫して遅い、特定の時間帯(ピーク時)に極端に遅くなる、管理画面のタイムアウトが頻発するなどの症状が見られます。共有ホスティングでの「オーバーセル」(1台のサーバーに過剰なサイトを詰め込む)が主な原因です。影響:
- サーバー応答時間(TTFB)の遅延
- ピーク時のパフォーマンス低下
- データベース処理の遅延
- 突発的なダウンタイム
事例: 月間10万PVのメディアサイトが格安共有サーバーを使用していたところ、ピーク時に30秒以上の読み込み時間が発生。WordPress特化型のマネージドホスティングに移行後、平均読み込み時間が1.2秒に改善し、SEOランキングも3ヶ月で上昇しました。
4. キャッシュ設定の不備(発生率:約12%)
症状の特徴:
リピートユーザーでも初回訪問者と同じ読み込み時間、動的コンテンツが少ないのに毎回生成処理が発生、サーバー負荷が常に高いなどの症状が見られます。WordPressは動的CMSのため、デフォルト状態ではページ生成のたびにデータベースにアクセスします。影響:
- リピーターの体験低下
- サーバー負荷の増加
- 接続数の制限に達しやすい
- コスト効率の低下
事例: ECサイトで商品ページの表示に平均2.5秒かかっていました。ページキャッシュとブラウザキャッシュを適切に設定したところ、初回訪問以降の表示速度が0.8秒に改善。また、サーバー負荷も40%減少し、ピーク時のクラッシュも解消されました。
5. データベースの肥大化と非最適化(発生率:約8%)
症状の特徴:
長期運用サイトほど顕著で、管理画面操作の遅延、投稿編集時のタイムアウト、検索機能の極端な遅さなどの症状が見られます。リビジョン、自動下書き、トランジェント、メタデータの蓄積が主な原因です。影響:
- データベースクエリの応答時間増加
- バックアップ所要時間の増加
- 検索・ソート機能の低下
- 管理画面操作性の低下
事例: 7年間運営されてきたニュースサイトでは、データベースサイズが800MBに達し、新規投稿を保存するだけで10秒以上かかっていました。不要なリビジョンやトランジェントの削除、インデックスの最適化により、データベースサイズを150MBまで削減。管理画面の反応速度が5倍以上向上しました。
今すぐできるパフォーマンス改善:7つの緊急対策
サイト速度の問題を緊急に改善するための、即効性のある対策を紹介します。
ステップ1:画像の最適化
サイトの重さの最大の原因となる画像を最適化します。
- 既存画像の一括最適化:
- 推奨プラグイン:Smush、ShortPixel、EWWW Image Optimizer
- 一括最適化機能を使用して既存の画像ライブラリを最適化
- 可逆圧縮を選択すると品質劣化を最小限に抑えられる
- 適切な画像形式の選択:
- 写真には「WebP」形式(JPEGより約30%軽量)
- ロゴやシンプルなグラフィックには「SVG」形式
- 透過が必要な画像には「PNG」形式
- レスポンシブ画像の活用:
- WordPressのsrcset機能を活用(プラグインなしで利用可能)
- デバイスサイズに応じた適切なサイズの画像を表示
- モバイルでは小さい画像を読み込むことで高速化
プロのヒント: 画像の「遅延読み込み(Lazy Loading)」を導入すると、画面に表示される部分の画像だけを先に読み込み、スクロールするにつれて残りの画像を読み込みます。これにより初期表示速度が大幅に向上します。
ステップ2:キャッシュプラグインの導入・最適化
キャッシュを適切に設定することで、サーバー負荷を減らし表示速度を改善します。
- ページキャッシュの設定:
- 推奨プラグイン:WP Rocket、W3 Total Cache、LiteSpeed Cache
- 動的コンテンツの少ないページは長めのキャッシュ期間を設定(1週間程度)
- 更新頻度の高いページは短めのキャッシュ期間を設定(1日程度)
- ブラウザキャッシュの設定:
- 静的リソース(CSS、JavaScript、フォント、画像)のキャッシュ期間を延長
- 推奨設定:CSSとJavaScriptは1ヶ月、画像とフォントは1年
- .htaccessファイルまたはキャッシュプラグインで設定
- データベースキャッシュの活用:
- 繰り返しクエリの結果をメモリにキャッシュ
- Redis や Memcached の導入(可能な場合)
- クエリ実行時間を大幅に短縮
サンプル.htaccessコード(ブラウザキャッシュ設定):
123456789101112131415161718# ブラウザキャッシュの設定<IfModule mod_expires.c>ExpiresActive On# CSS, JavaScriptExpiresByType text/css "access plus 1 month"ExpiresByType application/javascript "access plus 1 month"# 画像ExpiresByType image/jpg "access plus 1 year"ExpiresByType image/jpeg "access plus 1 year"ExpiresByType image/webp "access plus 1 year"ExpiresByType image/gif "access plus 1 year"ExpiresByType image/png "access plus 1 year"ExpiresByType image/svg+xml "access plus 1 year"# フォントExpiresByType application/font-woff "access plus 1 year"ExpiresByType application/font-woff2 "access plus 1 year"</IfModule>ステップ3:不要なプラグインの削除と最適化
プラグイン数を削減し、残すプラグインも最適化します。
- プラグイン監査の実施:
- 使用していない・重複機能のプラグインを特定
- 更新が停止しているプラグインの確認
- 過度にリソースを消費するプラグインの特定(Query Monitor などで確認)
- 統合プラグインへの移行:
- 複数の単機能プラグインを、機能統合型プラグインに置き換え
- 例:個別SEOプラグイン → Yoast SEO、個別セキュリティ対策 → Wordfence
- 不要機能を持つ大型プラグインは軽量代替品を検討
- プラグインのアセット最適化:
- 不要なページでのスクリプト・スタイル読み込みを無効化
- 条件付き読み込みの設定(特定ページのみで有効化)
- Asset CleanUpやPerfmattersなどのプラグインで設定可能
重いプラグインの例: スライダー、ページビルダー(特に複数併用)、リアルタイム統計、関連記事(アルゴリズム処理が重い)、自動バックアップ(バックグラウンド処理)、複雑なフォーム、高度なSEO分析ツール
ステップ4:データベース最適化
肥大化したデータベースを最適化し、クエリ速度を向上させます。
- 不要データの削除:
- 古いリビジョン(WP Sweep、WP-Optimize などのプラグイン)
- 期限切れトランジェント
- スパムコメント、削除済みコメント
- ゴミ箱(下書き、削除ページなど)
- テーブルの最適化:
- テーブルの修復・最適化(断片化解消)
- インデックスの見直し・作成
- 自動最適化スケジュール設定
- リビジョン数の制限:
- wp-config.phpに追加:
define('WP_POST_REVISIONS', 3);
- 自動下書き保存間隔を延長:
define('AUTOSAVE_INTERVAL', 300);
- wp-config.phpに追加:
最適化の効果測定: データベース最適化前後で、管理画面の反応速度やデータベースサイズの変化を測定しましょう。大規模サイトでは、データベースサイズが50%以上削減されるケースもあります。
ステップ5:静的リソースの最適化
JavaScript、CSS、フォントなどの静的リソースを最適化します。
- リソースの圧縮:
- GZIPまたはBrotli圧縮の有効化
- CSSとJavaScriptのミニファイ(空白や改行を削除)
- キャッシュプラグインの圧縮機能を活用
- JavaScript最適化:
- 非同期読み込み(async/defer属性の追加)
- 不要なスクリプトの削除または条件付き読み込み
- JQueryの依存関係を最小化
- CSS最適化:
- 未使用CSSの削除
- クリティカルCSSの抽出(ページ上部表示に必要なCSSを優先読み込み)
- CSSのインライン化(特に小規模サイト)
- フォントの最適化:
- フォントファイルのサブセット化(必要な文字のみ)
- Webフォントローダーの使用(FOUT/FOIT防止)
- システムフォントの活用(可能な場所で)
プロのヒント: CSSやJavaScriptの「結合」は、HTTP/2環境では必ずしも有効ではありません。HTTP/2は並列リクエストに最適化されているため、個別の小さなファイルの方が効率的なケースもあります。サーバー環境に合わせて最適な方法を選択しましょう。
ステップ6:CDNの活用
コンテンツ配信ネットワーク(CDN)を導入し、静的コンテンツの配信を高速化します。
- CDNサービスの選定:
- 無料オプション:Cloudflare(無料プラン)
- 有料オプション:Bunny CDN、KeyCDN、Stackpath
- WordPressに最適化されたCDN:Jetpack、WP Rocket CDN
- CDN設定:
- CDNに委任するファイルタイプ:画像、CSS、JS、フォント
- リソースファイルのURLをCDNドメインに書き換え
- SSLの適切な設定(混在コンテンツの防止)
- 画像CDN機能の活用:
- オンデマンド画像リサイズ
- WebP自動変換
- 最適なフォーマットの自動選択
CDN導入の効果: ユーザーの所在地から近いエッジサーバーがコンテンツを配信するため、特に国際的なアクセスがあるサイトで効果的です。平均して30〜60%の読み込み時間短縮が期待できます。
ステップ7:サーバー設定の最適化
ホスティング環境の設定を見直し、サーバーレベルでのパフォーマンスを向上させます。
- PHPバージョンの更新:
- 最新の安定版PHP(7.4以上、できれば8.0以上)に更新
- PHP 7.4は5.6と比較して最大3倍高速
- 互換性テストをしてから更新
- PHPメモリ制限の調整:
- wp-config.phpに追加:
define('WP_MEMORY_LIMIT', '256M');
- php.ini(可能な場合):
memory_limit = 256M
- 大規模サイトでは512MB以上が推奨
- wp-config.phpに追加:
- OPcacheの活用:
- PHPのコンパイル済みバイトコードをキャッシュ
- PHPの実行速度が大幅に向上
- php.iniで設定(サーバー管理権限が必要)
- HTTP/2の有効化:
- SSLが必須(HTTPSサイトのみ)
- 同時接続数の制限を排除
- リクエストのパイプライン化で高速化
サーバー選びのアドバイス: 予算が許す場合は、WordPressに特化した「マネージドホスティング」への移行を検討しましょう。Kinsta、WP Engine、Flywheel、SiteGround(GoGeek以上のプラン)などが、チューニング済みのWordPress環境を提供しており、最小限の設定で高速なパフォーマンスを実現できます。
長期的なパフォーマンス管理戦略
一時的な改善だけでなく、継続的にサイト速度を監視・管理するための戦略を紹介します。
1. 定期的なパフォーマンス監査
パフォーマンスの定点観測と分析を習慣化しましょう。
監査項目 頻度 ツール・手法 基本速度測定 毎週 PageSpeed Insights、GTmetrix プラグイン影響評価 月1回 Query Monitor、P3 Plugin Profiler ユーザー体験分析 月1回 Google Analytics(Core Web Vitals) サーバーパフォーマンス 月1回 ピーク時のリソース使用率確認 競合他社比較 四半期ごと 同業種サイトとのベンチマーク プロセス自動化のヒント: GTmetrixやPingdomのような定期的な自動測定サービスを活用し、速度低下があった場合にアラートを受け取る仕組みを作りましょう。
2. レスポンシブデザインの最適化
モバイル体験を特に重視した最適化を行います。
- モバイルファースト設計の導入:
- デスクトップからモバイル対応ではなく、モバイルから設計
- 余計な要素を削除し、核心的な機能に集中
- タッチフレンドリーなUI(ボタンサイズ、間隔最適化)
- AMP(Accelerated Mobile Pages)の検討:
- モバイルに特化した超軽量ページ
- コンテンツ重視サイト(ブログ、ニュース)に特に有効
- AMP for WP、AMP Pluginなどで実装可能
- PWA(Progressive Web App)機能の実装:
- オフライン機能、ホーム画面追加
- ネイティブアプリに近い体験
- PWA for WP & AMP、Super PWA などのプラグインで実装可能
モバイルSEOのインパクト: Googleのモバイルファーストインデックスにより、モバイル表示速度がSEOランキングに大きく影響します。モバイルでCore Web Vitalsをクリアすることを最優先しましょう。
3. コンテンツ配信の最適化
コンテンツの見せ方と読み込み方を最適化します。
- コンテンツプライオリタイゼーション:
- 重要コンテンツを先に読み込み(Above the fold最適化)
- 遅延読み込み(Lazy Loading)の適用(画像、iframe、コメント)
- 無限スクロールの代わりにページネーション活用
- 広告・埋め込み要素の最適化:
- 広告の非同期読み込み
- SNSウィジェットの遅延読み込み
- YouTubeなどの埋め込み動画の最適化(クリック後読み込み)
- プリロード・プリフェッチの活用:
- 重要リソースのプリロード
- 次のページをプリフェッチ
- DNSプリフェッチの設定
パフォーマンスバジェットの設定: チームで開発する場合、「ページサイズ上限」「HTTP要求数上限」「JavaScript実行時間上限」などのパフォーマンスバジェット(許容値)を明確に設定し、新機能追加時にもパフォーマンスが維持されるようにしましょう。
4. デベロッパーフレンドリーな最適化
より高度な最適化技術を導入します。
- アセットパイプラインの最適化:
- Webpack、Gulp、Gruntなどのビルドツール活用
- 本番環境用のアセット最適化
- Tree-shaking(未使用コードの削除)
- クエリ最適化:
- カスタムクエリの見直し(WP_Queryの最適化)
- データベースインデックスの最適化
- 不要なJOINやサブクエリの削除
- Object Cacheの導入:
- Redis、Memcachedなどを活用
- 繰り返しクエリの結果をメモリに保存
- サーバー負荷の大幅削減
開発チーム向けヒント: CI/CDパイプラインにパフォーマンステストを組み込むことで、パフォーマンスへの悪影響がある変更を早期に発見できます。また、開発・テスト環境でもパフォーマンス測定を習慣化すると、本番環境でのサプライズを防げます。
エーデルハーツのパフォーマンス最適化サービス
サイト速度の改善は専門的な知識と経験を要する場合があります。エーデルハーツでは、WordPressサイトのパフォーマンス最適化を専門としたサービスを提供しています。
最適化実績
- 平均速度改善率:65%(PageSpeed Insightsスコア平均35→85に改善)
- 平均表示速度:最適化前4.2秒→最適化後1.5秒
- SEOランキング改善:約70%のケースで3ヶ月以内に検索順位上昇
- コンバージョン率向上:ECサイトで平均20%以上の成約率増加
サイトタイプ 最適化前 最適化後 改善率 企業サイト
(20ページ規模)5.2秒 1.8秒 65% ECサイト
(500商品)7.8秒 2.3秒 71% メディアサイト
(1,000記事)6.5秒 2.5秒 62% 会員サイト
(ログイン機能)4.8秒 1.9秒 60% パフォーマンス最適化サービス内容
エーデルハーツでは、サイトの規模や状況に合わせた3段階のパフォーマンス最適化サービスをご用意しています。
サービス内容 スピードアップ
プランフルオプティマイズ
プランハイパフォーマンス
プラン初期診断と最適化計画 ○ ○ ○ 画像最適化 ○ ○ ○ キャッシュ設定 ○ ○ ○ 静的リソース最適化 ○ ○ ○ プラグイン最適化 × ○ ○ データベース最適化 × ○ ○ サーバー設定最適化 × × ○ CDN導入・設定 × × ○ コード最適化 × × ○ 事後解析・報告書 ○ ○ ○ 「小回りの良さ」を活かした最適化アプローチ
- カスタマイズされた最適化戦略
大手のテンプレート型の最適化ではなく、サイトの特性や重要機能を考慮した最適化計画を立案。例えば、ECサイトでは商品ページや決済フローを特に重視するなど、ビジネス価値に直結する部分を優先します。
- テクニックとビジネスのバランス
単純な「速度スコア向上」だけでなく、サイト本来の機能や使いやすさを損なわない最適化を心がけています。アクセス解析データも参照し、重要なユーザージャーニーでの体験を優先的に改善します。
- 継続的な速度管理サポート
一度きりの最適化ではなく、継続的な速度維持のためのアドバイスや定期チェックを提供。サイト成長に伴う新たな課題にも臨機応変に対応し、長期的なパフォーマンス品質を維持します。
まとめ:持続可能な高速サイト運営のために
WordPressサイトの速度改善は、一度きりの対策ではなく、継続的な取り組みが重要です。この記事で紹介した7つの緊急対策と長期的な戦略を組み合わせることで、ユーザー体験とSEOの両面で優位に立つことができます。
重要ポイントの再確認
- 測定から始める:感覚ではなく、数値で現状を把握し、改善の効果を検証
- 根本原因に対処:表面的な対策ではなく、根本的な問題を特定して解決
- 優先順位を付ける:最も効果の高い施策から取り組み、リソースを効率的に活用
- バランスを考える:速度だけでなく、機能性、使いやすさ、セキュリティのバランス
- 継続的に監視:一度の最適化で終わらせず、継続的に速度を監視・維持
サイト速度の最適化は決して一朝一夕には完了しません。しかし、その効果は訪問者数の増加、滞在時間の延長、コンバージョン率の向上など、明確な形で表れてきます。
サイト表示速度に不安や課題がある場合は、まず基本的な最適化からスタートし、徐々に高度な対策を積み重ねていくことをお勧めします。専門的な知識が必要な部分は、エーデルハーツの無料相談をぜひご活用ください。