WordPressでHTTPS切替後に画像やメニューが崩れる時の直し方

WordPressでHTTPS切替後に画像やメニューが崩れる時の直し方

WordPressでHTTPS切替後に画像やメニューが崩れる時の直し方

WordPressサイトをHTTPからHTTPSへ切り替えた直後に、メニューが反応しない、画像ギャラリーが表示されない、ページレイアウトが崩れるといった症状が出る場合は、データベース内に残った「http」形式のURLが原因だ。Better Search Replaceというプラグインで旧URLを一括置換し、ElementorのCSSを再生成すれば解消できる。

なぜHTTPS切替後にサイト表示が崩れるのか

なぜHTTPS切替後にサイト表示が崩れるのか

HTTPSへ切り替えただけでは、WordPressのデータベースに保存された古いURLは自動的に更新されない。投稿本文やメタ情報、ウィジェット設定、ElementorのCSSファイル内に「http」形式のURLが残ったままになるためだ。

ブラウザはHTTPSページの中にHTTPの画像やスクリプトが混在している状態を「混合コンテンツ」と呼び、セキュリティ上の理由で読み込みをブロックする。この結果、画像が途中で消える、メニュークリックが反応しない、ギャラリーのスライドが止まるといった症状が起きる。

Before(HTTP残存)
ページURLは HTTPS なのに
画像URLは HTTP のまま
→ ブラウザが画像をブロックして表示が崩れる
After(HTTPS統一)
ページURLは HTTPS
画像URLも HTTPS
→ すべてのリソースが読み込まれて正常表示
HTTP残存(エラー状態)  HTTPS統一(修正後)

HTTPとHTTPSが混在するとブラウザがリソースをブロックする仕組みのデモ。

Better Search Replaceでデータベースを一括置換する手順

Better Search Replaceでデータベースを一括置換する手順

壊れたURLを手作業で直す必要はない。Better Search Replaceという無料プラグインを使えば、データベース内のすべての「http」形式のURLを「https」形式に一括で置換できる。事前に必ずバックアップを取っておくこと。

STEP 1 サイト全体のバックアップを取る
STEP 2 Better Search Replaceをインストールして有効化
STEP 3 検索に旧URL、置換に新URLを入力
STEP 4 すべてのテーブルを選択して置換を実行

Better Search ReplaceによるURL置換の全体の流れのデモ。

バックアップが最優先だ

置換操作はデータベース全体に影響を与えるため、失敗すると復旧が難しくなる。必ずプラグインやサーバー側のバックアップ機能で、データベースとファイルの両方を取得してから作業する。

検索と置換のURL指定を間違えない

検索フィールドには「http、自サイトのドメイン」、置換フィールドには「https、自サイトのドメイン」を入力する。ドメインの前後やスラッシュの有無を間違えると置換が正しく行われないため、コピーアンドペーストで正確に入力するのが安全だ。

置換後の確認ポイント

置換が完了したら、ブラウザのシークレットモードでサイトを開き、画像やメニューが正常に表示されるか確認する。管理画面の「設定 → 一般」に記載されたURLもHTTPSになっているか合わせてチェックする。

WordPress設定とElementorを修復する手順

WordPress設定とElementorを修復する手順

データベースの置換後も、WordPressの「一般設定」に記載されたサイトURLとWordPress URLが正しいHTTPS形式になっているか確認する必要がある。管理画面にログインできる場合は、設定画面から変更するだけでよい。

管理画面に入れなくなった場合はphpMyAdminから修正する

URLを誤って書き換えてログインできなくなった場合は、サーバーの管理画面からphpMyAdminを開き、wp_optionsテーブルの「siteurl」と「home」の2つの値を正しいHTTPSのURLに戻す。これでWordPressに再ログインできる。

ElementorのCSSを再生成する

ElementorはCSSを自動生成して保存しているため、URL変更後はこのCSSが古いHTTPのURLを参照したままになることがある。Elementorの設定画面から「CSSを再生成」を実行し、合わせて「Elementorのデフォルト設定を更新」も確認する。

