いまではもう無効になった内容を含んでいるかもしれないことをご了承ください。Cacheというキャッシュプラグインのせいだったということがなんどかありました。毎回説明するのが大変なので、書いておきます。Cacheはどういう仕組みか通常のWebサイトというのは、ユーザーから求められたリクエストからPHPなりRubyなりPythonなりが求められるデータを推測し、データベースに対して適切な操作を行い、最終的にHTMLを書き出します。動的なサイトがリクエストを受け取って処理する仕組みで、Webサイトが重くなる原因(ボトルネック)は色々あると思うのですが、てっとり早い方法はキャッシュです。キャッシュというのは、一定の処理結果に名前をつけておき、それを保存しておくことです。Cacheの場合、WordPressが行う処理すべてをキャッシュします。CacheはWordPressの処理をスキップするこれは劇的な効果を生みますが、方法としてはかなり大雑把ですので、問題も当然発生します。それは、「どのユーザーが見ても同じ情報になってしまう」ということです。コメントを投稿したのに、そのコメントがページに反映されていなかったら、「あれ?」っとなってしまいますよね。それどころか、投稿編集画面で投稿を保存しても保存されなかったりしてはそもそもブログの運営ができなくなります。Cacheはそれなりに作り込まれたプラグインなので、こうした問題を避けるために以下のようなデフォルト設定を行っています。以下)はそもそもキャッシュしないキャッシュには有効期限を設定するコメントを投稿した直後のユーザーにはキャッシュを提供しない(=自分のコメントが投稿された後のページが表示される)他にも色々と工夫はありますし、設定も変えられるのですが、デフォルトでは通常のブログ記事として利用する限りは最適化されるようになっています。この、「通常のブログ記事としては」というのがポイントです。みなさん、日経新聞のサイトを見るときでもなければ、Webサイトを見るためにログインしないですよね。AmazonやFacebook、Twitterを見る場合はほとんど必ずログインしています。WordPressというのは基本的にブログサイト用のCMSなので、ECサイトやSNSは想定していないわけですね。どんな問題が発生しうるかさて、このキャッシュ系プラグインの利用の仕方によっては、サイトの存続に関わる重要なサービス上の不備が発生しえます。Twitterみたいなサイトなのに投稿できないWordPressで会員制サイトを作っていて、ユーザーが投稿できる機能を作っていたとしましょう。WordPressで管理画面以外から投稿させる機能を作るとかを参考にしてください。Cacheを使っていると、「投稿したにも関わらず、自分の投稿は反映されない上、同じ投稿フォームが表示される」という悲劇が起こります。本来なら投稿を保存して「投稿が保存されました」などとメッセージを表示すべきだったページがキャッシュを返すことで処理をスキップしてしまうのです。これはそもそもWebサイトが提供するはずだった機能を提供できていないので、Webサービスとして体をなしていないですね。ECサイトで購入履歴ダダ漏れちょっと前にメッセサンオーでエロゲー購入履歴が晒されて阿鼻叫喚という事件がありましたが、購入履歴ページというのは個人の履歴に紐づく重要なページです。いうURLで表示されます。Cacheを何も考えずに有効化していると、「ユーザーAの購入履歴がユーザーBの購入履歴として丸見え」というとんでもない事件が発生します。これはサイト存続に関わる大問題なので、くれぐれも起きないようにしたいですね。会社だったら潰れてもおかしくないですよ。ちなみに、WordPressのECプラグインWelcartでもキャッシュでひでぶした事例は報告されています。Cacheには「既知のユーザーにはキャッシュを提供しない」という項目があるので、これを使えばよいような気もしますが、ケース・バイ・ケースです。Cacheの基本的な理念は「ブログ記事は誰が見ても同じだから、全部キャッシュしちゃえば超早いじゃん」です。開発者に尋ねたわけでもないのに、言い切ります。どのようなサイトかにもよりますが、ほとんどのユーザーがログインしているようなサイトにおいてページキャッシングはあまり意味を持ちません。ログインユーザーが増えれば増えるほど、キャッシュを提供する機会が少なくなっていくからです。他にも特定のUserAgentに別のキャッシュを提供したり、特定のURLをキャッシュ対象から除外したりできますが、基本的にはサイト構成によってどこまで負荷をトレードオフするかという判断を求められます。ここで「こうやっておけばOK」という例を提示することは難しいです。キャッシュは結構難しいキャッシュには色々な方法があり、WordPressのプラグインでは以下のものがあります。APIなどがそうです。これは「Twitterの最新ステータスを取得して表示する」といった場合に有効ですね。僕もWP-HamazonというAmazonのアフィリエイトリンクを生成するプラグインで使ってます。Cacheや先述したMemcachedなど、WordPressに限らずWebサイト全般で使えるキャッシュ技術があります。installとか)が求められます。キャッシュはデバッグが難しかったりする(問題の再現性が低い)ので、うまく運用するには高度な知識が求められます。以前mixiがMemcachedのバグでうんたらかんたらというニュースがありましたが、CookpadやDeNAとかでも会員制サイトでうまくキャッシュするために優秀なエンジニアが日々努力しているというのが現状ではないでしょうか。Cacheを使おうと思ったか」ということに立ち返ってみましょう。それは、ページの表示速度を上げたかったからではないでしょうか。下記のような代替案を試してください。サーバを引っ越すサイトをどのようにマネタイズしているかによりますが、サーバ代金はメチャクチャ安くなっているので、ここが問題になることはあまりないでしょう。ロリポップじゃないと赤字になるECなんて閉鎖してしまった方がいいです。サーバの引越しは大変面倒ですが、どのサーバでもきちんと動くようにポータブルなサイト作りを普段から心がけましょう。Boosterというのも出ました。CDNについてはおググりください。プラグインを検証するデータが2000万件とか、同時セッション2万とかでない限り、サイトが信じられないぐらい遅くなるのは大抵PHPの問題です。プラグインやテーマ内での特定の処理が変なので遅くなっているのです。これを一つ一つあたっていくのは面倒くさいですが、学ぶことも多いです。Cacheを使いたいのではない、サイトの表示を早くしたいのだ以上です。最近はWebの技術を学びつつ、これからの文芸に何が出来るのかを模索しています。WordPressAudibleで本を聞こう。Linkアウレリャーノがやってくる新潮新人賞受賞の表題作を含む作品集。土地を買い、コツコツと開拓しています。当サイトの人気コンテンツ。高橋文樹が最近の活動報告、サイトでパブリックにできない情報などをお伝えするメーリングリストです。滅多に送りませんので、ぜひご登録お願いいたします。お得なダウンロードコンテンツなども計画中です。その他このサイトについて小説家が自ら情報を発信するブログ高橋文樹は日本の小説家です。DIYなど、様々な取り組みをこのブログで紹介していきます。墓』の最後を推理する。司法取引の結果、日本最高のAGI(汎用人工知能)が収容された施設に単身突入させられたユーリ。Marketに新規上場を果たした。(必須)サイト作家デビュー20周年記念事業プロジェクト・アウレリャーノというものをはじめました。ご支援よろしくお願いします!。