
簡易的なLPO対策として使えるモジュールです。
このサイト(Wordpress)で実装しているものを参考にしてMT用に作りました。
8月19日のMovable Type Developer ConferenceのLightning Talksのネタとして作成しています。
Movable Type Developer Conference終了
とーっても気軽な感じでLightning Talksに応募したんですが、MT関連の錚々たる方々ばかりで場違い感だしてました(笑)。
あまり大勢の前で話す機会がないので、マイクの前に立ったら頭真っ白→話の中身飛ばす→5分の話が4分で終わった(;^ω^)という結果になりました。
また機会があればリベンジしたいです!
MTの勉強になるお話をたくさん聞かせて頂き、ちょうどMTの案件もかかえていますので、これから色々作っていこうと思っています。
話の内容は下よりまとめてありますので御覧下さい。
今回「MT4で簡単なLPO対策のためのプラグイン」というタイトルで発表させて頂くつもりでしたが、
- MTは業務でちょっとだけ
- perlは初めてだ
- 何日か勉強したけど1週間でMTでperlとPHPでプラグイン作るのは無理かも
- でも簡単に実装できるものにしたい
なのでプラグイン化は今回断念して、テンプレートモジュールを作りました。
今までMTは業務でカスタムフィールドを使った案件があった位で、あまり深いところまで付き合ったことがなかったので、今回の制作で色々調べてみて勉強になりました。
特にMT4になってからはカスタマイズも簡単になってきていると感じました。今回間に合わなかったのですが、PHPでMTタグを使う方法も簡単だったので、そのうち何か作ろうと思います。
LPOとは
ランディングページ最適化=LPOといいます。
検索エンジンなどを経由してきたユーザが最初に見るウェブページをランディングページと呼びます。
ユーザが目的のページを探す場合、メニューやサイト内検索機能などが充実していない場合、ユーザは目的のページを探し出すことを諦めて他のサイトへと遷移してしまう行動が多く見られる。 そのため、他のサイトへと遷移させないように、ランディングページから目的のページへと簡単に遷移出来るように最適化することを言う。
LPO - どんないいことがあるのか
LPO対策をするとユーザーが欲しい情報を見つけやすくなるため、サイトの滞在時間が長くなり、直帰率が下がります。対費用対効果を改善する働きがあります。
このサイトでもやってますが、直帰率が70%から60%前後になりました。
LPO - 具体的にどんなことをするの?
それぞれの訪問者の違いに合わせてランディングページを動的に変更します。
ちゃんとやるとそれなりに費用がかかります。今回は、検索キーワードを利用した簡易的なものを作成しました。
このサイトで実装しているLPOモジュール
Googleで2ch firefox3を検索してこのサイトの記事をクリックすると、下のランディングページが出ます。
個別エントリのみで検索エンジン以外のユーザーには普通のページが出ます。
これはWordpressですが、MTでも同じような画面が出るようにします。
LPOモジュール [ SearchKeyword ]
検索エンジンからのアクセス(リファラ)が無いと本サーバーでテスト出来ない為、ローカル環境のみでテストしているので、とりあえずアルファ版とします。間違い・お気付きの点があればフィードバックお願いします。
関連記事を表示するプラグイン
DownloadableFiles: TagSupplementals-0.10.zip - Ogawa::Code - Trac
関連記事表示部分は既存のプラグインを利用させて頂きました。
あらかじめこちらのプラグインをインストールしておく。
テンプレートモジュール : SearchKeyword
名前はSearchKeywordで保存。
下の表示部分を若干修正しました
<?php
define("CHARACTERSET","UTF-8");
function keyword($linkurl) {
if (strpos($linkurl,".google.")) {
$str = eregi_replace(".+q=([^&]+).*","\\1",$linkurl);
$str = urldecode($str);
$str = mb_convert_encoding($str,CHARACTERSET,"UTF-8");
} elseif (strpos($linkurl,".goo.")) {
$str = eregi_replace(".+MT=([^&]+).*","\\1",$linkurl);
$str = urldecode($str);
$str = mb_convert_encoding($str,CHARACTERSET,"EUC-JP");
} elseif (strpos($linkurl,".yahoo.")) {
$str = eregi_replace(".+p=([^&]+).*","\\1",$linkurl);
$str = urldecode($str);
$str = mb_convert_encoding($str,CHARACTERSET,"EUC-JP");
} elseif (strpos($linkurl,".msn.")) {
$str = eregi_replace(".+q=([^&]+).*","\\1",$linkurl);
$str = urldecode($str);
$str = mb_convert_encoding($str,CHARACTERSET,"UTF-8");
}
$key = mb_convert_kana($str,"s");
return $key ;
}
$key = keyword($_SERVER['HTTP_REFERER']);
if($key != ""){
echo '<h3>', $key, '関連の記事が見つかりました</h3>';
?>
<ul>
<MTRelatedEntries lastn="5" offset="0">
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTRelatedEntries>
</ul>
<?php }?>
アーカイブページ > ブログ記事
表示させたい場所に下記を記述
<$mt:Include module="SearchKeyword"$>




Comments: 3
参考にさせていただきました。
ただ、上記のタグでは関連するエントリーが大量に出てしまいますので、以下のように変更させていただきました。
<a href=”">
すみません、タグが反映されなかったのでももう一度コメント致します。
<ul>
<MTRelatedEntries>
<li><a href="<$MTEntryPermalink$>"><$MTEntryTitle$></a></li>
</MTRelatedEntries>
</ul>
ご指摘ありがとうございます。
MTの動作環境無いので検証いただき助かりました。