Elementor CSS再生成の実行画面
管理画面の「Elementor → ツール」を開く
「CSSを再生成」ボタンをクリック
その後「Elementorのデフォルト設定を更新」も実行
Elementor 修復後の状態
生成されたCSSがすべて HTTPS を参照
レイアウトが正常に表示される

ElementorのCSS再生成の手順と修復後の状態のデモ。

置換しても直らない場合の追加対策

置換しても直らない場合の追加対策

一括置換後にキャッシュやサーバー設定が原因で症状が残ることがある。順番に確認していくことで、残りの問題を特定できる。

ブラウザのデベロッパーツールで混合コンテンツを探す

ChromeやEdgeのデベロッパーツール(F12)を開き、コンソールタブを確認する。「Mixed Content」という警告が出ていれば、まだHTTPのURLが残っている。該当するURLをメモし、Better Search Replaceで追加の置換をかける。

キャッシュ系プラグインとサーバーキャッシュを削除する

キャッシュプラグイン(WP Super CacheやW3 Total Cacheなど)が古いHTTPのページを保存していると、データベースを置換しても表示が変わらない。プラグインの設定からキャッシュを全削除し、あわせてサーバー側のキャッシュも管理画面からクリアする。

htaccessでHTTPをHTTPSへリダイレクトする

WordPressサイトのルートにあるhtaccessファイルに、HTTPアクセスをHTTPSへリダイレクトする設定を追加する。これにより、古いHTTPのURLにアクセスしても自動的にHTTPSへ転送され、検索エンジン評価の分散も防げる。不安であればサーバー会社のサポートに設定を依頼してもよい。

よくある質問

Really Simple SSLプラグインでは直らないのか

Really Simple SSLはHTTPSへのリダイレクトと、管理画面のURL更新を自動で行うプラグインだ。ただし、データベース内のすべてのHTTP URLを置換する機能は制限版では一部に限られる。画像やElementorのCSSに残るURLを完全に直すには、Better Search Replaceによる一括置換が必要になる。

置換後にログインできなくなったらどうするか

URL設定を誤るとログアウトして再ログインできなくなることがある。その場合はphpMyAdminからwp_optionsテーブルの「siteurl」と「home」を正しいHTTPSのURLに戻す。これで管理画面に再アクセスできる。

置換しても一部の画像が表示されない場合は

置換後の画像不表示は、キャッシュが古いHTTPのページを返しているか、CDNや外部サービスが元のURLを参照している可能性がある。キャッシュを全削除し、CDNを利用している場合はCDN側のキャッシュもクリアする。

HTTPS化後のSEOへの影響はあるのか

HTTPS化はGoogleのランキングシグナルとして評価されるため、正しくリダイレクトを設定すればSEOにはプラスに働く。サイト側でHTTPとHTTPSが両方アクセスできる状態を放置すると評価が分散するため、リダイレクト設定まで済ませておく。

Elementorで編集画面が真っ白になった場合は

URL変更後にElementorの編集画面が読み込めない場合は、CSS再生成とあわせて「Elementorのデフォルト設定を更新」を実行する。さらにWordPressのパーマリンク設定を一度「保存」して書き換えることで、内部リンク構造がリフレッシュされる。

この記事のポイント

  • HTTPS切替後もデータベースにHTTPのURLが残り、混合コンテンツとしてブロックされる
  • Better Search Replaceでhttpからhttpsへ一括置換する
  • 置換前に必ずフルバックアップを取る
  • ElementorはCSS再生成とデフォルト設定の更新が必要
  • キャッシュ削除とリダイレクト設定で仕上げる
佐々木 太陽

・ Reddit、Stack Overflow、WordPress.org フォーラムを日々巡回し、現場の悩みを拾い上げて記事化 ・ WordPress、WooCommerce、Next.js などモダンWeb制作領域のトラブルシューティングが専門 ・ 「検索しても答えが見つからなかった」を一つでも減らすことが目標 ・ エラーメッセージから根本原因にたどり着く粘り強い調査が得意 ・ 初心者がつまずきやすい箇所を先回りで解決する記事作りを心がけている

メッセージを残す