http(非暗号化通信)で運営していたWordPressサイトを、SSL化させ、https(暗号化通信)にしたにも関わらず、Chromeのアドレスバーに「保護されていない通信」と表示されてしまうケースがあります。

httpsなのにMixed Content 保護されていない通信

アドレスが「https」なのに「保護されていない通信」のまま…

原因は様々ですが、多くのケースで「Mixed content」が問題のようです。そのままではSEO的にもよくありませんので、修正してしまいましょう。

Mixed content(混合コンテンツ)とは?

Mixed conten(混合コンテンツ)とは、ものすごく簡単に言うと、「httpとhttpsの2種類が混在している状態である」ことです。

httpからhttpsに変更する際に、一括での設定などでhttpであるものをhttpsに変更したはずだったのが、変更になっておらず本来なら「https」とすべきものを「http」のままにしていることが原因です。

一番多いのが「画像」のURLです。

httpのままで見た目上は問題なく表示されるので、気づきづらいのです。

Mixed Conetenの原因をブラウザで確認する

原因を特定するために、下記2つの方法を試してください。

1.ソース表示して原因の元を探る

まず、サイト内のトップページと、投稿記事の1つを、Chromeなどのブラウザでソース表示(※)をさせてください。

ソースが表示されたら CTRL (or ⌘)+F で検索画面を出して「http://」を検索してください。Mixed contentになっている場合は、「http」のままのURLが見つかると思います。

リンク先として設定したURL(a href=”URL”など)ではなく、画像自体のURL(img)などであれば、それが原因となっています。

※Chromeでは「表示」→「開発/管理」→「ソースを表示」

2.デベロッパーツールで確認する

Chromeを使っているなら、デベロッパーツール(※)でも原因を確認できます。

デベロッパーツールが立ち上がったら右側のメニューの中から「Security」のタブをクリックして表示してください

保護されていない通信 確認方法

ここを見れば、現在の状態がわかるのですが、英語ですし、初心者には少々難しいかもしれません。ソース表示から原因を特定するやり方でまずは原因が何であるか確認すれば良いでしょう。

※Chromeでは「表示」→「開発/管理」→「デベロッパーツール」

httpをhttpsに修正する

原因が特定できたら、あとはhttpをhttpsに修正するだけです。

バックアップをとっておく

まず大前提として、URLを強制的に変更することで、様々なエラーが起きる可能性があります。サーバーデータのバックアップはとっておきましょう。

Search Regexプラグインで置換

WordPressではおなじみのプラグイン、Serch Regexを使って、文字列を置換えます。インストールしていなければ、WordPressの管理画面のプラグインの画面で、検索してインストールしましょう。

保護されていない通信 Search regex 修正

インストールしたら、あとは検索から置換えするだけです。一気に全部置換えするのもアリですが、失敗を避けるためにも、何回かに分けて行うと良いです。

まずは自サイトのアドレスを置換えしましょう。自サイトのアドレスはSSL化しているので「http」は通常不要です。下記のように入力してください。

保護されていない通信 Search regex SSL修正

「検索」の項目は「http://自サイトドメイン」
「置換」の項目は「https://自サイトドメイン」
「ソース」の項目は「投稿」「固定ページ」あたりに留めて
「結果」は「500件 / ページ」で多めに表示させます

いきなり置換えしてもよいのですが、まずは落ち着いて「検索」で検索してから、内容を確認。置換えて問題ないと判断したら「全て置換する」で置換えしてください。

この段階で、管理画面ではなく通常の表示でサイトを表示させて、「保護されていない通信」が解除され、南京錠のマークが出現したら完了です。

もし改善されない場合は、

検索の文字列「http://」
置換の文字列「https://」

と自サイトのURL以外にも対象範囲を広げてください。ただし、これでも解決しないケースがあります。

リビジョンは気にしなくてもよい

Search Regexで検索置換したのに、「保護されていない通信」が解除されない時に、もう一度検索すると、置換えしたはずなのに「リビジョン」が置換えされず、検索に再度ヒットするケースがあります。

これはリビジョンなので当然です。サイト表示においては気にしなくてもよいです。

原因はリビジョン以外の場所にある可能性が大です。

ウィジェットやスニペットが原因かも

アフィリエイト広告などを差し込むためにウィジェットに設定しているURLや、記事内に自動入力させるためのスニペットに設定したURLが原因になっている可能性があります。

Search Regexでは記事に直接書かれたものを検索しましたが、これらは最終的に吐き出されるデータ(動的サイトで見落としがち)なので、それに気づかずに解決しなかったのです。

ここはそこまで数が多くないと思いますので、手入力で修正してください。