QA Heatmap Analyticsの負荷対策やプラグインの競合について

QuarkA

開発の丸山です。
こんにちは。

今日は多くの人が気にされる

  1. データ容量大丈夫?
  2. プラグインの競合は?
  3. プラグインは重い?サイトの表示速度は遅くならない?

の3つに対し、QA ヒートマップアナリティクスがとっている対策についてお話しします。

1.データ容量について

GDPRなどプライバシー保護の問題から、GoogleアナリティクスやMS Clarityなどの外部サービスにアクセス解析データをためることが難しくなってきています。事実iPhoneなどのアップル製品では、ITPと呼ばれる仕組みでGoogleアナリティクスでのユーザー追跡をブロックしてしまいます。

上記の事情から、QAはデータオーナーシップを大切にしています。データは自社のものとして、皆さんのWordPressサーバーにファーストパーティデータを保存し、我々が閲覧することは不可能にしています。

しかしその事により、レンタルサーバーのデータ容量は大丈夫なの?と不安になる方もいらっしゃると思います。

これに対する直接のご回答は、今後のバージョンアップで、使用しているディスク容量について表示する予定です。ですので、より安心して使って頂けると思います。

ただ基本イメージとしてもって頂きたいのは、QAを使うことで問題は発生しないということです。なぜなら、QAは多くの人が利用する無料プランについて「絶対に問題が発生しないデータ容量にする」という考え方をしています。

具体的には、無料プランでは、アクセス数データは全ページ取得しますが、容量の大きいヒートマップや録画再生データについては初期1ページのみ取得できるようにし、保存期間も2ヶ月間にしています。

これにより、月間数十万PVがあるサイトでも、QAのデータ容量は最大で数百メガバイト程度になり、一般的なレンタルサーバーでも50GB以上のデータ容量があることから安心して使って頂けるようにしています。

ということで、データ容量については安心して頂ければと思います。
有料プランはどうなるの?といったより詳しいことは、下記をご覧ください。

データ容量について(詳細)

前提:共用レンタルサーバーには2つの上限(ディスク容量とDB容量)がある

意識はされている方は少ないと思いますが、ほぼ全ての共用レンタルサーバーにはディスク容量とは別に、DB容量の上限があります。
一般的にディスク容量の上限は数十GBから数百GBと大容量なのに対し、DB容量は1GBが上限、下手をすると500MBなどすごく少ないです。

万が一データ容量が溢れると何が発生するか?というのは各レンタルサーバーによって違いますが、多くの場合、「データが多すぎるので消してくれ」と警告が出ます。ただし、DBが上限を超えた場合、厳しい会社では警告と同時にサーバーが強制停止します。

したがって、QAの第一優先事項は「データ容量(特にDB)を絶対に溢れさせない」ということになっています。
※厳密にはファイル数も上限があるのですが、複雑になってくるためここでは触れません。考慮済みであることだけお伝えしておきます。

QAのデータ容量に対する設計ポリシー

前述の事情から、QAはデータをDBとディスク(ファイル)に巧みに使い分けながら稼働します。
具体的には、DBに保存する容量を少なくし、ディスク(ファイル)に保存する期間を長くしています。このことにより、データ容量の節約と有効活用、およびサーバーのスピードアップの一石二鳥を実現しています。

どんなデータを保存しているのか?

具体的には、QA ヒートアップアナリティクスは、MS クラリティ+Google アナリティクスの二つの膨大なデータを保持しているイメージに近いです。二つを保持するのでQA “Heatmap”+ “Analytics”といいます。

このうち、圧倒的にデータ容量が大きくなるのはHeatmapの方のデータです。そこで、なるべくHeatmapの方のデータを削減する工夫が求められます。

実はQAプラグインを導入する方で、一番多い目的は「今、何人の人が来ているか?」「1ヶ月で何人訪れたのか?」「サイトをどのように閲覧しているのか?」を手軽に知りたいというものです。これはGoogleアナリティクスと同じです。

そこで、私たちは、無料でお使いの方にはより使いやすいGoogleアナリティクスのような機能と、ヒートマップの一部機能を提供することにしました。一方、有料でお使いのプロレベルの方には、ヒートマップも全ページ取得できるようにして有料レベルのサポートサービスをつける、ということを行っています。

これが、QAが無料でもGAのようなレポートは出るけど、ヒートマップ計測が1ページだけになっている理由です。このことで容量を削減できるので、無料でお使い頂いている分には、サーバーのことは何も心配せず運用できるようにしています。

一方、よりビジネスユースや、プロの方は過去データも含め多くのデータが必要になって来ます。しかし、ビジネス畑の方全員がサーバーに詳しいわけではないので、全ページのデータをレンタルサーバーに保存することが不安な方もいらっしゃると思います。そこで有料プランの人には、サーバー環境事前調査など、よりきめ細やかなサポートサービスも用意しています。

このことにより、プロの方はよりブログ読者様も喜ぶコンテンツ作成ができるようになり、かつサポートが付きますので安心してQAをお使い頂くことができます。

そして有料プランをお使い頂くことにより、我々QAチームは開発原資を得ることができますので、どんどんバージョンアップもできます。これは三方よしのアイディアだと思っております。

2.プラグインの競合について

よく「あるプラグインを入れたら、別のプラグインが動かなくなった」という話を聞かれると思います。この現象は一般的にプラグインの競合と言われています。

QA ヒートマップアナリティクスは、なるべく競合が発生しないように作成していますが、それでも以下のプラグインと同時に使う場合には問題が発生する場合があります。

