0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WordPressのPV計測・人気記事ランキングプラグイン「ViewRank」を開発してみた【無料版・Premium版】

0
Posted at

はじめに

WordPressでブログやWebサイトを運営していると、「どの記事がよく読まれているのか」「最近アクセスが増えている記事はどれなのか」が気になることがあります。

また、人気記事をランキング形式で表示したり、アクセスが減少した記事を見つけたりすることで、サイト運営や記事改善に役立てられます。

そこで今回、WordPress上でPV(ページビュー)を計測し、人気記事ランキングを表示できるプラグイン「ViewRank Post View Rankings」を開発しました。

無料版ではPV計測とランキング表示を中心に、有料のPremium版ではアクセス解析や記事改善に役立つ機能を追加しています。

この記事では、ViewRankの機能と使い方、開発時に工夫したポイントを紹介します。

ViewRank Post View Rankingsとは?

ViewRankは、WordPressの記事PVを計測し、そのデータを使って人気記事ランキングなどを表示できるプラグインです。

主な特徴は次のとおりです。

  • WordPress内で記事のPVを計測
  • 人気記事をランキング形式で表示
  • 集計期間を切り替え可能
  • ウィジェットやショートコードに対応
  • ランダム記事表示にも対応
  • 表示内容やデザインをカスタマイズ可能

外部のアクセス解析サービスに計測データを送信せず、WordPress内でPVを管理する設計にしています。

無料版でできること

1. 人気記事ランキングの表示

ViewRankの基本機能は、アクセス数の多い記事をランキング形式で表示することです。

ランキングは次の4種類の期間に対応しています。

集計期間 内容
本日 当日の人気記事
7日間 直近7日間の人気記事
30日間 直近30日間の人気記事
全期間 計測開始からの累計ランキング

短期間で注目されている記事と、長期間にわたって読まれている記事を、それぞれ確認できます。

また、ランキングにはサムネイル画像、カテゴリー、PV数などを表示できます。

2. ウィジェットによるランキング設置

WordPressのウィジェット機能に対応しているため、サイドバーなどのウィジェットエリアに人気記事ランキングを設置できます。

テーマが対応しているウィジェットエリアを利用できるので、PHPファイルを直接編集する必要はありません。

表示件数やデザインも設定できます。

3. ショートコードにも対応

ウィジェットだけでなく、ショートコードでもランキングを表示できます。

基本的な人気記事ランキングは次のコードで表示できます。

[spp_popular_posts]

直近7日間の人気記事を5件表示する場合は、次のように指定します。

[spp_popular_posts period="7days" count="5"]

period で集計期間、count で表示件数を指定できます。

固定ページや記事内など、ショートコードが利用できる場所にランキングを配置できます。

4. ランダム記事表示

人気記事ランキングとは別に、ランダム記事表示機能も実装しました。

[spp_random_posts count="5"]

こちらは記事をランダムに5件表示する例です。

人気記事だけでなく、過去に投稿した記事や普段あまり目立たない記事も紹介できるため、サイト内の回遊を促す用途に利用できます。

5. 表示デザインのカスタマイズ

WordPressのカスタマイザーから、ランキングの表示内容やデザインを調整できます。

サムネイル、カテゴリー、PV数、表示色などを変更でき、サイトのデザインに合わせた調整が可能です。

また、日本語、英語、中国語(簡体字・繁体字)、スペイン語、ドイツ語に対応しています。

Premium版で追加した機能

無料版は人気記事を表示する機能が中心ですが、Premium版では、蓄積したアクセスデータを分析するためのダッシュボードを追加しました。

1. アクセス解析ダッシュボード

Premium版では、WordPressの管理画面からアクセス状況を確認できます。

主な分析項目は以下のとおりです。

  • PVの推移
  • 人気記事ランキング
  • 急上昇記事
  • 新着記事のアクセス分析
  • 検索語句の分析
  • デバイス別アクセス
  • ブラウザ別アクセス
  • 流入元の分析
  • 曜日別アクセス
  • 時間帯別アクセス
  • 月別PV

記事の人気度だけでなく、アクセスの傾向を複数の視点から確認できるようにしました。

なお、検索語句については、サイト内検索の記録や、取得可能な検索エンジンの参照元情報などを利用します。

Google Search Consoleと直接連携して検索クエリを取得する仕組みではありません。

2. 急上昇記事の分析

累計PVのランキングだけでは、最近になってアクセスが伸び始めた記事を見つけにくい場合があります。

そこでPremium版では、アクセスの伸びに注目できる急上昇記事の分析機能を追加しました。

サイト運営では、過去から人気のある記事だけでなく、最近読まれ始めた記事を把握することも重要だと考えています。

3. リライト候補の検出

Premium版では、アクセスが減少した記事を見つける「リライト候補」機能も実装しました。

この機能では、次の2つの期間を比較します。

  • 昨日までの直近7日間
  • その前の7日間

前の期間に20PV以上あり、直近の期間で30%以上アクセスが減少した記事を候補として抽出します。

例えば、前の7日間で100PVだった記事が、直近7日間で50PVになった場合、減少率は50%となり、条件を満たします。

