記事のタイトル選定に必要なキーワードの見つけ方

star lightさんから、相談を受けたのでちょっと、こんな記事を書いてみます。

star lightさんを晒すつもりはないけれど、結果としてそうなったらゴメンなさい。

タグを直書きしている理由

SEOにタグは重要か?という質問ですが、自分にはわかりません。ただ、自分は正しいHTMLを使った方がいいと思うので、極力HTMLの規格にそったタグを使っています。その方が、ブログを移転する際にも楽ですし。ファンブログの独自タグを使うと、当然それはファンブログでしか、使えないので、他のブログに記事を移すときには、書き直すことになります。

だから、下のようなタグは、ブログを移転したら全部書き直しです。

<大></大>
<太></太>
<色:#ff0000></色>
<リンク:http://></リンク>

自分がなるべく正しいHTMLを直書きしているのは、そういう理由です。もしかしたら、それがSEOに反映されているのかも知れませんが、そんなことよりもキーワード選定の方が重要ではないでしょうか。

必要なのは、タグよりもキーワード

2013年5月1日の時点で、star lightさんのブログで「よく読んで頂いているページ」は次の記事だそうです。

  • 美肌に生まれ変わらせるたんぱく質(プロテイン)
  • 美痩せでプリプリのお肌にはプロテイン(たんぱく質)。美肌へGO!
  • デコルテケアは万全?これからのシーズン、肌の露出も多くなります。
  • 正しいエイジングケアとは?
  • 唇の乾燥の原因と対策|唇の乾燥でお悩みの方へ
  • 注目!3つを改善し、お尻の垂れを防止しよう
  • 目の周りの色素沈着は、ハイドロキノン成分が効果的
  • オイリー肌を食事で改善し、美肌を追及する|内側ケア編
  • 肌を日本酒で美肌、美白スキンケア 日本酒の力で美肌に導く
  • 美肌のアンチエイジングメゾット・しわ編

同じく2013年5月1日の段階で「美肌 プロテイン」というキーワードでGoogle検索すると、star lightさんのブログの記事「美肌に生まれ変わらせるたんぱく質(プロテイン)」が1ページ目の1番最初に表示されます。

美痩せ たんぱく質」で検索すれば、1、2位を独占しています。

検索結果

検索トップなので「よく読んで頂いているページ」でも上位になっています。もし、これでアクセスが少ないのだとしたら、それはそのキーワードに需要がないからです。

よいキーワードの見つけ方

検索結果でいちばん最初に見つかるのに、アクセスが少ないということは、そのキーワードでは誰も検索していないという事です。では、どうすれば検索されるキーワードが見つかるのでしょうか。

「美肌」と「プロテイン」を例にとると、star lightさんのブログにとって重要なワードは「美肌」のほうです。「美肌」と一緒に検索されているのは、どんな単語でしょうか。それは、検索すれば分かります。

Googleの検索画面で「びはだ」と打てば、下のように補完して、候補が表示されます。

検索キーワードが補完される

「美肌」一語で検索すれば、いちばん下に、こう表示されます。

画面下の検索候補

よく検索されるのは、こういったキーワードです。

だから「美肌」と言うキーワードに求められているのは「何を食べたら美肌になれるのか」であったり「美肌になる方法」であったりというノウハウです。

「美肌に生まれ変わらせるたんぱく質(プロテイン)」というタイトルは、確かに「何を食べたら美肌になれるのか」という事なんですが、「何を食べたらいいのか」を知りたい人には「プロテイン」というキーワードが出て来ないのではないでしょうか。

「美痩せでプリプリのお肌にはプロテイン(たんぱく質)。美肌へGO!」というタイトルは「美肌になる方法」ですが、やはり「プロテイン」や「たんぱく質」では検索出来ないのではないでしょうか。

その「答え」を知りたいのであって、キーワードがわからないのだから、「プロテイン」では検索できません。

また、最近「毛穴の汚れの原因はこの6つ|毛穴の汚れをクリーンにしましょう」という記事を書いていますが、「毛穴の汚れ」で検索した結果のトップ3は、こういうタイトルです。

  • 鼻の毛穴につまった黒い汚れを落としたい : 美容・ファッション・ダイエット …
  • 毛穴の汚れを落とす方法
  • 鼻の黒ずみ、毛穴の汚れはどうやったら綺麗に出来ますか? – Yahoo …

