[試] 表示速度改善のその先へ!進化するWordPressプラグイン SNS Count Cache

2015/02/01
約12分
41
7
74
52
0
174
サイト表示速度高速化
,
[試] 表示速度改善のその先へ!進化するWordPressプラグイン SNS Count Cache

表示速度改善だけでなく、SNSのシェア数データ分析にも活用してみてはいかがでしょう。

WordPressプラグイン SNS Count Cacheアップデート(Version 0.4.0)のお知らせです。

プラグインをご利用頂いている皆様からのリクエストを踏まえて、様々な改善を行いました。

スポンサーリンク

アウトライン

スポンサーリンク

WordPressプラグイン SNS Count Cacheとは

intro-update-wordpress-plugin-sns-count-cache-3-01

概要

SNS Count Cacheは、Twitter、Facebook、Google+、Pocket、はてブのシェア数とFeedlyのフォロー数をキャッシュするWordPressプラグインです。表示時にネットワークを介さずキャッシュ経由でシェア数を取得できるようになるため、複数の記事、複数のSNSにまたがるシェア数取得時に表示速度の改善が見込めます。

WordPress › SNS Count Cache « WordPress Plugins

効果

参考まで、当プラグインを活用してシェア数を表示したトップページの速度評価を掲載しておきます。計測サイトは、GTmetrixです。

「SNS 5種類(はてなブックマーク、Twitter、Facebook、Google+、Pocket)x 15記事」と「シェア数合計 x 5記事」で計80個のシェア数を表示しているにもかかわらず、ページ読込時間が1秒代前半と比較的よい結果が得られています。※もちろんこのプラグインの効果だけではなく、その他様々な施策を実施した総合的な結果です。

intro-update-wordpress-plugin-sns-count-cache-3-18

留意事項

このプラグインは、シェア数を取得し、キャッシュする機能とキャッシュ上のシェア数にアクセスする関数のみ提供します。関数の利用方法については、本プラグインの管理ページ([WordPress管理メニュー]→[SNS Count Cache]→[Help])を参照して下さい。

アップデート内容

主なアップデートの内容は以下の通りです。基本機能の拡張に加えてコンテンツ数が多いサイト向けの修正を行っています。

またシェア数データエクスポート機能の追加により、シェア数を分析用の基礎データとして扱えるようになりました。詳細は後述します。

  1. キャッシュ参照関数の見直し
  2. シェア数合計参照関数の追加
  3. Feedlyフォロワー数の対応
  4. カスタム投稿タイプの対応
  5. シェア数データエクスポート機能の追加
  6. 管理ページの改善
  7. キャッシュロジックの改善

キャッシュ参照関数の見直し

後述のフォロー数対応に際し、キャッシュ参照関数の見直しを行いました。キャッシュ参照には以下の関数をご利用下さい。

前バージョンの関数は、下位互換のため残しており継続利用できます。
ただし新関数への移行を推進するため、非推奨とさせていただきます。新関数への置き換えをご検討頂ければと思います。

Function Description
scc_get_share_twitter() Twitterのシェア数を返す
scc_get_share_facebook() Facebookのシェア数を返す
scc_get_share_gplus() Google+のシェア数を返す
scc_get_share_hatebu() はてなブックマークのシェア数を返す
scc_get_share_pocket() Pocketのシェア数(正確にはブックマーク数)を返す。
scc_get_share_total() 上記シェア数の合計を返す

シェア数合計参照関数の追加

上記「scc_get_share_total()」関数を使用することで、当該記事のシェア数の合計を取得できます。

これを応用することによって、以下のように記事リンクにシェア数の合計を表示できます。

intro-update-wordpress-plugin-sns-count-cache-3-06

Feedlyフォロワー数の対応

Feedlyのフォロワー数についてもキャッシュできるようになりました。以下キャッシュ参照関数でキャッシュからフォロー数を取得可能です。

Function Description
scc_get_follow_feedly() Feedlyのフォロワー数を返す

Feedlyのフォロー数表示にご利用ください。

カスタム投稿タイプの対応

postやpage等の一般的な投稿タイプに加えて、カスタム投稿タイプのコンテンツもシェア数のキャッシュ対象にできるよう機能拡張しました。

対象とするカスタム投稿タイプを設定画面で登録する必要があります。具体的な方法については、こちらを参照して下さい。

シェア数データエクスポート機能の追加

キャッシュされたシェア数のデータをCSVファイルとしてエクスポートする機能を実装しました。

