ウェブサイトで「Mixed Content」エラーが発生する原因とその修正方法は、特にWordPressを使用している場合、セキュリティとパフォーマンスの観点から非常に重要です。このエラーは、ウェブページの一部がHTTPで提供され、他の部分がHTTPSで提供されている場合に発生します。ウェブサイト全体がSSL(Secure Sockets Layer)で保護されている場合でも、コンテンツの一部がHTTP経由で読み込まれると、ブラウザはこれを「Mixed Content(混合コンテンツ)」として警告します。このエラーを解消するためには、ウェブサイトのすべてのコンテンツがHTTPS経由で提供されるようにする必要があります。
この記事では、WordPressにおけるMixed Contentエラーを修正するための完全かつ包括的な方法を説明します。
Mixed Contentエラーとは?
Mixed Contentエラーは、ウェブサイトのページがHTTPSで読み込まれたにもかかわらず、ページ内で使用されているリソース(画像、スクリプト、CSSファイルなど)がHTTPで読み込まれている場合に発生します。これはセキュリティ上のリスクとなる可能性があり、ブラウザは警告を表示します。これを解決しないままだと、訪問者がウェブサイトを利用する際にセキュリティの問題が生じる可能性があります。
Mixed Contentエラーを修正する方法
以下は、WordPressでMixed Contentエラーを解決するための手順です。
1. サイト全体のURLをHTTPSに変更する
最初に確認すべきことは、WordPressサイト全体のURLがHTTPSを使用しているかどうかです。もしまだHTTPを使用している場合、次の手順で変更を行います。
-
WordPressダッシュボードにログインします。
-
「設定」→「一般」に移動します。
-
サイトアドレス(URL)とWordPressアドレス(URL)を、両方とも「https://」で始まるURLに変更します。
例:
- サイトアドレス:
https://example.com - WordPressアドレス:
https://example.com
- サイトアドレス:
これで、WordPressがHTTPSで正しく動作するようになります。
2. 不正なHTTPリソースをHTTPSに変更する
次に、ページ内でHTTPで読み込まれているリソースを探し、すべてHTTPSで読み込むように修正します。これには以下の方法があります。
2.1. データベース内のHTTPリンクをHTTPSに変更する
WordPressのデータベース内に、画像やスタイルシート、スクリプトなどがHTTPで指定されている場合があります。この場合、データベースを直接修正するか、プラグインを使用してリンクを一括変更することができます。
- Better Search ReplaceやVelvet Blues Update URLsなどのプラグインを使用して、データベース内のすべてのHTTPリンクをHTTPSに置き換えます。
- プラグインをインストールし、設定画面で検索するURL(HTTP)と置き換え先のURL(HTTPS)を指定して、一括変更します。
これにより、ページ内で参照されているリソースがすべてHTTPSで読み込まれるようになります。
2.2. 手動でテーマファイルを修正
テーマのコード内にHTTPリンクが含まれている場合、手動で修正する必要があります。特にheader.phpやfooter.phpなどのファイルに記載されている場合があります。
- FTPクライアントやcPanelのファイルマネージャーを使用して、テーマファイルを編集します。
- HTTPで始まるURLをHTTPSに変更します。
3. Mixed Contentを自動的に修正するプラグインを使用する
WordPressでは、Mixed Contentエラーを自動的に修正するプラグインも存在します。代表的なものには以下のようなプラグインがあります。
-
Really Simple SSL: このプラグインは、サイト全体をSSLで保護し、HTTPSへのリダイレクト設定を簡単に行うことができます。また、HTTPのリソースを自動的にHTTPSに変換します。
-
SSL Insecure Content Fixer: このプラグインは、Mixed Contentエラーを解決するために、HTTPリソースを自動的にHTTPSに置き換える処理を行います。
これらのプラグインをインストールし、設定を有効にすることで、Mixed Contentエラーを迅速に解決できます。
4. サードパーティのリソースの確認
WordPressのテーマやプラグイン、あるいは外部のサービスを使用している場合、そのリソースがHTTPで提供されていることがあります。特に、外部のCDN(コンテンツ配信ネットワーク)やフォント、JavaScriptライブラリなどが原因でMixed Contentエラーが発生することがあります。
この場合、以下の手順で解決できます。
-
サードパーティのリソースがHTTPSで提供されていることを確認します。もし提供されていない場合、HTTPで提供されるリソースの使用を避け、代わりにHTTPS対応のリソースを使用します。
-
可能であれば、外部のリソースもHTTPSで提供されているものに変更します。たとえば、Google FontsやjQueryなどの外部ライブラリを使用している場合、必ずHTTPSで読み込むように変更します。
5. Mixed Contentエラーを確認する
変更を加えた後、サイトを再度チェックして、Mixed Contentエラーが解消されたかどうかを確認します。ブラウザのデベロッパーツール(Chromeなら「F12」を押して、「Console」タブを確認)を使用して、エラーが発生していないかを確認することができます。
また、Why No PadlockやSSL Labsなどのオンラインツールを使用して、サイトが正しくHTTPSで保護されているかをチェックすることもできます。
まとめ
WordPressサイトでMixed Contentエラーが発生した場合、その原因は主にサイト内のリソースがHTTPで読み込まれていることにあります。これを修正するためには、まずサイト全体のURLをHTTPSに変更し、その後、すべてのリソースがHTTPS経由で読み込まれるように修正します。プラグインを使用したり、手動でテーマやプラグインのファイルを修正することも有効な方法です。最終的には、Mixed Contentエラーを完全に解決することで、サイトのセキュリティを強化し、ユーザーに安全な環境を提供することができます。
