Piwik 3.0.0β版試用

ウェブサイトのアクセス解析用アプリPiwikの大型アップデートのベータ版が公開されている。今回はいよいよメジャーバージョン変更ということでVer.3.0.0になる。とはいえ、ユーザーからすると見た目が流行りのマテリアルデザインになった程度でそんなに変わった気はしない。内部的な変更やAPIの変更が主なよう。

Piwikはあいかわらず大きな変更があるとウェブの管理画面からの更新が上手くいかないようで、今回の2.6.1*から3.0.0-b1への更新も予想通り大失敗となった。
データベースの変更とファイルの単純な上書きの部分で何故失敗するのか不思議。余計なことをしてるとしか思えない。

Piwik2系最新版からのデータベースの更新は以下のクエリ実行。
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
UPDATE piwik_user_dashboard SET layout = '{\"config\":{\"layout\":\"50-50\"},\"columns\":[[{\"uniqueId\":\"widgetLivewidget\",\"parameters\":{\"module\":\"Live\",\"action\":\"widget\",\"widget\":1},\"isHidden\":false},{\"uniqueId\":\"widgetReferrersgetSearchEngines\",\"parameters\":{\"module\":\"Referrers\",\"action\":\"getSearchEngines\",\"widget\":1},\"isHidden\":false}],[{\"uniqueId\":\"widgetVisitsSummarygetEvolutionGraphforceView1viewDataTablegraphEvolution\",\"parameters\":{\"module\":\"VisitsSummary\",\"action\":\"getEvolutionGraph\",\"columns\":[\"nb_visits\",\"nb_uniq_visitors\"],\"widget\":1,\"columns_to_display\":[\"nb_visits\",\"nb_uniq_visitors\"],\"rows\":[],\"rows_to_display\":[],\"forceView\":\"1\",\"viewDataTable\":\"graphEvolution\"},\"isHidden\":false},{\"uniqueId\":\"widgetUserCountryMapvisitorMap\",\"parameters\":{\"module\":\"UserCountryMap\",\"action\":\"visitorMap\",\"widget\":1},\"isHidden\":false},{\"uniqueId\":\"widgetReferrersgetWebsites\",\"parameters\":{\"module\":\"Referrers\",\"action\":\"getWebsites\",\"widget\":1},\"isHidden\":false},{\"uniqueId\":\"widgetDevicesDetectiongetBrowsers\",\"parameters\":{\"module\":\"DevicesDetection\",\"action\":\"getBrowsers\",\"widget\":1},\"isHidden\":false}]]}' WHERE iddashboard = 1;
CREATE TABLE `piwik_plugin_setting` (`plugin_name` VARCHAR(60) NOT NULL, `setting_name` VARCHAR(255) NOT NULL, `setting_value` LONGTEXT NOT NULL, `user_login` VARCHAR(100) NOT NULL DEFAULT '') ENGINE=InnoDB DEFAULT CHARSET=utf8;
ALTER TABLE `piwik_plugin_setting` ADD INDEX index_plugin_name_user_login (`plugin_name`, `user_login`);
DELETE FROM `piwik_option` WHERE `option_name` like "Plugin_%_Settings";
ALTER TABLE `piwik_site_setting` ADD COLUMN `plugin_name` VARCHAR(60) NOT NULL AFTER `idsite`;
ALTER TABLE `piwik_site_setting` DROP PRIMARY KEY, ADD INDEX(idsite, plugin_name);
DELETE FROM `piwik_site_setting`;
ALTER TABLE `piwik_log_visit` CHANGE `idvisit` `idvisit` BIGINT(10) UNSIGNED NOT NULL AUTO_INCREMENT;
ALTER TABLE `piwik_log_conversion_item` CHANGE `idvisit` `idvisit` BIGINT(10) UNSIGNED NOT NULL;
ALTER TABLE `piwik_log_conversion` CHANGE `idvisit` `idvisit` BIGINT(10) UNSIGNED NOT NULL, CHANGE `idlink_va` `idlink_va` BIGINT(10) UNSIGNED default NULL;
ALTER TABLE `piwik_log_link_visit_action` CHANGE `idlink_va` `idlink_va` BIGINT(10) UNSIGNED NOT NULL AUTO_INCREMENT, CHANGE `idvisit` `idvisit` BIGINT(10) UNSIGNED NOT NULL, CHANGE `idaction_name_ref` `idaction_name_ref` INTEGER(10) UNSIGNED NULL;