これにより「サイト全体でどれだけシェアされているのか?」、「どの記事のシェア数が多いのか、のびてきているのか?」等、SNSシェア状況の分析にキャッシュとして蓄積されたデータを有効活用できるようになりました。

サイト運営の基礎データとして活用してみてはいかがでしょうか。具体的には、シェア数の見える化と傾向分析ができるので、コンテンツの評価等に役立てられると思います。

以下は、エクスポートされたCSVデータの例です。当サイトのデータです。CSVファイルをEXCELで開いています。

intro-update-wordpress-plugin-sns-count-cache-3-15

データ構造は、見ての通り大福帳型です。一見意味不明なデータ構造に見えますが、ピボットテーブルを使用できる様にあえてこの型にしています。

ピボットテーブルは、一言でいうとデータを任意の軸で簡単に集計、分析できる機能です。業務でデータ整理や分析を行う方には、馴染みが深い機能だと思います。

ピボットテーブルは、Microsoft ExcelやLibreOffice CalcApache OpenOffice Calc等で利用可能です。LibreOffice Calc、Apache OpenOffice Calcは無料で利用できますが、機能面と使いやすさの観点でMicrosoft Excelのご利用をオススメします。

私は、以下Microsoft Office 365 Soloのサブスクリプションを購入、メインPCとMacBook AirそれぞれにExcelを導入し利用しています。

データの整理方法については、詳細を書くと長くなってしまうので、本エントリではサンプルの掲載にとどめます。

例えば、自サイトのSNSシェア数の割合を見たい場合、上記データを使用して以下の通りデータ整理とグラフ化ができます。

intro-update-wordpress-plugin-sns-count-cache-3-16

日ごとのシェア数の推移もグラフ化可能です。以下の例はサイト全体で推移を見ていますが、記事単位で確認することも可能です。

intro-update-wordpress-plugin-sns-count-cache-3-17

シェア数データのCSVファイル出力、及びダウンロード方法については、こちらを参照して下さい。

管理ページの改善

当プラグインの管理ページの位置を[WordPress管理メニュー]→[設定]配下から[WordPress管理メニュー]直下に変更しました。

intro-update-wordpress-plugin-sns-count-cache-3-07

下記管理ページを個々のページとして実装しなおしました。これにより各ページの表示速度が改善されています。

その他にも様々な改善を行っており、変更点を中心に説明します。

  • Dashboard
  • Cache Status
  • Share Count
  • Setting
  • Help

Dashboard

intro-update-wordpress-plugin-sns-count-cache-3-02

サイト全体のキャッシュ状況とシェア数を俯瞰するためのダッシュボードを追加しました。ざっくりシェア数の状況を確認したい場合に役立つと思います。

各項目の概要は以下の通りです。

項目 説明
Current Setting 現在の設定
Cache Status 現在のキャッシュ状況
Share Count シェア数

Cache Status

intro-update-wordpress-plugin-sns-count-cache-3-03

各コンテンツのキャッシュ状況を確認できます。

Crawl Dateでシェア数の取得日時を確認できるようになりました。また手動キャッシュボタンを実装しました。Cacheボタンを押下するとシェア数が再取得されキャッシュが更新されます。

またページネーションを追加しました。これにより対象コンテンツ数が多い場合に表示に時間がかかる問題を改善しました。

各カラムの概要は以下の通りです。

カラム名 説明
Target Content シェア数キャッシュ対象コンテンツ
Primary Cache 1次キャッシュのキャッシュ状況。
Secondary Cache 2次キャッシュのキャッシュ状況。
Crawl Date シェア数が取得され、キャッシュされた日時。
Cacheボタン 手動キャッシュ用ボタン。

Share Count

intro-update-wordpress-plugin-sns-count-cache-3-04

各コンテンツのシェア数を確認できます。

コンテンツ毎にシェア数の合計を確認できるようにしました。またシェア数でコンテンツをソートする機能も追加しました。Twitter等のSNSのカラム名をクリックすることでソートできます。

またページネーションを追加しました。これにより対象コンテンツ数が多い場合に表示に時間がかかる問題を改善しました。

各カラムの概要は以下の通りです。

項目 説明
Content シェア数キャッシュ対象コンテンツ
Twitter Twitterのシェア数
Facebook Facebookのシェア数
Google+ Google+のシェア数
Pocket Pocketのシェア数(正確にはブックマーク数)
Hatebu Hatena Bookmarkのシェア数
Total 上記シェア数の合計

Setting

