Sun

07

Aug

2011

110807_ranking.jpg

以前から設置してみたいと考えていたブログ記事の人気アクセスランキングを、試行錯誤の末に設置することができました!アクセスランキングを設置するほどのサイトでもないのですが、5年前からある記事のどのエントリーが閲覧されているのかはWeb管理者としては興味があります。また、サイトを見てくれた人にとっても参考になるかと思われます。
本来はブログに標準装備されていてもおかしくない機能だと思いますが、恐らくはログの保存方法やサーバーへの負荷など、単純にアプリ側では装備できない理由もあるのでしょう。しかし、プラグインも幾つかある以上、将来的には実装されてもよいのではと考えてはいます。

Movable Typeへのアクセスランキング設置方法については、Web上でキーワード検索すると、主要なアクセスランキング設置方法として、下記のサイトが出てきます。

  1. open magicvox.net : MovableTypeで人気記事のランキングを表示するPHPスクリプト
  2. WEBデザイン BLOG : MovableTypeアクセスランキング プラグイン AccessRankingGAリリース
  3. Movable Type Memo : アクセスランキング・プラグイン(prototype.pagerank.js)
  4. MASAHIKO ISSHIKI : MTで人気記事ランキングを作る (オリジナルはRambles In The Brambles : MT-MostVisited Plugin)
これらの他にも色々な方がCGIやらPlugInを開発されていて、方法もサーバーのログを取得するものから2のようにGoogle Webmasterのログを取得するものまで様々です。

巷では、
  1. のスクリプトが人気のようなのですが、設置方法が煩雑なのとサーバー側でCron設定が必要なことからパス、
  2. はたまたまGoogle Webmasterツールを使っていたこともありチャレンジしたのですが、JSONファイルの生成まではできたものの最後のスクリプトの取得が出来ずに断念(本当はこのツールが一番使いたかったのですが。。。今後のバージョンアップに期待!)
  3. 今回採用させてもらったツールです!プラグインと書かれていますが、サーバー内のフォルダに設置して独自にログファイルを生成するCGI方式のようです。動作も軽快なので、私のブログのような小規模アクセスサイトでは全く問題ありません。
  4. は外国製のプラグインであるということと、記事のID番号が必須であること、バージョンが古いものしか対応していない恐れがあるということでこちらも見送りました。

また、今後のMT自身のバージョンアップも考えるとPlugInは便利そうですが、バージョン間の制約もありそうということで考え物です。また、2以外はサーバー側のログを自身で取得する必要があり、将来のサーバー移設やそもそもサーバー側への設定が煩雑なので、これまたパス。今回使わせてもらった3のCGI方式が一番単純ですが、バージョン間の影響もなく、サーバー側の設定も不要ということで、私には最適でした。もっともCGIなので、一日に数千アクセスもあるようなサイトや表示に負荷が掛かるサイトには不向きでしょうが、個人の小規模サイトには全く問題ないと思われます。

実はこのMovable Type Memo(正式名称はMovable Type 備忘録のようです)は今回以外にも色々と参考になる記事が多く、私も頻繁に訪れるサイトの一つです。毎回ありがとうございます。ただ、一つだけ難点を言えばサイトの作者の方のレベルが高い!?ようで、解説が初心者の私のような人間にはハードルが高い場合が多いです(それでも質問には丁寧に回答してくださっているので、記事下のコメント応答が役に立ちます)。

今回も早速設置してみましたが、最初はなかなかうまくいきません。実はこのツールは過去から何世代がバージョンアップしてきているもので、最新バージョンの記事よりも下の過去バージョンの記事とコメント欄を合わせて参考にした方がよいです。(下の過去記事意外にもバージョンが沢山ありますので、記事下の関連記事から辿っていくと、参考になる記事が見つけられます。)
2008年10月4日:アクセスランキング・プラグイン(jquery.pagerank.js)
2009年5月15日:ローテーションするアクセスランキング(jquery.pagerank.js)

2009年5月20日:アクセスランキング・プラグイン(prototype.pagerank.js)

下記に今回設置した際のポイントをまとめておきます。

ポイント1
最新の記事ではPlugin化されていると書かれていますが、特にプラグインのフォルダに置く必要はないらしく、任意のサーバーフォルダにおいてパスを通せば完了です。最初につまづいたポイントが、URLの「wwwあり」と「wwwなし」の問題です。どうやらデフォルトでは「wwwなし」(もしかしたら「あり」だったかも)のURLで正しく動作するようになっているようで逆の場合ではうまく表示されません。そのため下記のサイトを参考に.htaccess「wwwあり」と「wwwなし」を統合しました。

海外SEO情報ブログ : 301リダイレクトを使った「WWWあり」と「WWWなし」の統一

ポイント2
次はこれでめでたく表示はされるのですが、リスト表示される記事タイトルにブログタイトルも一緒に表示されてしまいます。これは機能として、複数ブログを横断してアクセスランキングを取得できるという便利な機能にもとづいているためのようですが、単一のブログには表示が煩雑になるため外したいと思います。そこで、コメント欄の応答にあった下記内容をもとにスクリプトに記述を加えます。
jquery.pagerank.jsファイル内の31行目
opt.page_name = pagerank_espace(opt.page_name.replace(‘ – サイト名称’, ”));
にあるサイト名称を下のように自分のサイト名に変更
opt.page_name = pagerank_espace(opt.page_name.replace(‘ – ところによりエンジニア’, ”));
この変更は反映されるのに少し時間が掛かるようです。
ポイント3
あたりまえなのかも知れませんが、このツールはCGI?のようですので、ランキングを表示したい最初のHomeのページにだけ設置してもうまく動作しません。ランキングを収集したい各記事にも表示しておく必要があります。ウィジッドをHomeページだけではなく、各個別の記事ページにも表示するように設定しましょう。
ポイント4
最後はこのツールはログファイルの大容量化を避けるためと、最新のログ情報を反映するためにデフォルトでは直近の7日分のログより集計する設定になっています。ただし、私のブログのように過去7日分の集計だけでは数十人分しかアクセスがないため、統計的に?となってしまいます。そのため、
rank_config.phpファイル内のdefine(‘ROTATION_DAYS’, 180 );// ローテーション(日)
を変更してみました。
このツールはオプションも豊富で、派生機能も多くありまたconfigファイルでカスタマイズもできます。何より単独でCGIとして動作しているので、今後のMTのバージョンアップにも影響されにくく、サーバー側の設定も不要というのがよいです。ログファイルも巨大になりすぎないようにローテーションで削除し続けるのが素晴らしいですね。しばらくはこのランキングツールを使って、どの記事がアクセス数が多いのか見てみたいと思います。蛇足ですがたまにリスト内のアクセス数や記事表示が崩れる時がありますが、まあご愛嬌ということで。。。こちらの設定のミスなのかスクリプトのバグなのかは不明ですが、実用上は全く問題ないのでよいのではないでしょうか。

この記事をシェアする

ディスカッション

コメントはまだありません

コメントはお気軽にどうぞ

※メールアドレスは公開されませんのでご安心ください。


This site is protected by reCAPTCHA and the GooglePrivacy Policy and Terms of Service apply.

このサイトはreCAPTCHAによって保護されており、Googleのプライバシーポリシー利用規約が適用されます。

”ところによりエンジニア”