先日独自ドメインを取得してHTTPS、つまりSSLに対応したサイトを作成したのですが、なぜかHTTPSだけでなくHTTPのページもインデックスされたり、HTTPSのページが検索結果に表示されないといった問題が発生しました。
まあ時間が解決してくれるだろうと、初めの頃はあまり気にしていなかったのですが…1か月近く経っても改善する気配がなかったので、解決策はないかとあれこれ調べてみました。
結論から述べると、HTTPで作成したサイトをHTTPS化する場合と同様に301リダイレクトを設定することで解決したので、その手順について簡単に解説します。
スポンサーリンク
目次
HTTPSで作成したのにHTTPもインデックスされる
初めに違和感を覚えたのは、投稿した記事のタイトルで検索してもなかなか当該の記事がヒットしなかったことです。
表示されたとしてもその投稿記事が含まれているカテゴリーのページのみで、記事自体はまったく表示されないという状態が続いていました。
まあそれだけならクロールやインデックスに時間がかかってるという可能性も考えられますが、Search ConsoleのFetch as Googleでクロールをリクエストしてインデックスされてもなかなか上位に表示されませんでした。。
極めつけは、サイト名で検索すると1位に表示されるものの、URLがhttpsではなくhttpから始まっているページが表示されていたことです。これは明らかにおかしい。。
そこでURLの正規化を試みてみました。
URL正規化でオリジナルのURLを明示する
独自ドメインやレンタルサーバー周辺の設定は正しく済ませているはずなので、このような異常が発生した原因は分りません。
しかしHTTPSでサイトを作成したのにHTTPのページも作成されて、しかもインデックスされてしまっていることは確かです。つまりURLが異なるのに内容が重複している記事が2ページずつ存在するということになります。
そこでHTTPではなくHTTPSのコンテンツが正しいということを検索エンジンに伝えるために、URLの正規化を行うことにしました。
URL正規化によりHTTPSがオリジナルのURLであることを明示すれば、HTTPへ流れていたアクセスをHTTPSへ誘導することが可能なはずです。
ただ一口にURL正規化と言っても、様々な手法が存在します。
今回の場合はすべてのアクセスをHTTPSのページに流したいので、301リダイレクトを行うことにしました。
301リダイレクトによりURLを正規化する
リダイレクトとは、あるURLにアクセスしたユーザーを別のURLへ転送することですね。
つまり301リダイレクトを利用すれば、HTTPのページにアクセスしたユーザーを自動的にHTTPSのページへ転送することが可能というわけです。
また301リダイレクトはユーザーを転送するだけでなく、転送元のURLに対する検索エンジンの評価を転送先のURLに引き継ぎます。
今回は作成してから間もないサイトなのでほとんど効果はないかもしれませんが、HTTPSとHTTPのページで評価が分散してしまっていた場合でも、301リダイレクトを利用すれば評価を統合することが可能です。
301リダイレクトの設定方法
301リダイレクトのやり方についてはEllora氏の記事を参考にさせていただきました。ありがとうございます。Naifixには昔からよくお世話になっています。。
参考:エックスサーバー独自SSLが無料!WordPressサイトをHTTPS化する方法|Naifix
301リダイレクトを設定するには、.htaccessを編集する必要があります。これはWordPressで作成したサイトなら自動的に作成されているようです。
FTPクライアントを利用してパソコンにダウンロードした.htaccessをメモ帳などのテキストエディタで開いて、下記の5行を「# BEGIN WordPress」よりも上の位置に記述します。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule>
追記して保存したら、新しい.htaccessをFTPクライアントでアップロードして上書きしましょう。
これで301リダイレクトに必要は作業は終了です。
301リダイレクト設定後のサイトの挙動
301リダイレクト設定した直後には、HTTPのページにアクセスしてもHTTPSへ転送されるようになりました。リダイレクト自体は即時に反映されるようです。
また約3時間後には、タイトルで検索すると当該記事のHTTPSページが1位に表示されるようになりました。
サイト名で検索するとHTTPのURLが表示される問題に関してはやや時間を要し、HTTPSのURLが表示されるまで3日ほどかかりましたが、これですべての問題を解決することができました。
アクセスされなくなったHTTPのページはそのうちインデックスが外れていくでしょうから特に手を加える必要はありません。
ただ今回は新規サイトだったので3日程度で片が付きましたが、サイト規模によってはもっと時間がかかるかもしれないです。301リダイレクトを設定してもサイトの外観が変わるわけではないので上手くいっているのかどうか不安になるかもしれませんが、設定後はしばらく様子を見てみましょう。
まとめ
HTTPSでサイトを作成したにもかかわらずHTTPのページがインデックスされて検索結果に表示されている場合、HTTPSとHTTPで重複コンテンツを生み出してしまっている可能性が高いです。
HTTPSで作成したならHTTPのページにアクセスされる必要は一切ないので、301リダイレクトによりURL正規化を行いましょう。
301リダイレクトの設定は.htaccessを編集するだけで簡単に済みますが、その効果が表れるまではいくらかの日数を要します。サイトの規模によってはかなり時間がかかるかもしれませんが、焦らずにしばらく様子を見ましょう。