画面下の検索候補2

毛穴の汚れで検索する人が知りたいのは「原因」ではなく「落し方」だということが、よくわかります。

つまり求められている内容は「毛穴の汚れの原因はこの6つ|毛穴の汚れをクリーンにしましょう」ではありません。

検索上位になる方法

しかし、検索されやすいタイトルにしたからといって、検索上位に来るわけではありません。今まで検索上位にいたのは、先ほども書いたように「需要がなかった」からです。需要のあるタイトルにした時は、たくさんの記事があるので、なかなか上位には入りません。どうしたら上位に入れるでしょうか。

ひとつには、誰よりも早く、その記事を書くことです。ただ、その場合最初のうちは上位にいても、後追いで書いた人気サイトに抜かれ、順位が下がるということはよくあります。

上位を維持するために、いちばん重要なのは、間違いなく内容です。そのためには、本当によく調べ、確かな記事を書く必要があります。

以前も別の記事に書きましたが、ブログは必ずしも毎日書く必要はありません。検索にかからない記事を量産するよりも、ひとつでも需要のある内容で、検索上位にかかる記事を書いた方が賢明です。そのためには、記事数が減っても、じっくり調べて書く必要があるのではないでしょうか。

中には需要のない内容でも書きたい記事があるでしょう。それを読んでもらうためには、ブログのアクセスをあげなければなりません。

予備選挙結果発表☆ご当地キャラ総選挙2013☆ふなっしーは?

ご当地キャラ総選挙2013」の予備選挙の結果が発表されました。

各地区3名(関東のみ6名)の、予備選挙の投票上位キャラが、次の地区予選に進出します。船橋市非公認の、ふなっしーは、C地区関東です。結果はどうだったでしょう。

「ご当地キャラ総選挙2013」予備選挙結果

A地区 北海道
ユニ殿&そらち姫(北海道)
メロン熊(北海道)
コアックマ&アックマ(北海道)
B地区 東北
たか丸くん(青森県)
海の子ホヤぼーや(宮城県 気仙沼市観光キャラクター)
がくとくん(福島県)
C地区 関東
ぐんまちゃん(群馬県)
アルクマ(長野県 観光PRキャラクター)
えび~にゃ(神奈川県)
キノピー(群馬県 桐生市マスコットキャラクター)
桜タマ吉(新潟県 五泉市忠犬)
ふなっしー(千葉県 船橋市非公認)
D地区 中部
おけわんこ(愛知県)
オカザえもん(愛知県)
きーぼー(愛知県)
E地区 近畿
ちっちゃいおっさん(兵庫県)
あべのん(大阪府)
いしきりん(大阪府)
F地区 中国・四国
うだつまる(徳島県)
ふでりん(広島県 熊野町観光大使)
ことちゃん(香川県)
G地区 九州
イーサキング(鹿児島県)
かわりみ千兵衛(福岡県)
こっぽりー(福岡県 柳川市マスコットキャラクター)

表示順は、発表のままです。(どういう順序なのかは不明です)
予備選挙期間中はふなっしー3位だったので、5位まで見た時は、ちょっとドキドキした。

ふなっしー、地区予選進出決定☆おめでとなっしー♪

「ご当地キャラ総選挙2013」今後のスケジュール

次のステップ、地区予選の投票開始は5月11日(土)です!

6月下旬までの地区予選で、各地区の代表キャラ1名が決定し、決勝投票へと進みます。

ふなっしー、地区予選も頑張るなっしーよ♪

“予備選挙結果発表☆ご当地キャラ総選挙2013☆ふなっしーは?” の続きを読む

JavaScriptの無名関数とクラス

2013年5月3日追記
この記事の反省をふまえた続編もあります。この記事で私の書き換えたソースは、非常に無駄な事をしていますので、この記事だけだと恥ずかしいから、そちらもお読み頂ければ幸いです。

なんでもかんでもオブジェクト化すればいいってもんじゃないな。反省!