1.表示速度UPのためのキャッシュ系のプラグイン(WP Fastest Cacheなど)
2.全ファイルをチェックするセキュリティやバックアップ系のプラグイン

上記それぞれの原因と対策について詳しくはFAQに掲載していますのでご覧ください。

プラグイン競合の根本原因とQAがとっている対策

そもそも「なぜプラグインの競合が現象が発生するのか?」、また「既存プラグインや既存テンプレートと、高精度かつ膨大なデータをもつQAの相性が悪いことがあるのか?」というと、主には3つの原因があります。

  1. WordPressの共通の関数(フックやフィルターと言います)を様々なプラグインが使い回すため
  2. JavaScriptやCSSなどのネーミング被りや、勝手にJavaScriptやCSSを書き換えてしまうプラグインがあるため
  3. QAほど高精度でデータを保存するプラグインは今迄存在せず、多くのプラグイン制作者の想像を超えているため

この中で、1の共通関数については、なるべくQAでは使用しないことで競合を避けています。したがって、QAを入れた時に問題となるのは主に2と3です。

2については、まずQA側では必ず他と被らない名前をつけるようにしています。しかし、例えばJavaScriptを圧縮し勝手に書き換えてしまうようなキャッシュ系のプラグインについてはQA側では対策の打ちようがありません。従って、この対策は、キャッシュ系(書き換える側)のプラグインの設定を変更して頂く必要があります。

3については、多くのプラグイン製作者の想像外ということが問題になるケースがあります。特に下記2つのプラグインに気をつけてもらいたいです。

  • バックアップ系プラグイン
  • セキュリティ系プラグイン

たとえばバックアップで有名なUpDraftプラグインなどは、バックアップする容量に10MBという制限が設けてあります。従ってアクセスが多いサイトでQAを使った場合には容量がその制限を超えてしまうことがあります。

このように、QA側ではなく、既存のプラグインやテンプレート作成者の想定外が発生し動かなくなることがあります。主な対策はこちらの記事をご覧ください。

3.プラグインは重い?サイトの表示速度は遅くならない?

最後にプラグインが重いかどうかですが、QAプラグインはとても軽く作っています。
実際にP3という、プラグインの重さを診断するプラグインがありますが、そちらを利用して頂いてもQAは表示されません。

※参考記事

そもそも、プラグインが重いとは、具体的には下記を指します。

  1. プラグインのせいでサイトの表示速度が遅くなる(SEOやブログ閲覧者にとって大問題)
  2. WordPressの管理画面を操作した時に、表示が遅い(サイト表示には問題なし。多くは管理者のパソコンの問題)
  3. データ容量が大きすぎて、なんか不安(サーバーが止まることがあるので大問題)

上記のうち、一般的には1番を「プラグインが重い」と表現します。
前述したP3という診断プラグインは、このサイトの表示速度に影響を与えるプラグインを特定します。そのP3でQAが出てこないのは、サイトの表示速度に影響を与えないようにQAを設計しているためです。

具体的には、どれだけ多くのユーザーがアクセスしてきても、QAはデータベースへのアクセスを行いません。またアクセスの記録も3秒毎に行うことで、サーバーへのリクエスト数を少なくしています。

また夜間の集計処理の時にはデータベースにアクセスしますが、そちらもバルクインサートという一括処理を使うことで負荷を極力減らしていますし、万が一夜間集計処理に時間がたくさんかかってQA側の不具合が出たとしても、サーバーの閲覧速度には影響が出ないようにしています。

1点だけ、AWSやGCPなど「専用サーバーでWordPressを構築されている」場合は、気をつけて頂きたいです。その理由は、毎月の費用を抑えるためCPUやメモリなどサーバースペックをギリギリにされていたり、実はサーバーセッティングに不備がある場合があるからです。詳しいことはサポートサイトのインストール時の注意点をご覧ください。

総じて、普通のセキュリティプラグインなどと同等レベルの負荷しかしないので「QAはサイトの表示速度には関係ない」「QAは軽い」と思って頂ければと思います。

しかし、なんとなくQAが重いのでは?と心配になる人もいらっしゃると思います。
そこで2番、および3番についてご説明します。

2番のWordPressでQAのデータを閲覧した時に、表示が遅いことがあるので心配になる方も多いと思います。
実はQAは、管理画面においてもサーバーに負荷をかけずに、なるべく皆さんのパソコン側に負荷をかけるように設計しています。
具体的には、データを皆さんのパソコンに一旦ダウンロードしてから、集計処理などはみなさんのパソコンでほとんど行うようにしています。

ですので、データ表示に時間がかかっていたとしても、それは皆さんのパソコン側の処理に時間がかかっているだけで、サーバー側には一切負荷がかかっていないのです。仮にQAの管理画面でぐるぐるマークで止まったとしても、ブログ閲覧ユーザーはその間も快適にサイトを閲覧できています。ご安心ください。

最後の3番については、この記事の冒頭「データ容量について」でご説明した通り、絶対にサーバーに問題が発生しないように設計しています。
ですので、データ容量の問題も発生しません。

まとめ

今回の記事では、QAプラグインの負荷や重さについてご説明してきました。
まとめると「QAプラグインは軽く設計しているので、安心してご利用ください」ということになります。

QAはグーグルアナリティクスなどと違い、面倒なタグの設定などをせずともインストールするだけで必要なデータ収集を行います。

ぜひ安心してQAをサイト改善のお供として役立てて頂ければ嬉しいです。