intro-update-wordpress-plugin-sns-count-cache-3-05

設定項目を再整理しました。各々の変更点は、以下の通りです。

Share Base Cache
intro-update-wordpress-plugin-sns-count-cache-3-09

SNS Count Cacheのベースとなるシェア数キャッシュ機能の設定です。ここで設定された間隔、コンテンツ数単位でキャッシュ対象コンテンツを巡回し、キャッシュ処理を行います。

本バージョンでは、カスタム投稿タイプの設定を新たに追加しました。

「Additional custom post types」のフィールドにカンマ区切りで対象としたいカスタム投稿タイプを設定します。これにより設定されたカスタム投稿タイプに属するコンテンツもシェア数のキャッシュ対象にできます。

例えば、custom_type_1とcustom_type_2というカスタム投稿タイプをキャッシュ対象としたい場合は、カンマ区切りでcustom_type_1,custom_type_2を設定します。

Share Rush Cache
intro-update-wordpress-plugin-sns-count-cache-3-10

新着コンテンツのシェア数キャッシュ機能に関する設定です。上記巡回処理とは別に新着コンテンツのみ対象としてキャッシュ処理を行うため、キャッシュ間隔を短縮し、キャッシュの更新頻度を増やせます。ここでは、このキャッシュ処理の対象とする期間を設定します。

前バージョンから設定項目の変更はありません。

Follow Base Cache
intro-update-wordpress-plugin-sns-count-cache-3-11

フォロー数キャッシュ機能の設定です。本バージョンで新たに追加された設定です。

対象とするSNSとキャッシュ間隔を設定できます。といっても現在対応しているSNSはFeedlyのみです。

Dynamic Cache
intro-update-wordpress-plugin-sns-count-cache-3-12

ユーザアクセスを起点とするシェア数キャッシュ機能の設定です。上記Base Cacheの巡回処理とは異なりユーザのアクセスを起点とするため、キャッシュされるまでのリードタイムを短縮できます。

前バージョンから設定項目の変更はありません。

余談ですが、設定値はそれぞれ一長一短があるものの「Asynchronous 2nd Cache」をおススメします。

「Asynchronous 2nd Cache」は、一次キャッシュがない場合にキャッシュ処理の予約をしつつ、二次キャッシュを活用します。そのためシェア数を表示する目的を達成しながら、キャッシュの補てんができるため機能と性能のバランスがよいです。

Data Export
intro-update-wordpress-plugin-sns-count-cache-3-13

シェア数のエクスポート機能に関する設定です。新たに追加した設定項目です。手動で出力するか自動で定期的に出力するか設定します。

本バージョンでは、手動の「Manual」のみ選択可能としています。定期的な自動エクスポートは、次回以降のバージョンアップで対応予定です。

Exported File
intro-update-wordpress-plugin-sns-count-cache-3-14

ここでシェア数データのCSVファイルエクスポート、CSVファイルのクリア、ダウンロードを行います。

「Export」ボタンでキャッシュされているデータをCSVファイルとして出力します。データは追記方式としているので、「Export」ボタンを押下する度に追記されていきます。

「Reset」ボタンでCSVファイルの初期化を行います。「Reset」ボタンを押下するとエクスポートされたCSVファイルが削除されます。

「Download」ボタンで出力されたCSVファイルをダウンロードできます。

設定更新時の動作

設定変更時はキャッシュされたデータを全て初期化します。設定とデータの整合性を取るためで仕様です。予めご了承ください。

キャッシュロジックの改善

キャッシュの補填処理や一次キャッシュから二次キャッシュへのミラー処理等を高速化しています。

まとめ

以下WordPressプラグイン SNS Count Cacheアップデート(Version 0.4.0)のお知らせでした。

  • キャッシュ参照関数の見直し
  • シェア数合計参照関数の追加
  • Feedlyフォロワー数の対応
  • カスタム投稿タイプの対応
  • シェア数データエクスポート機能の追加
  • 管理ページの改善
  • キャッシュロジックの改善

本バージョンのリリースにあたり、実はかなりコードを書き換えています。余暇時間での対応なのでバグをつぶしきれていない可能性があります。

ご不明な点や不具合等がありましたら、こちらよりお知らせ頂けると幸いです。

謝辞

ブログ等で取り上げて頂いた方々、コメントやメール等で改善要望を提供頂いた方々、ありがとうございました。末筆ながらこの場を借りて御礼申し上げます。

WordPressプラグイン開発に関するおすすめ書籍