経過時間を計算してくれるタイマー

マスクドライダー17号さんが、彼のブログで面白いことをやっていて、最初にそのページを開いてからカウントダウンをはじめて、24時間経過したかどうか、残り時間を教えてくれるというスクリプトを走らせています。

その記事によると「教えて!gooにて回答されていた、babu_babooさんのScriptを参考にしました」ということで、babu_babu_babooさんのスクリプトをアレンジしたそうです。

教えて!gooの内容は、期限が来たかどうかカウントしたいだけなので、そのスクリプトは必要な目的を達成しています。

現在、マスクドライダー17号さんが使っているスクリプトは、おそらく24時間で正しく止まると思います。(止まるという表現は正確でないですがわかりやすく言っています)ただ、それを彼のブログで使う場合は不足している機能があります。それは、リセット機能です。

クッキーにデータが残っている

そのスクリプトは、クッキー(cookie)を使って、実現されています。ブラウザを閉じても、最初の時間をクッキーが記憶しているので、もう一度ブログにアクセスした時に、最初の時間からの残りを計算できます。そして、残り時間がなくなると「24時間以上経過しました!!」と表示して終了します。

カウントダウンが1度だけなら、今のままで、まったく問題ないのですが、マスクドライダー17号さんの場合は、そのタイマーを24時間経過する度に、リセットして使いまわしたいのだと思います。でも、今のままだと、最初の24時間が過ぎると「24時間以上経過しました!!」と表示されて、そのまま動かなくなります。その後、もう一度使おうとしても、24時間たってしまったので動きません。

繰り返しますが、教えて!gooの場合は、これで目的を達成出来ているので問題ありません。

現在、マスクドライダー17号さんは、クッキーの有効期限を10日にしているので、止まってから、さらに9日経てば、またスクリプトは使えるようになりますが、かといって、有効期限を短くすると、ブログを開いたときにスクリプトがリセットされてしまい、24時間経ったのかどうか、わからなくなります。ですから「24時間以上経過しました!!」という表示を読むまでは、リセットしたくありません。読み終わったら、ボタンを押して、リセット(カウントダウンの再スタート)をさせるのが、いちばんいいと思います。

元のソースコード

出来れば、動いている今のソースコードをそのまま流用したいです。ありがたいことに、機能ごとに、細かく関数に分けてくれています。この中のsetCookie関数を使えばクッキーはリセット出来ます。

<style type="text/css">
p#mess{ font-size:200%; }
</style>

<p id="mess">次回</p>

<script type="text/javascript">
<!--
(function (doc) {

 function addDay ( day, date ) {
  if( 'number' !== typeof day ) day = 0;
  if( 'object' !== typeof date ) date = new Date;
  date.setDate( date.getDate() + day );
  return date;
 }

 function getCookie ( name ) {
  name = encodeURIComponent( name ).replace( /([.*()]) /g, '\\$1' );
  var value = doc.cookie.match( RegExp( name + '\\s*=\\s*(.*?)(?:[\\s;,]|$)' ) );
  return value ? decodeURIComponent( value[1] ): '';
 }

 function setCookie ( name, value, day, path, domain ) {
  return doc.cookie = encodeURIComponent (name) + '=' + encodeURIComponent (value) +
   '; ' + 'expires=' + ( addDay(day) ).toUTCString () + '; ' + (path ? 'path=' + encodeURI (path) + '; ': '') +
   (domain ? 'domain=' + encodeURI (domain) + '; ': '');
 }
 function padding ( n ) { return n < 10 ? '0' + n: n; }
  var COOKIE_NAME = 'myCount';
 var LIMIT_DAY = 1;
 var SHELF_LIFE = 10;
 var TIMEOUT_MESS = '24時間以上経過しました!!';
 var node = doc.getElementById( 'mess' );
 var targetDay = parseInt( getCookie( COOKIE_NAME ) );

 if( !targetDay ) {
   targetDay = addDay( LIMIT_DAY ).getTime();
   setCookie( COOKIE_NAME, targetDay + '', SHELF_LIFE );
 }

 (function () {
  var text = '次回まで約';
  var s = (targetDay - (new Date).getTime()) / 1000 |0;

  if (s < 0)
   text = TIMEOUT_MESS;

  else {
   text += padding( s % 86400 / 3600 |0) + '時間' +
    padding( s % 3600 / 60 |0) + '分' +
    padding( s % 60 |0) + '秒です。';
   setTimeout (arguments.callee, 1000);
  }

  node.firstChild.nodeValue = text;
 })();
})(this.document);

