「https化したはずなのに鍵マークが出ない」「一部の画像が表示されない」——常時SSL化の作業後にこのような状態になることは珍しくありません。この問題の原因として多いのが「混在コンテンツ(Mixed Content)」です。この記事では、混在コンテンツとは何か、なぜ起きるのか、そして具体的な解消方法を解説します。
混在コンテンツとは
混在コンテンツ(Mixed Content) とは、httpsで表示されているページの中に、httpで参照されているリソース(画像・CSS・JavaScriptなど)が混在している状態のことです。
例えば、https://example.com/ というページの中に http://example.com/images/photo.jpg という画像が埋め込まれている場合、これが混在コンテンツになります。
警告が出る仕組みと影響
ブラウザはhttpsページをすべて安全な通信で提供することを前提としています。そのページ内にhttpのリソースが混在すると、通信の一部が暗号化されていないとみなされ、警告が発生します。
影響として代表的なものは以下の通りです。
- 鍵マークが表示されない(アドレスバーに警告アイコンが出ることも)
- 一部の画像やスタイルが表示されない(ブラウザが自動でブロックする場合がある)
- ページ全体の見た目が崩れる(CSSやJSがブロックされた場合)
- 訪問者の信頼感を損なう
SSL化をしているのに鍵マークが出ない場合、ほぼ確実に混在コンテンツが原因です。
原因:なぜ混在コンテンツが発生するか
混在コンテンツが発生する主な原因は、SSL化前にhttpで作成されたコンテンツがそのまま残っているためです。具体的には以下のケースが多いです。
- 投稿・固定ページ内の画像やリンク: WordPressのビジュアルエディタで挿入した画像URLがhttpのまま
- テーマ・プラグインのCSS/JS: テーマや古いプラグインがhttp参照を含んでいる
- 外部サービスの埋め込みコード: YouTube・Googleマップ・SNSウィジェットなどで古いhttp形式の埋め込みコードを使っている
- テーマのカスタマイザー設定: ロゴ画像や背景画像がhttpで保存されている
直し方:混在コンテンツを解消する手順
ステップ1:混在コンテンツを特定する
まず、どのページにどのhttpリソースがあるかを特定します。
ブラウザの開発者ツールを使う方法
- 問題のページを開き、キーボードの
F12キーを押して開発者ツールを開きます - 「Console(コンソール)」タブを選択します
- 「Mixed Content:」または「insecure content」という赤や黄色のメッセージが表示されていれば、どのファイルがhttpで読み込まれているか確認できます
ブラウザ拡張機能を使う方法 「HTTPS Everywhere」「Why No Padlock?」などのツールを使うと、混在コンテンツを簡単に見つけられます。また、https://www.whynopadlock.com/ というWebサービスにURLを入力するだけで診断してくれます。
ステップ2:WordPressのデータベースを一括置換する
WordPressの場合、投稿内容はデータベースに保存されているため、一つひとつ手で直すのは非現実的です。「Better Search Replace」 プラグインを使った一括置換が有効です。
- プラグイン「Better Search Replace」をインストール・有効化します
- 「検索する文字列」に
http://あなたのドメインを入力します - 「置換する文字列」に
https://あなたのドメインを入力します - 「ドライラン(試行のみ)」にチェックを入れて影響範囲を確認します
- 問題なければドライランのチェックを外して本番実行します
注意: 作業前に必ずバックアップを取ってください。
参考: WordPressの常時SSL化(http→https)の手順
ステップ3:プラグインで自動修正する
「SSL Insecure Content Fixer」 というプラグインを使うと、WordPressが出力するhtmlの中のhttpをhttpsに自動で書き換えてくれます。テーマやプラグインが出力する箇所にも効果的です。
- プラグインをインストール・有効化します
- 設定画面(設定 > SSL Insecure Content)で「Simple」または「Content」を選択します
- 変更を保存して、問題が解消されているか確認します
ステップ4:外部埋め込みを確認する
YouTube動画やGoogleマップなどの埋め込みコードは、古い形式だとhttpになっている場合があります。最新の埋め込みコードを取り直して、http参照を含んでいないか確認しましょう。多くの場合、最新のコードはhttpsになっています。
ステップ5:テーマ・プラグインの設定を確認する
カスタマイザーで設定したロゴ・背景画像・ファビコンなどが、httpで保存されているケースがあります。外観 > カスタマイズ を開き、各項目を確認・再設定してください。
常時SSL化との関係
混在コンテンツは、常時SSL化(httpからhttpsへの移行)の際にセットで解消しておく必要があります。SSL化と一括置換を同時に行うことで、多くの混在コンテンツを一度に解消できます。
関連記事:
まとめ
混在コンテンツは、httpsに対応しているのに鍵マークが出ないときの代表的な原因です。ブラウザの開発者ツールやWhyNoPadlockで原因箇所を特定し、「データベースの一括置換」と「SSL Insecure Content Fixer」の組み合わせで多くのケースは解消できます。
作業が複雑に感じたり、解消後も鍵マークが出ない場合は、Web Gearにご相談ください。原因を調査して適切な対処をご提案します。