SNI SSL+WordPressの設定(さくらインターネット)

GoogleがSSLを評価基準にするとアナウンスされて、サーバ各社さんもSSL対応を強化してきました。弊社が使っています"さくらインターネット"のサーバにも、2015年に入りSNI SSL対応になりました。この事で、今までより特にコスト面で容易にSSLに対応する事ができるようになりました。(※:mod_rewriteが使えなくなったので現在は使用していません)

ただ、一部のサイトでは、さくらインターネットのサーバのSNI SSLで、WordPressを使用する場合、「wwwアリの設定ができない」、と書かれていましたので、実際には、そうではなく、wwwアリもナシも設定できましたので、こちらで簡単ですが、まとめました。

 

2017年4月追記)さくらインターネットでは、SNI-SSLでのmod_reriteの書き換えに対応していないと明記していますので、、これですと、リダイレクトの設定とかにも影響がでてきそうです。現状では、リダイレクトできているようですが、このままでは不安です。サーバ乗り換えのタイミングでしょうか?

「さくらのレンタルサーバ」にて提供しているウェブサーバ (Apache) は、 80番ポートを使用するものと、443番ポートを使用するものとの 2種類に分けられます。 一般的に、80番ポートは「http://」、443番ポートは「https://」という形式でアクセスされ、 「https://」についてはプロクシとして動作します。 そのため、同じディレクトリへのアクセスであっても、その際に呼び出されるウェブサーバ が異なると、 CGIプログラムやウェブサーバが.htaccessなどのファイルを読み込む際、挙動に違いが生じます。 例えば、HTTPとしてアクセスした場合はお手元のコンピュータが、 HTTPSとしてアクセスした場合はサーバそのものがアクセス元となります。 このため、SSLのみのアクセス許可(HTTPアクセスの制限)や、mod_rewriteによるURLの書き換えはできません。

環境変数の取扱い:さくらインターネットより抜粋

2017年1月追記)以下の3.htaccessによるリダイレクトですができなくなっていました。さくらインターネットからもリターンがありましたので、追記しました。