//-->
</script>

しかし、弱ったことにソースは無名関数で括られているので、setCookie関数を使えません。無名関数の外に出してもいいのですが、この際、オブジェクト(クラス)化して、無名関数内のfunctionを、クラスのprototypeに移動させる事にします。

オブジェクト指向で書き換えたコード

関数の中身は、ほとんどいじっていませんし、スクリプトのロジックは一緒です。

<style type="text/css">
p#mess{ font-size:200%; }
</style>

<p id="mess"></p>
タイマーを<input type="button" onclick="countdown.reset();" value="リセット" />

<script type="text/javascript">
<!--
var timerCookie=function(id){
 this.id=id;
 this.COOKIE_NAME = 'myCount'+id;
 this.LIMIT_DAY = 1;
 this.SHELF_LIFE = 10;
 this.TIMEOUT_MESS = '24時間以上経過しました!!';
 this.targetDay = parseInt( this.getCookie( this.COOKIE_NAME ) );

 if( !this.targetDay ) {
   this.reset();
 }else{
   this.load();
 }
};

timerCookie.prototype.addDay=function( day, date ){
  if( 'number' !== typeof day ) day = 0;
  if( 'object' !== typeof date ) date = new Date;
  date.setDate( date.getDate() + day );
  return date;
};

timerCookie.prototype.getCookie=function( name ){
  name = encodeURIComponent( name ).replace( /([.*()]) /g, '\\$1' );
  var value = document.cookie.match( RegExp( name + '\\s*=\\s*(.*?)(?:[\\s;,]|$)' ) );
  return value ? decodeURIComponent( value[1] ): '';
};

timerCookie.prototype.setCookie=function( name, value, day, path, domain ){
  return document.cookie = encodeURIComponent (name) + '=' + encodeURIComponent (value) +
   '; ' + 'expires=' + ( this.addDay(day) ).toUTCString () + '; ' + (path ? 'path=' + encodeURI (path) + '; ': '') +
   (domain ? 'domain=' + encodeURI (domain) + '; ': '');
};

timerCookie.prototype.padding=function( n ){ return n < 10 ? '0' + n: n; }

timerCookie.prototype.reset=function(){
   this.targetDay = this.addDay( this.LIMIT_DAY ).getTime();
   this.setCookie( this.COOKIE_NAME, this.targetDay + '', this.SHELF_LIFE );
   this.load();
};

timerCookie.prototype.load=function () {
  var text = '次回まで約';
  var s = (this.targetDay - (new Date).getTime()) / 1000 |0;

  if (s < 0)
   text = this.TIMEOUT_MESS;

  else {
   text += this.padding( s % 86400 / 3600 |0) + '時間' +
    this.padding( s % 3600 / 60 |0) + '分' +
    this.padding( s % 60 |0) + '秒です。';
   (function(obj){
	setTimeout (function(){ obj.load(); }, 1000);
   })(this);
  }

  document.getElementById( this.id ).innerHTML = text;
};

var countdown=new timerCookie('mess');
//-->
</script>

これで、setCookie関数を使えるようになりました。setCookie関数を使って作ったのが、上のprototypeにあるreset関数です。元のコードは本来、例文として作られたものですし、1回しか使わないという前提に立ったものです。そういう場合は無名関数で括ってしまうのが便利ですし、使いまわす時はオブジェクト化が便利だと思います。

ちなみに、オブジェクトは表示領域のidを引数にとるようにしています。これで、同じページで時間の違う、複数のタイマーを走らせることも出来ます。

タイマーを

“JavaScriptの無名関数とクラス” の続きを読む

A8.netの「はりっぱくん」を複数表示する