候補には、前期間のPV、直近PV、減少数、減少率、記事編集リンクなどを表示します。

なお、この機能には少なくとも14日間の計測履歴が必要です。

アクセス減少の原因を自動的に特定する機能ではありませんが、見直す記事を探す際の参考情報として活用できます。

4. ウィジェットの詳細カスタマイズ

Premium版では、ランキング表示のカスタマイズ機能も拡張しました。

ウィジェットごとに表示期間や色、除外記事、除外カテゴリーなどを設定できます。

さらに、8種類のレイアウトと10種類の見出しデザインを用意しました。

同じサイト内でも、サイドバーと別のウィジェットエリアで異なる表示方法を利用できます。

開発時に工夫したポイント

1. ページキャッシュ環境でもPVを計測する

WordPressでは、表示速度を改善するためにページキャッシュを利用することがあります。

しかし、PHPによるページ表示処理だけでPVを加算する仕組みでは、キャッシュされたページが配信された際に計測処理が実行されない場合があります。

そこでViewRankでは、JavaScriptとWordPress AJAXを組み合わせた計測方式を採用しました。

基本的な流れは次のようになります。

  1. 訪問者が記事ページを開く
  2. JavaScriptからWordPressのAJAX処理へ通信する
  3. サーバー側でリクエストを検証する
  4. 対象記事のPVを記録する
  5. 蓄積したデータをランキングや分析に利用する

また、キャッシュされたHTMLに古いnonceが残る問題を避けるため、計測前に新しいnonceを取得する仕組みを取り入れています。

ただし、JavaScriptが無効な環境や、AJAX通信がブロックされる環境では計測できません。

2. PVの二重計測を防ぐ

無料版とPremium版を同時に有効化した場合、両方が独立してPVを記録すると、同じアクセスが二重にカウントされる可能性があります。

そこで、両方が有効な場合にはPremium版がPV計測を担当するようにしました。

Premium版は単独でも動作するため、無料版を必須としない構成です。

3. ランキング集計の負荷を抑える

人気記事ランキングは、アクセスのたびにデータベースへ複雑な集計を行うと、サイトの負荷につながる可能性があります。

そのため、ViewRankではランキングの集計結果を最大60秒間キャッシュする仕組みを採用しました。

ただし、ページキャッシュやCDNを利用している場合は、画面に表示されるランキングの更新がさらに遅れる場合があります。

4. PV集計と詳細分析を分ける

Premium版では、日別PVの集計データと、詳細分析に利用するアクセスイベントを分けて管理しています。

これにより、総PVの表示と詳細分析で、それぞれ必要なデータを扱えるようにしています。

詳細データについては、無期限保存のほか、30日・90日・180日・365日といった保存期間も設定できます。

ただし、過去に記録していなかった詳細データを後から復元することはできません。

無料版とPremium版の違い

機能 無料版 Premium版
PV計測 ○ ○
人気記事ランキング ○ ○
ランダム記事表示 ○ ○
ウィジェット ○ ○
ショートコード ○ -
基本的な表示設定 ○ ○
詳細なアクセス解析 - ○
PV推移グラフ - ○
急上昇記事の分析 - ○
デバイス・ブラウザ分析 - ○
流入元の分析 - ○
リライト候補 - ○
詳細なウィジェットデザイン - ○

※ショートコード欄は、それぞれの版で確認できた独自機能を示しています。

インストール方法

無料版は、WordPressの管理画面からインストールできます。

  1. WordPress管理画面の「プラグイン」を開く
  2. 「プラグインを追加」を選択する
  3. 「ViewRank Post View Rankings」を検索する
  4. インストールして有効化する
  5. 必要に応じて表示設定を変更する

Premium版はZIPファイルをアップロードしてインストールします。

両方の版を同時に有効化することもできますが、Premium版は単独でも動作します。

利用時の注意点

ViewRankが計測するのはPVであり、ユニークユーザー数ではありません。

また、ボットによるアクセスの除外はベストエフォートであり、すべての自動アクセスを判別できるわけではありません。

PV計測は導入後に記録したデータが基本となります。計測していなかった過去のアクセスを自動的に復元することはできません。

アクセス解析の数値は、こうした計測条件を踏まえて利用する必要があります。

おわりに

今回、WordPressの記事PVを計測し、人気記事ランキングを表示できる「ViewRank Post View Rankings」を開発しました。

無料版では人気記事ランキングやランダム記事表示を中心に、Premium版ではアクセス解析やリライト候補など、サイト運営に役立つ機能を追加しています。

開発では特に、ページキャッシュへの対応、二重計測の防止、ランキング集計の負荷軽減、過去データの取り扱いなどを意識しました。

今後も、WordPressサイトの運営を便利にする機能を検討していきたいと思います。

WordPressプラグインを開発している方や、PV計測・ランキング表示の実装を考えている方の参考になれば幸いです。


開発者:ikedajapn

無料版:ViewRank Post View Rankings

Premium版:ViewRank Post View Rankings Premium

是非、無料版をお試しいただけると幸いです。

icon-256x256.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?