(flow)wordpressがインストール済みで、さくらインターネットでのSSL設定は完了しいてると想定しました。

  1. wordpress管理画面→設定→WordPress アドレス (URL)とサイトアドレス (URL)のhttpをhttpsに変更する。
  2. wp-config.phpに、
     if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
     $_SERVER['HTTPS'] = 'on';
     $_ENV['HTTPS'] = 'on';
     $_SERVER['HTTP_HOST'] = 'www.example.com';
     $_SERVER['SERVER_NAME'] = 'www.example.com';
     $_ENV['HTTP_HOST'] = 'www.example.com';
     $_ENV['SERVER_NAME'] = 'www.example.com';
     }
    

    といった記述を追加する。弊社は上部に記述追加しましたので、実際には、こんな感じになりました。※)MW WP Formを使用される場合、この記述が必須です。

    <?php
    // プロクシでIPが入るとSSLアクセス状態をセットする2015_10
    if( isset($_SERVER['HTTP_X_SAKURA_FORWARDED_FOR']) ) {
    $_SERVER['HTTPS'] = 'on';
    $_ENV['HTTPS'] = 'on';
    $_SERVER['HTTP_HOST'] = 'www.example.com';
    $_SERVER['SERVER_NAME'] = 'www.example.com';
    $_ENV['HTTP_HOST'] = 'www.example.com';
    $_ENV['SERVER_NAME'] = 'www.example.com';
    }
    /**
    * The base configurations of the WordPress.(この下、実際には続きます)

  3. これできなくなっていました。))つぎに、.htaccessに以下の記述を追加しました。この記述は、httpへのアクセスをhttpsにリダイレクトします。(なぜか、うまく行かないケースもあります)

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTP:X-Sakura-Forwarded-For} ^$
    RewriteRule ^(.*)$ https://www.example.com/$1 [R=301,L] </IfModule>

以上の流れ(flow)でWordPressは、問題なくSNI SSL環境で稼働できました。一部のサイトに書かれている様なwwwアリでは対応できない、という事もなく使えています。

記述内に、sakuraとありますように、さくらインターネット独自の何かがあるようにも感じます。

上記ですが、うまくいきませんでしたのでさくらインターネットに問合せましたら出来ないとの事でした。対応策を以下にまとめました。

  1. javascriptでhttp://をhttps://にリダイレクトしました。

     <script type="text/javascript">
     if(location.protocol == 'http:') {
     location.replace(location.href.replace(/http:/, 'https:'));
     }
     </script>
    

    この記述をページの上部に記載しました。<head>タグの直下くらいに記載しました。

  2. canonicalでhttps://としました。

    <link rel=”canonical” href="https://example.com/" />
    これはトップページの例です。各ページのURLを記載する必要があります。

  3. サイト内リンクをすべてhttps://に変更しました。
     <a href="https://example.com/">HOME</a>

    とか、

     <link href="https://example.com/css/common.css" rel="stylesheet" type="text/css" />

    他にも画像リンクもhttps://に変更しました。

後は、sitemap.xmlをhttps://に変更して、searchconsoleもhttps://でアカウントを開設して、、、といったところです。

やってはいけないのは、metaタグのrefreshで、https://にリダイレクトさせるのはNGです。ページがループになってしまいます。

参考資料:さくらインターネットさんの回答-----

SSL通信時にはプロキシサーバを経由してHTTP通信でウェブサーバへアクセスし、ウェブサーバ側でHTTPS環境変数をonにするよう処理いたしております。

しかしながら、mod_rewriteで書き換えを行うとHTTPS環境変数がリセットされてしまいoffになるため、httpsから始まるURLへのリダイレクトはループが発生いたします。

その他の環境変数をご利用いただくことで解決できる可能性はございますが、弊社では「URLの書き換えはできない」ことをを前提としてサービスを提供いたしておりますため、回避策の確認は行っておりません。

----

SSLでランク改善はできるのか?

 

2014年8月にGoogleが発表した
"SSLを使用したサイトの評価を上げる"件について
検証してみました。

 

SSLと検索評価にかんするGoogleのアナウンス(2015年)
https://webmaster-ja.googleblog.com/2015/12/indexing-https-pages-by-default.html

SSLをランキングシグナルに使用する(2014年)
https://webmaster-ja.googleblog.com/2014/08/https-as-ranking-signal.html

 

「結論、検索ランクは改善します!」(3つのケース)

SSL導入によるランク改善第3弾!

以下の表は、左のグレーで見えなくしているのはキーワード、上の15から30までの数字は日付、つまり、ある月の15日から30日の検索結果ランクの変動具合です。右側は、15日間の平均検索ランク。

上の表は、SSL導入前、下はSSL導入後です。

上の表と比較して、検索ランクで何位改善したのか?そして、それは、検索ランクが何割改善できたのか?という定量分析です。

このケースでは、約15%のランク改善がありました。
こちらは、SNI SSL を導入しました。

 

SSLでのランク改善第二弾!
※今回は、自社サイトではなく顧客のサイトでのランキング推移。

graph0223

 SSLにする事で、26%の検索評価が向上したといえる。
(本当は、分布などを鑑みて偏差値化するのがよいのかも知れませんが)

このグラフには入っていないのですが、ビックワードでのランクも確認できました。現在、5位前後です。これもSSLの影響かと思いますが、なにぶん計測していなかったので、このグラフに入れ込むを事ができません。昨年の今頃(2月)は、そのビックワードでは圏外(100位以下)でした。

 

アクセスの感触としては、、こんな感じです。SSLに移行したのは、クリスマスのタイミングでしたので、やはり、アクセスも向上しています。。

analytics2015_0223

 

(以下は弊社サイトでの検証)
以下の表は、弊社サイトの検索ランクの推移です。

SSLに対応したのは9月13日ですので、サンプルとして、非SSL(つまり、通常のhttp)9月1日から10日、SSLのサンプルとして、10月11日から20日、の同じ10日間としました。

この間、意図的にサイトには全く変更(加筆や修正)を加えていません。そして、意図的にランク改善されたキーワードを選択していません。実際に計測しているキーワードが以下のキーワードなので、ほぼ評価する上でニュートラルなキーワードと捉えて大丈夫かと思います。

ssl_evidence1021

上の図で、上はSSLナシ。下はSSL対応後です。最上段の1から10は、対象とした10日間を意味しています。それ以外の数字は検索ランクです。実際にはランクダウンしたキーワードもありますが、全体的には6.3位向上しています。改善率としては、15.21%改善しています。

※)ランク差:非SSLのランク平均からSSLのランク平均を引いて、一番下の数字は単純ですが縦に合算しています。
※)改善率:非SSL時のランクから、何割改善したのか?といった計算をしいてます。

 

検索クエリも改善されていました。

2014_09 2014_10

上が9月で下が10月です。微妙にザックリですが計算値通り15%(もしくはそれ以上)改善されたようです。

 

SSLへは301リダイレクトを設定しています。NonSSLからSSLへの以降時に検索からの流入ダウンが想定される。これは、一般的に、サイトの移転やコンテンツのURL設計の変更時におきる事ですが、実際どれくらいなのか?

検索クエリの変動具合をグラフにしてみました。期間は、NonSSLをSSLに変更直後から一ヶ月としています。

query1103

これを見る限り、微妙なダウンはあるのですが、今までのサイト移転やコンテンツ移転の際のランクダウンほどではない様にも感じます。これはGoogleの検索エンジンが改善された、という事かもしれません。

SEO施策のTips+チェックFlow

 

( SEO施策のTips )

 

( SEOのチェックFlow )

  1. アクセスを想定するキーワードについて、キーワードトレンド、検索数、競合具合、広告の場合のクリックレートなどを取得。GoogleのCORRELATEツール(キーワードトレンドの逆、つまり、一定のcsvデータから、関連するキーワードの取得ができる)の活用も想定する。
  2. 要求するキーワードの絞り込み→絞り込みキーワードと関連キーワードサジェストキーワードを取得してキーワードの再検討→ますはキーワード確定(後々柔軟に変更も想定する)。
  3. 対象業界を加味したサイトの構造化イメージ草案(URLの最適化も含む)→サイトマップ化。
  4. 複数サイトがあり統一する場合はには、その部分のサイト構造化や検索評価の引き継ぎ(301リダイレクトでも引き渡しに6ヶ月ほど、なのでこの期間の旧ドメイン維持も必用)の設定関係も以下のスケジュールに想定する。
  5. 現行のサイト構成を最適化する為のスケジュール作成。同時に、Googleプラス、Googleマップ、YouTubeなどGoogleの検索メニューに関連したコンテンツアイディア、fbページ作成→最適スケジュールとの関連づけ。特にマップはハガキによる承認をとっているので、その期間(1週間ほど)も想定する。(TipsこれらはSEO的に有効)
  6. 対象サイトの外部リンクチェック。
  7. 検索エンジンは、どの様に対象サイトを捉えているのか?
  8. 想定するキーワードでの検索ランク及び着地ページチェック。
  9. スクリーミングフロッグ SEO スパイダーを使って、すべてのタイトルタグとメタタグの内容と文字数チェック、エラーコードチェックも可能。
  10. さらにwebマスターツールにて、クロールエラーやメタタグの重複などのチェック。同時に、sitemap.xmlが正しく認識されているのか?ページ数ともマッチしているか?
  11. authorタグ、ダブリンコアの追加やOPGタグの設置→最適化。
  12. 画像のaltタグやアンカーテキストの確認→最適化。
  13. 重複コンテンツはないか?(URL設計の最適化、canonicalタグの管理、コンテンツの移転や正規化)
  14. 不自然に重たい画像は?写真なのにjpg以外の拡張子は?など画像の最適化チェック。
  15. ヘッダーcssやjavascript の最適化。一部フッタに移動など。
  16. PageSpeed Moduleを使ってサーバスピードの最適化。
  17. webマスターツールのPageSpeed Insightsに対応(ブラウザキャッシュの設定や画像圧縮など)→GTmetrixで対策前後スピード計測、analyticsでのスピード計測可能。
  18. analyticsタグ設置→外部リンクチェック、まちがったURLへのアクセスに301リダイレクト設定して正規化。
  19. Googleのclosure-compilerをつかってjavascriptのコンパイルを試みる。
  20. LESSコンパイラーを使ってCSSの最適化を。
  21. DMOZ(Open Directory Project)へのサイト登録申請。
  22. facebookのコメントボックスやライクボックスを設置する。SNS(fb、Twitter、Google+)ボタンを設置する。
  23. サイト内検索を設置する。(サイト内での検索キーワードがかわる)