PHPスクリプト側はhttps://github.com/piwik/piwikからhttps://github.com/piwik/piwik/archive/3.x-dev.zipを取ってきて解凍した全ファイルを現行のファイルに上書きで良い。最低限必要な設定ファイルは取ってきた側には無いので特に考えないで上書きして大丈夫。
あとはPiwikにログインして「設定」からプラグインを更新する。今回は9,10個程度のプラグインもバージョン3.0.0になる。
これで更新終わり。

Piwik更新後1
ログイン画面。ここからマテリアルデザイン。以前はPIWIKの赤い太文字に矢印と斜めにAnalytics Platformという文字が付いていたのが赤い太文字だけになった。

Piwik更新後2
Piwikのバージョンは3.0.0-b1と表示されている。「ファイルの不整合」と表示されているのは翻訳ファイルのサイズ違いによるもの。開発版を取っているのでこれは無視して良い。

Piwik更新後3
サイト別ダッシュボードの画面。画面の一番上の部分。画面の狭いタブレット、またはPCでブラウザの窓を狭く表示するとこのようにメニューバーが表示される。それ以外の部分は配色が変わった以外は違いがない感じ。

Piwik更新後4
PCのブラウザでブラウザの窓サイズが大きれば色以外は以前と変わらないようだ。

Piwik更新後5
アクセスしてきた人のソフトウエア情報画面。

Piwik更新後6
リアルタイムのアクセスマップ。やはり以前と変わらない。

一部の画面はすっきりした表示になっているが、変更されたことで悩む部分はない筈。
なお、2.6系でサードパーティ製のプラグインなどは3.0系に更新することで使えなくなる可能性があるので注意。
APIを利用してる場合も。

WordPress URLによる重複コンテンツ回避

WordPressのブログを検索エンジンに登録して何も考えずに記事を増やしていくと、しばらくしてGoogleさんあたりが本来の記事URLとカテゴリ・タグ・月別(日付別)・作者別などのアーカイブ用URLで内容が重複している(複数のURLで同じ記事が表示される)と警告してくる筈。そりゃまぁWordPressの仕組み的に当然なんだけど、対策しないで放置すると、ある日突然検索順位が圏外に叩き落されて検索からは誰も見に来てくれないサイトになってしまう。圏外に落とされると回復するのが大変なのでなんとしても避けたいところ。
一部にはGoogleさんがアーカイブと本来の記事を自動的に識別して適切にお取り計らいしてくれるので何も対策する必要がないという意見もあるが、警告が出る以上はいつ圏外に叩き落されるかわかったものではないので対策するのが無難。

WordPressの設定の「パーマリンク設定」で「数字ベース」(例: https://example.com/archives/123) にしていればカテゴリ・タグ・月別・作者別のURLはひと目でわかるものであるからrobots.txtにDisallowで登録してやれば良い。(2~5行目)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
User-agent: *
Disallow: /archives/author/
Disallow: /archives/category/
Disallow: /archives/date/
Disallow: /archives/tag/
Disallow: /feed/
Disallow: /wp-admin/
Disallow: /xmlrpc.php
Disallow: /*?

Sitemap: http://example.com/sitemap.xml

robots.txtで対応できないのは「パーマリンク設定」を「日付と投稿名」「月と投稿名」などにしている場合。
アーカイブ系のURLからはrobots.txt用のDisallowルールを作成することができない。(robots.txt内で正規表現が使えればよいのだがワイルドカードだけではちょっと無理。)

そこで、アーカイブ系のURLであるなら、HTMLヘッダ内でnoindexを表示するという方法を使う。このnoindexを使う方法の場合は「パーマリンク設定」はどれを指定してもよいので汎用性が高い。
で、WordPressでアーカイブのURL場合はHTMLヘッダ内にnoindexを使いたいと思ってググると「All in One SEO Pack」を使えみたいな記事を見かけるが、このプラグインは複雑すぎて困る。やりたいのことは凄く簡単なことのでプラグインは無しで。

使用しているテンプレートのテーマヘッダ(header.php)内で <?php wp_head(); ?> の行を探し、その直前あたりに次の3行を追加する。

1
2
3
<?php if (is_archive()) : ?>
    <meta name="robots" content="noindex" />
<?php endif; ?>

たった3行の追加で済むし特に処理が重くなるわけでもないのでこれで良いかと。

すでに重複コンテンツ数が増えているという警告を受けている状態なら対策後3~8週間くらいで重複URL数が激減と思われる。アーカイブによる重複コンテンツが0になるまではかなりの日数がかかるので覚悟のほどを。

ウェブマスターツールで日頃から異常が発生していないことを確認するのが良さそう。

関連記事:
Up