utm_ なんちゃら URL を固定するのは rel=canonical でいいんじゃないの?

「feedburnerやtwitterからのトラフィックにutmで始まるパラメータがついてしまって、はてブが分散してホッテントリしない!」

とか、全然悩んでいないんだけど、utm_なんちゃらが邪魔らしくfeedburnerの設定でutm_なんちゃらをつけないようにするみたい。

個人的にははてブを使っていないのでutm_なんちゃらのパラメータがついててもいいんじゃないのとか、rel=canonicalとりあえず指定しようよとか思っているんだけど、はてブとかdeliciousとかがいつ対応してくれるか、そもそも期待した対応をしてくれるのかわからないのでutm_ではじまるパラメータをつけたアクセスがあった場合にパラメータを除外したURLにアクセスし直すようなことを考えてみた。

「URLにパラメータがついて、はてブが分散!」
「utm_なんちゃらとか気持ち悪いよね、消しちゃおうか?」

とか、全然気にならないんだけど、普段GoogleAnalyticsを重宝していて
どちらかというと

「utm_なんちゃらこそ大事でしょ!」

という方なので、GoogleAnalyticsのためのutm_なんちゃらを活かしながらSBMのことも考えてみる

そもそもutm_なんちゃらを残したいのでfeedburnerとかの設定でutm_をつけない設定にするのはなしの方向で。

単純に.htaccessでutm_を含むパラメータが着いた状態でアクセスがあればリダイレクトすればいいんじゃね?

とか、思ったけどたぶんこのリダイレクトでGoogleAnalyticsに記録が残らなくてutm_なんちゃらを使って広告を展開している場合はすんごく困るのでこの方法以外。

同じエントリへのはてブがバラバラに付く | Shin x blog
FeedBunner経由の分散したブックマークを一つにまとめる方法 | コリス
FeedBurnerのトラッキング用パラメーターを取り除くUserScript [C!]

ということで、単純にutm_から始まるパラメータでのアクセスがあればJavascriptでパラメータを外したURLへアクセスし直すようにonLoadに仕込んでみたらいいんじゃね?
とか、やってみたら出来たみたい。

URLパラメータを外すデモ

上記のページにあるリンクにはGoogleAnalyticsにキャンペーン、キーワード、広告の種類、メディア、ソースが反映されるようにutm_なんちゃらのパラメータを含めたURLにアクセスするように設定している。

<script type="text/javascript">
function utmCut(){
 var utmCut = location.search
  if (utmCut.match(/(utm_)/g)) {
    location.replace( location.pathname );
  }
}
</script>
</head>
<body onLoad="utmCut();">

注意

  • utm_なんちゃらがGoogleAnalyticsに反映させたい
  • それでもURLは一意にしたい
  • このままコードをコピペしないで(ちゃんと検証してません)

ちょっと不安だったのは.htaccessのようにリダイレクトではGoogleAnalyticsで記録されないかもと思ったので5秒後と即アクセスし直すものをおいてみたけど、どちらも認識しているみたい。

GoogleAnalyticsでの結果は

UTM Remove

こんな感じ

かなり単純なJavascriptなのでutm_なんちゃらがあれば問答無用に発動されたり
Apacheのログを確認してみるとパラメータ付きのURLもその後のパラメータなしのURLもステータスコードが200を返しているので、たぶん一度のアクセスで2回アクセスしていて大規模なサイトだと負荷が激しいかもしれない。


今調べてみたら、グリモンで実装できるようなので、気になる人はこちらを使った方がいいかもね。

Query Cutter - URL の余計なクエリを削除 - ~fumi/ChangeLog

ということで、なにがいいたいかと言うと

rel=canonical使おうぜ!