Use cookie-free domainsの対策を試みた

   

うまくいかなかった!

WordPressでYSlowの「Use cookie-free domains」の対策をしようと思って試行錯誤をした記録です。
GTmetrixで測定したところ、ここだけ怒られたので。
結果からお伝えすると、うまくいきませんでした。
いや、うまくはいったのですが、Cloudflareが設定されていればここの値は無視していいようです。
ググったところ、日本語のページが少なかったので、需要は少ないのかもしれません。

「Use cookie-free domains」って何?

要は、静的なコンテンツ(画像など)をブラウザからサーバに要求するときに、一緒にCookieを送るのを止めましょう、という話です。
1回のリクエストで送られるCookieのデータ量は少ないですが、ちりも積もればなんとやらです。
「PRIORITY」は「low」なので対策してもたかがしれてます。
それよりも、画像のサイズを小さくする方が優先順位としては高いでしょう。

YSlow

参考にしたサイト

日本語のサイトが存在しなかったので、頑張って読みました。この辺のサイトを参考に。
http://wp.tutsplus.com/tutorials/10-quick-tips-optimizing-speeding-up-your-wordpress-site/
http://www.xpertdeveloper.com/2011/07/wordpress-cookie-free-domain/

やったこと

ドメインを2つに分けて、片方に静的なコンテンツを配置する。もう片方はクッキーありのドメインとして設定する。

  1. サイトを「www無し」から「wwwあり」へ変更
  2. サブドメインの作成
  3. 設定の変更

サイトを「wwwなし」から「wwwあり」に変更

「http://engineacher.net」から、「http://www.engijeacher.net」に変更する。
なんでこの作業をやるかというと、サブドメインによってCookieの有り無しを分けたいから。
一番上の「http://engineacher.net」をCookieありにしてしまうと、そのサブドメインも全てcookieが有効になってしまう。

「設定」→「一般設定」から、ここをwww有りに変更する。
ChangeURL

サブドメインの作成

サーバはロリポップを使っているので、サブドメイン設定から「http://static.engineacher.net」を追加する。
SubDomain

ここで重要なのは、上の「www.engineacher」と、下の「static.engineacher」の公開(アップロード)フォルダを同じにしておくこと。
右側の設定変更から設定できます。staticの方を、上のwwwの公開フォルダと同じにしておきましょう。

設定の変更

wp-config.phpに、以下のコードを追加します。W3 Total Cacheの設定が入ってますが、追加するのはどこでも良いでしょう。

define('WP_CONTENT_URL', 'http://static.engineacher.net/wp-content');
define('COOKIE_DOMAIN', 'www.engineacher.net');

何をしているかというと、1行目は「WP_CONTENT_URL」を「http://static.engineacher.net/wp-content」に変更します。
ここのサイトを見ると、/wp-contentまで含まれているようです。
この設定をすることにより、画像ファイルのURL:
「http://www.engineacher.net/wp-content/uploads/aaa.jpg」が、
「http://static.engineacher.net/wp-content/uploads/aaa.jpg」に変更されます。

2行目は、Cookieを使うドメインは「www.engineacher.net」ですよ、という宣言。
ということは、「static.engineacher.net」はCookie使いませんよ、ということになる。

これで大丈夫なはずです。W3のキャッシュを削除し、Cloudflareを解除してテストを走らせてみます。

use-cookieless

Cloudflareを止めたのでスコアはぼろぼろですが、一番下、「Use cookie-free domains」は解決されています。やった!

Cloudflareを止めたら「Use cookie-free domains」は解決!

というわけで、Cloudflareをとめたら解決しました。
いろいろ試行錯誤して頑張ったのですが、結局Cloudflareを止めるわけにはいかないので、そのままです。
何らかの理由でCloudflareが使えない場合は、この対策をしてみると良いのではないでしょうか?

Cloudflareの設定はhttp://gori.me/wordpress/28488を参考にすると良いです。
あとはhttp://gori.me/wordpress/28494とか。このサイトは便利でわかりやすいのでおすすめです。

ついでに

CloudflareのDNSの設定も書き換えておいた方が良いかも。
DNSのAレコードに「static.engineacher.net」、IPアドレスは「www」のものと同一で良いでしょう。

何かありましたらコメントを残しておいていただけるとうれしいです!

 - WordPress , ,