A8.netに「はりっぱくん(仮)」というサービスがあって、指定したキーワードでアフィリエイトを自動選択して表示してくれます。

ただ、このサービス、ひとつのページに複数貼っても、ひとつしか表示されません。貼り付けるコードの最後に、1行追記するだけで複数表示できるようになるので、やりかたを説明します。

この記事は2013年4月30日のものです。「はりっぱくん」がバージョンアップされれば、この作業は不要になるかもしれません。

「はりっぱくん(仮)」は、好きなキーワードを指定して、そのキーワードに関連するものだけをランダムに表示してくれます。そこで、今回は果物の「」と「」を例にとります。

“A8.netの「はりっぱくん」を複数表示する” の続きを読む

ニセモノ商材の見分け方

2つも3つも情報商材宣伝している奴は信じるな!

先に断っておくと、自分は情報商材そのものをまったく信用していない。それでも、自分が知らないだけで、いい情報商材がこの世にある可能性はある。しかし、100%絶対の自信を持って「こいつの宣伝は信じるな!」と言える目印がある。

それは、ひとりで複数の情報商材を宣伝している奴。これだけは絶対に信用するな!

なぜ複数の情報商材を宣伝している奴は嘘つきなのか?

最初は、そいつが本当に自分で使ってよかった「情報商材」を宣伝しているという前提で話を進める。

はじめて買った情報商材が、いいモノで、それを実践して成果が出ているとしよう。そうしたら、他の商材は必要ない。だから、宣伝するなら、その商材であるはずだ。

そうでない商材なら、自分が使っていないモノを宣伝していることになる。つまり、儲かるのかどうかわからないものを「儲かる」と言って宣伝しているということになる。嘘をついていないのなら、自分が買って、使って、儲かっているモノだということ。

それでは、もし別の情報商材も一緒に宣伝をしていたら?これはどういうことだろう?

最初に買ったものが、いいモノであったのなら、他のものを買う必要はない。だとすれば、どちらかは、宣伝している本人が使っていないものだということになる。

そうではなく、両方買ったのだろうか?1セット30万円前後もするのに、2つも買ったのか?

もし、買ったのなら、なぜ買ったのだろう。それは、最初の商材では、思わしい結果が出なかったということではないのか?そうでなければ、新しい教材に、もう一度30万円前後も払う理由を教えてほしい。

2つ以上の情報商材を宣伝している場合、宣伝している本人が全部を買っていないのであれば、その中には、内容も分からないのに、無責任に「儲かる」といって宣伝しているモノがあるわけだし、本当に2つ以上買ったのであれば、自分が使って儲からなかったもののどれかを、「儲かる」と言って宣伝していることになる。

どちらにしても、儲からない情報商材を、最低ひとつは宣伝しているわけだ。恐らくは全部が儲からないのだろうけど。

カタログみたいな形で「こんな商材もありますし、こういうタイプもあります」という宣伝じゃないもんな。「儲かる」「簡単」の繰り返し。

なぜ、毎日違う商材の事を宣伝しているのかといえば、宣伝素材のコピペだから。昨日コピペしたものは数日置いてからでないと、バレるので使いまわしできない。かといって、自分で何も調査していないのでコピペ以外は出来ない。だから、他の商材の宣伝素材をコピペする。それ以外では記事をアップ出来ないから。

もうひとつの理由は、前に宣伝したのは儲からなかったから。だから、他のを宣伝してみる。そうやって、次々に他の商材を宣伝するわけだ。

オプトインなどという、タダで配る情報商材は、普通は怖くて申し込めないのに、タダだから、簡単に申し込むと思っているバカ。そいつらは、本当に頭悪いわ。全部が同じ文体。それも仕方ないか、コピペだから。終わり方まで同じ。「最後までお読みいただきありがとうございました」馬鹿め。

コピペなどでは絶対にアフィリエイトは成功しない。甘く見るな。それを「簡単」「初心者でも」などと言っている宣伝は信じるな!宣伝しているやつら、本人たちが儲かっていないのに、それに申し込んで儲かるはずもない。

と、ここまで書いてはみたものの、そんなことは誰でもみんなわかってるか。言うまでもないことだったわ。