WordPressサイトをHTTPS化(SSL/TSL対応)する際の作業手順とポイントまとめ

待ったなしのHTTPS対応

気が付くと約1年ぶりの更新とか。

さて、昨年11月のGoogleの順位変動が勤め先で管理してるいくつかのサイトを直撃してPVが下がりました。原因の一つとしてHTTPS対応してないせいかもしれない。ということで管理下の全サイトをHTTPS化しました。
十数か所のサイトをHTTPS対応にしてある程度知見が溜まってきたので放流します。

このまとめの適用範囲

  • レンタルサーバー(ロリポ、ヘテムル、お名前.com等GMO系、さくら、エックスサーバーなど)で運用している。
  • Let's Encryptの証明書を使う。
  • サイトは主にWordPressで運用している。

作業手順とポイント

1 レンタルサーバーの管理画面でSSLを有効にします。
今では主要なレンタルサーバーでLet's Encryptの証明書を導入できるようになりました。証明書の取得などもレンタルサーバーの管理画面からボタン一つで済むのでやらない理由はないです。

2 HTTPS接続が可能になったことを確認。
レンタルサーバーによって差があるものの、1時間くらいでhttps://で接続できるようになります。それまではアクセスしてもエラーが出るだけなので注意。

3 WordPressのファイル類(php, css)をすべてチェック。http:://の記述をhttps://に変更。変更後はローカル環境で表示に影響がないことを確認。
httpsでの接続が可能になるまでの間、WordPressのファイル類のチェックを行うと効率的です。
テキストエディタの検索・置換機能を使うと比較的スムーズに行えます。

4 サーバーにファイル類をアップロードして確認。
httpsでの接続が可能になったことを確認してから3で直したファイルをアップロード。URLをhttps://に変更してちゃんと表示されていることを確認します。

5 WordPressの管理画面でサイトアドレスを変更。
WordPressの管理画面 設定→一般 で一般設定の画面に行き、WordPressアドレス、サイトアドレスともにhttps://に変更します。
変更後、保存ボタンを押すといったん管理画面からはじき出されるので再度ログインします。
この段階で特殊な場合を除いてほとんどのページはHTTPS化が完了します。

6 文字列の検索、置換プラグインを導入してhttp://*https://*に変更。
今回は検索・置換プラグインにSearch regexを使用しました。ただ、このプラグインは最後のメンテナンスが2年前なので本来はちゃんとメンテナンスされている他のプラグインを使うべきでしょう。ググってすぐに使い方の解説記事が出てくるのと、操作が分かりやすいこと、一時的にしか使用しないことからこれを使いました。置換作業が終わったら速やかにプラグインを削除します。(残しているとセキュリティホールになる可能性が高いですから)

7 全ページをチェック。アドレスバーに鍵マークが正常に表示されていることを確認する。
All in one SEO packプラグインが自動的に生成するサイトマップにはページへのリンクがついているのでこれを使うとチェックが早く済みます。

上記の手順を踏んでもまだ「保護されたページ」にならないページがある場合

管理画面の「パーマリンク設定」を更新

WordPressの管理画面 設定→パーマリンク設定 でパーマリンク設定画面を開き、「変更を保存」ボタンを押します。
ほとんどの場合、6の手順の段階で切り替えが終わりますが、まれにソースには問題がないのにアドレスバーに鍵マークが表示されず、iマークをクリックすると「このサイトで目にする画像は、悪意のあるユーザーによって差し替えられたものである可能性があります。」との警告が表示されることがあります。
パーマリンクの更新をすると解消することがあります。

プラグインやカスタム投稿タイプでの画像の登録を疑う

スライドショーなど、画像を登録するプラグインではまれに、登録した画像を上げ直さないといけない場合があります。これはもう地道に一つずつやっていくしかありません。
データベースを直接いじってhttpの文字列をhttpsに一括置換することもできるかもしれませんが、カスタムフィールドやカスタム投稿タイプを使っている場合、文字列長と一緒に管理されている可能性もあり、文字列長が一致しないとトラブルが発生する可能性があるので怖くてやっていません。

ちなみにデザインが良いと評判のTCDのテーマは、この一つ一つ修正しなければならないパターンが多いため、使っている人は頑張ってください。独自の機能のところがことごとく画像データの上げ直しとなります。

HTTPS対応と表示速度の向上の結果

HTTPS対応とともに表示速度も上げた結果、PV、検索順位とも回復したので、昨年11月の順位変動の要因はHTTPS対応の有無が一つの指標だったのではないかと考えています。
ちなみに表示速度の向上については以下の施策を実施しました。

  1. PHPのバージョンが古いものを7に切り替え
  2. 画像サイズの適正化と圧縮
  3. mod_pagespeed やgzip圧縮の導入

上2つが結構効果的で、特にHTTPレスポンス時間は半分以下になることも。ただし3番目の施策を実施するとレスポンス時間がPHP7へのアップデート前と同等になり、実測では導入しない方が表示時間が短縮できます。
ただしGoogleの評価は上がるので、SEOを優先して3番目も導入しています。

なお、サイトの表示時間を最も遅くしているのは、FacebookウィジェットGoogleマップです。それぞれ2〜3秒ずつ表示速度を遅くするため、これらの削除が最も効果的な対策となります。