2005年05月28日

第22回 HTML でトラックバック

 最近「ブログが上位表示されすぎ」という情報を良く見かけます。では、なぜブログが上位表示されやすいのでしょうか?ブログが上位表示されやすいのは下記の 2 点によるものです。

  1. 重要なタグが使われている
  2. トラックバックの機能が標準で装備されている
    (番外). 単にブログの数 (率) が増えている

 SEO に詳しくなくても、記事を書けば上位に表示されやすいのは上記 1 によるものです。ただし、1 に関してはホームページビルダーや Dreamweaver 等のツールで作成しても、知識さえあれば同じ事ができます。通常の HTML サイトとの違いは 2 にあるわけです。ブログにはトラックバックを送信したり受信したりする機能が標準でついています。

 トラックバックを送信すると言うことは、外部からのリンクをもらうことが簡単にできるということです。外部からリンクをもらうと言うことは上位表示に結びつくわけですから、トラックバックの機能があるブログは上位表示がされやすいわけですね。このあたりは既にご存じの方も多いでしょう。ネットショッピングを運営している方で、このトラックバックの機能が欲しいからブログも書いている、またはこれからブログも使おうという方も多いと思います。

 第 2 回 SEO コンテストを開催するに当たり SEO-Association で、トラックバックを送受信できるようにしたいなぁということで、トラックバックの仕様を調べてみました。トラックバックの仕様を見ると HTML だけでもトラックバックを送れることがわかりました。

 では、実際に HTML でトラックバックを送ってみましょう。下記の『↓ここから』『↑ここまで』の間をコピーし、その中の■にトラックバックを送りたい URL を記述します。今回利用するトラックバックURL は http://www.su-jine.net/tb/1 を使います。■を http://www.su-jine.net/tb/1 に書き換えて tb.html とでも保存してください。tb.html をブラウザで表示すると、タイトル、URL、内容、ブログ名を入れるテキストボックスと送信ボタンが表示されます。下記を参考に、それぞれを記入して、「送信」ボタンをクリックしてください。

===↓ここから===========================================
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>トラックバック送信</title>
</head>
<body>
<h1>HTML でトラックバックを送ってみよう</h1>
<form action="■" method="post">
<table>
<tr>
<td>タイトル</td>
<td>:</td>
<td><input type="text" name="title" value="" size="50"></td>
</tr>
<tr>
<td>URL</td>
<td>:</td>
<td><input type="text" name="url" value="" size="50"></td>
</tr>
<tr>
<td>内容</td>
<td>:</td>
<td><textarea name="excerpt" cols="35" rows="2"></textarea></td>
</tr>
<tr>
<td>サイト名</td>
<td>:</td>
<td><input type="text" name="blog_name" value="" size="50"></td>
</tr>
<tr>
<td colspan="3"><input type="submit" name="ping" value="送信"></td>
</tr>
</table>
</form>
</body>
</html>
===↑ここまで==========================================

タイトルブログでは記事名です
(例:HTML でトラックバック)
URL上記記事のリンク URL です
(例:http://www.su-jine.com/)
内容概要を書きます
(例:HTML だけでトラックバックは送信できます。)
サイト名サイト名を書きます
(例:Su-Jine)

 実行してみましたか?<error>0</error> となっていればトラックバック送信成功です。<error>1</error> となっていればトラックバック送信失敗です。今回は URL のみ必須としましたので、URL を入れなかった場合または、上記■を URL に入れ替えなかった場合以外は成功したかと思います。

 では本当にトラックバックが送信できたか確認してみましょう。下記の URL を表示してください。自分で送ったものが書き込まれていますか?

 http://www.su-jine.net/tb.php

 上記のソースコードは意外と簡単ですよね。ホームページビルダーでも Dreamweaver でも作成できる簡単なものです。特に難しい技術を用いているわけでもなく、単に title, url, excerpt, blog_name をトラックバック URL に POST しているだけです。今回使用したトラックバックの受信ツールは私が作成したものですが、MovableType 等のブログへも送信できます (ほとんどのブログで対応しています)。

MovableType で確認する場合は■の箇所を下記 URL に書き換えてチェックてください。

これを知っていればプログラムを書ける人なら、上記■の箇所を複数対応するだけで、トラックバック送信ツールを作成することができます。ここまでの話はゴッゴル本で書いています。


 次にトラックバックを受信したい場合はどうでしょうか?こちらも HTML で可能かというと、残念ながら HTML では受信できません。それなりにプログラミングする必要があります。ここからはプログラミングの経験があるユーザが対象です。

 トラックバックを受信する場合は、上記の HTML で POST された変数をファイルに吐き出せばトラックバックの受信機能が作れます。PHP でのサンプルプログラムを下記に示します。ただし、下記の内容はエラー処理や、受信制限 (文字数制限)、文字コードの変換等が入っていませんので、実装する場合は適当にいじって使ってください。

===↓ここから==========================================
<?php
$title = $_POST['title'];
$url = $_POST['url'];
$excerpt = $_POST['excerpt'];
$blog_name = $_POST['blog_name'];

if ($url == "")
{
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
print "<response>\n";
print "<error>1</error>\n";
print "<message>Error</message>\n";
print "</response>\n";
}
else
{
$fp = @fopen ("tb.txt", "a");
flock ($fp, LOCK_EX);
$buf = $title . "," . $url . "," . $excerpt . "," . $blog_name . "\n";
fwrite ($fp, $buf);
flock ($fp, LOCK_UN);
fclose ($fp);
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?>\n";
print "<response>\n";
print "<error>0</error>\n";
print "</response>\n";
}
?>
===↑ここまで==========================================

 HTML サイトをブログ化してしまうというのはなかなか面白いと思いませんか?ブログというのはデザインが同じような感じになるため、インパクトのあるサイトを作るのはなかなか難しいです。オリジナリティのあるサイトを作成しつつ、ブログの良い機能を取り入れると、ひと味違ったサイトができあがります。新着情報を RSS 配信するというのも面白いですね。

投稿者 Su-Jine : 00:19 | コメント (0) | トラックバック | コラム

2005年05月26日

メールマガジン用

メールマガジン用のエントリです。 あまりにも宣伝っぽいトラックバックは削除します (リンクのみを残すとか)。

投稿者 Su-Jine : 10:12 | コメント (0) | トラックバック | コラム

2005年02月18日

第21回 日本語ドメインについて - YST, msn (beta) 編

第 1 回目は Google は日本語ドメインの Punycode 変換を行う機能を搭載し、Punycode の逆変換の機能も搭載しているため、Google 対策として日本語ドメインは SEO 的に有利になりそうですという内容でした。前回読んでいない方は 第 20 回 日本語ドメインについて - Google 編 を読んでください。

第 2 回目の今回は YST, msn (beta) での検証結果です。

Google の時と同じ方法で YST, msn (beta) のアクセスログを取得しました。検証方法は下記の通りです。

  1. xn--t8j316ntzc.com (お正月.com) を取得する。
  2. アクセスログをとれるようにページを作成し、アップする。
  3. 上記ドメインに Su-Jine のトップページから下記のようにリンクを貼る。
    <a href="http://お正月.com/">お正月.com</a>
  4. 上記サーバに link.php, others.php をアップし、内部リンクを作成する。
    <a href="http://xn--t8j316ntzc.com/link.php">お正月.com リンク</a>
    <a href="http://お正月.com/others.php">その他リンク</a>
  5. アクセスログを確認し、クローラのアクセスがあるかを確認する。また、検索された場合、どのような検索結果になるかを確認する。

今回 4 番目で「その他リンク」を設けたのは index.php は Google の検索結果がインデックスされた場合に、YST や msn (beta) のクローラがアクセスできてしまうためです。そのため、今回は index.php にアクセスがあれば Punycode の変換ができると判断したのではなく、others.php にアクセスがあるか無いかで判断しました。

結論としては、残念ながら YST, msn (beta) は Punycode 変換ができないということがわかりました。まず、index.php には YST のクローラのアクセスがありましたが、これは Google の検索結果としてインデックスされた結果からのアクセスだと考えられます。others.php にはYST, msn (beta) のアクセスはありませんでした。

また Punycode の逆変換を調べるため link.php がどのように検索されるかを調べたところ、下記のような検索結果となります。まず、YST で「お正月 リンク」で検索すると 495,130 件中 13 件目あたりに表示されます (2005/02/06 現在)。検索結果は下記の通りです。URL は http://xn--t8j316ntzc.com/link.php となっており、Punycode の逆変換はできていません。

YST 検索結果


リンク - お正月.com
各検索エンジンによるリンクを調べる。 ... お正月.com のリンク.お正月.com 運営者リンク. SEO 対策ディレクトリ型検索エンジン Su-Jine ...
http://xn--t8j316ntzc.com/link.php - 1k - 2005年1月21日- キャッシュ [xn--t8j316ntzc.com から検索]

次に msn (beta) で「お正月 リンク」や「正月 リンク」で検索してもまるでヒットしないので、ドメインで検索しました。検索結果は下記の通りです (2005/02/06 現在)。

msn (beta) 検索結果


リンク - お正月.com
各検索エンジンによるリンクを調べる。 お正月.com のリンク お正月.com 運営者リンク SEO 対策ディレクトリ型検索エンジン Su-Jine SEO ...お正月.com のリンク お正月.com 運営者リンク SEO 対策ディレクトリ型検索エンジン Su-Jine SEO 対策意見交換掲示板 SEO 診断掲示板 ...
xn--t8j316ntzc.com/link.php キャッシュ ページ

msn (beta) の URL を見てもらえるとわかりますが、xn--t8j316ntzc.com となっており、msn (beta) も Punycode の逆変換はできないようです。

従って、前回の最後でも書いたとおり、日本語ドメインを使う場合は、リンクするときには必ず <a href="xn--t8j316ntzc.com">お正月.com</a> としましょう。そうすれば、YST, msn (beta) のクローラもアクセスすることができます。Google でインデックスされれば、Punycode 逆変換をしてくれるため、日本語ドメインとして検索結果に表示され、アクセス増にもなることでしょう。

現在は Google のみが日本語ドメインをとった場合に有効であるという結果になりましたが、最近の検索エンジンの動きを見ていると、生き残りをかけて、どんどん新しい機能を取り入れようとしているため、YST, msn (beta) が日本語ドメイン対応になるのも時間の問題かもしれません。その前に IE が日本語ドメイン対応しなければ爆発的な普及はしないかもしれません。Longhorn に付属する IE に期待しましょう。

日本語ドメインはまだまだ普及していませんので、YST, msn (beta) が対応する前に押さえておくのも良いと思いますよ。

この記事を書いているときに次のようなニュースが出ていました。「国際化ドメイン名がフィッシングに悪用される問題

日本語ドメインを取得する場合は注意しましょうね。

◆日本語ドメインを取得するには 早い者勝ち! com/co.jp/jp ドメイン取るならお名前.com

投稿者 Su-Jine : 09:56 | コメント (0) | トラックバック | コラム

2004年12月28日

第20回 日本語ドメインについて - Google 編

今回は日本語ドメインについて書いてみたいと思います。皆さんは日本語ドメインを取得していますか?URL (ドメイン名やファイル名) に検索されたいキーワードを含めると SEO に有効なわけですが、今回、日本語ドメインは検索エンジンにとって有利に働くのかを検証してみました。日本語ドメインについての第 1 回目は Google に関して調査です。次回は YST 等で検証をしてみたいと思います。

今回取得したのは「お正月.com」です。ドメインをとろうと考えたのが 12 月なので、適当に考えてとってみました。取得日は 12 月 14 日です。Google の調査しかできなかったのは、Google 以外のクローラのアクセスが無かっただけなんですよね。

では、日本語ドメインとはどのような仕組みなのかを説明します。基本的に日本語ドメインも英語のドメインに変換されます。たとえるならフリーダイヤルと通常の電話番号みたいなものでしょうか。0120-xxx-xxx に電話をかけると 03-yyyy-yyyy につながるというようなものです。「お正月.com」にアクセスしようとすると「xn--t8j316ntzc.com」にアクセスされます。この変換には Punycode と呼ばれる変換が使われています。この Pnycode の変換機能を持っているブラウザであれば、日本語ドメインを表示することができます。Internet Explorer には変換機能がありませんがプラグインとして提供されています。また、Firefox や Opera 等のブラウザは変換機能を持っているため、日本語ドメインにアクセスができます。各ブラウザの対応状況は下記の URL をご覧ください。 http://xn--wgv71a119e.jp/access/

日本語ドメインにアクセスしてから表示されるまでの流れを下記に示します。

  1. http://お正月.com/ をアドレスバーに入力またはクリック
  2. ブラウザが日本語ドメインと判断し、Punycode に変換
  3. 変換された http://xn--t8j316ntzc.com/ にブラウザがアクセス
  4. xn--t8j316ntzc.com を DNS に問い合わせ IP アドレス取得
  5. 202.181.105.182 に HTTP GET
  6. ソースコード取得
  7. ソースコード表示

上記の流れで日本語ドメインでない場合は、2, 3 が省略されるだけです。検索エンジンのクローラもブラウザと同じ動きをするため、検索エンジンのクローラは日本語ドメインを Punycode に変換する事ができるのかを検証してみました。

検証方法は下記の通り。

  1. xn--t8j316ntzc.com (お正月.com) を取得する。
  2. アクセスログをとれるようにページを作成し、アップする。
  3. 上記ドメインに Su-Jine のトップページから下記のようにリンクを貼る。
    <a href="http://お正月.com/">お正月.com</a>
  4. 上記サーバに link.php をアップし、内部リンクを作成する。
    <a href="http://xn--t8j316ntzc.com/link.php">お正月.com</a>
  5. アクセスログを確認し、クローラのアクセスがあるかを確認する。また、検索された場合、どのような検索結果になるかを確認する。

上記の検証方法は、Su-Jine のトップページをクロールし、その中から http://お正月.com/ というリンクを見つけます。そのリンクをクローラがアクセスするには、http://xn--t8j316ntzc.com/ に変換してアクセスしなければなりません。もし、ロボットが Punycode 変換機能を持っている場合は、クローラのアクセスログが取得できるはずです。逆にクローラのアクセスがなければ、その検索エンジンは Punycode の変換機能を持っていないということになります。

アクセスログを確認したところ Google のクローラによるアクセスがありました。という事は、Google は日本語ドメインと判断すれば Punycode に変換してアクセスする事がわかります。「お正月」で検索 すると、2 ページ目 (約 1,340,000 件中 15 位あたり) に表示されています (2004/12/26 現在)。また、検索結果は下記のように表示されます。

http://www.google.com/search?q=%E3%81%8A%E6%AD%A3%E6%9C%88&hl=ja&lr=&start=10&sa=N

=== Google 検索結果 ===========================================
お正月.com
お正月.com とは日本語ドメインのテストサイトです。ロボット型検索エンジン が日本語ドメインを punycode に変換してサイトにアクセスしてくるのか をチェックします。 お正月.com. お正月.com とは. ...
お正月.com/ - 2k - 2004年12月24日 - キャッシュ - 関連ページ
===============================================================

一番下の URL を見てください。「お正月.com/」となっています。これでは「クリックしても Internet Explorer じゃみられないでしょ?」と思うかもしれません。この検索結果の「お正月.com」のリンク先を調 べてみると、「http://xn--t8j316ntzc.com/」となっているんですよね。ということは、Google は「http://お正月.com/」を「http://xn--t8j316ntzc.com/」と変換してインデックスしているわけです。そのため Punycode 変換機能を持たないブラウザでも、検索結果からアクセスすることは可能なわけです。

また、上記 4 の検証は「http://xn--t8j316ntzc.com/link.php」とリンクされているものが、検索結果で「お正月.com/link.php」と表示されれば Punycode から日本語ドメインへの逆変換機能を持っていることを確認できます。Google の検索結果は下記の通りです。「お正月 リンク」で検索すると、約 501,000 件中 2 番目に表示されます (2004/12/26 現在)。

http://www.google.com/search?hl=ja&q=%E3%81%8A%E6%AD%A3%E6%9C%88+%E3%83%AA%E3%83%B3%E3%82%AF&lr=

=== Google 検索結果 ===========================================
リンク - お正月.com
お正月.com のリンク. お正月.com 運営者リンク. ...
お正月.com/link.php - 2k - キャッシュ - 関連ページ
===============================================================

上記結果から、Google は Punycode から日本語ドメインへの逆変換機能も持っていることがわかります。

結論としては検索したいキーワードで日本語ドメインを取得・運営することは Google にとって SEO の効果はあると思われます。さらに、検索結果の URL に商品名が表示されて、ある程度の順位を確保できればクリックされる率が高くなると思います。たとえば、下記の検索結果の場合、ぱっと見て何のサイトかわかるのは B だと思いませんか?

  1. oshogatsu.com/
  2. お正月.com/

どうでしょうか?日本語ドメインを取得しているけどただ押さえている方や、まだ取得すらしていない方は多いと思います。私が検索したところ「おっ」っと思えるようなドメインが未だ空いています。

日本語ドメインを使うときに注意する点としては、今回は検索エンジンの検証のために <a href="http://お正月.com/">お正月.com</a> とリンクを貼りましたが、実際には <a href="http://xn--t8j316ntzc.com/">お正月.com</a> とリンクを貼りましょう。Google にとってはどちらでも良いのですが、リンクをクリックしたときに Internet Explorer では表示できない可能性がありますので。Firefox がシェアを伸ばしているといっても、90% 程度は Internet Explorer です。Google は Punycode から日本語ドメインへの変換機能も持っているため、後者のリンク方法でも Google の検索結果の URL は「お正月.com/」と変換されて表示されます。

これを読んでいるユーザにとっては既にサイトを持っている方も多いと思います。既にサイトを持っていてドメインが長い場合は、日本語ドメインを取得して、日本語ドメインの方に統一するという方法もあると 思います。

来年は日本語ドメインがブレイクするかもしれませんね。

◆日本語ドメインを取得するには 早い者勝ち! com/co.jp/jp ドメイン取るならお名前.com

投稿者 Su-Jine : 09:20 | コメント (0) | トラックバック | コラム

2004年10月23日

第19回 Yahoo! Web Rank について

 今回は Yahoo! Web Rank についてです。Yahoo! Web Rank は今年の 3 月中旬に登場した Google PageRank のようなものです。Yahoo! Toolbar のバージョン 5.4.9 をインストールすることで表示されます。現在はこのバージョンの Yahoo! Toolbar はダウンロードできません。Yahoo! Web Rank の仕組みについては Yahoo! Help、SEM リサーチさんのページで詳しく説明されているのでそちらをご覧下さい。

  1. Yahoo! Help
  2. Yahoo! Web Rank とは?
  3. Yahoo! Web Rank とは? (詳細版)

 このコラムは、「一般的に知られていない SEO 情報の公開」を目指しているため、Yahoo! Toolbar が Yahoo! Web Rank をどのように表示しているかを解説したいと思います。久しぶりに技術的な内容になるので、少し難しいかもしれませんが頑張りましょう!!

 第 10 回 Googleのフレッシュクロール対象サイトにするには?第 11 回 Googleのフレッシュクロール対象サイトにするには、Googleツールバーが影響している? で Google ツールバーが送っている情報をキャプチャしたのと同じように、今回は Yahoo! Toolbar が送っている情報をキャプチャしました。残念ながら Yahoo! Web Rank に Su-Jine はランクされていないようですので、とりあえず Yahoo! JAPAN の Yahoo! Web Rank のパケットをとりました。下記がキャプチャ情報です。

 POST /ri/ri?t=806864 HTTP/1.1
 Host: cpn.yahoo-webrank.net

 o=http%3a%2f%2fwww.yahoo.co.jp%2f&
 u=http%3a%2f%2fwww.yahoo.co.jp%2f&
 n=z3uUgKHRQLWSbViFP3SGDA&
 p=1&
 q=r&
 c=c&
 v=5_4_9&
 i=us

 では、引数を見てみましょう。ここから下の◆印までは全くわからない場合もありますが、「へぇ〜」くらいで読んで頂いてかまいません。

 まず、POST にある /ri/ri?t=806864 です。t は時間かなぁと思ったのですが、ちょっと正確な情報はわかりません。この値はいくつにしても Yahoo! Web Rank の結果を得ることができます。次の o, u は指定した URL ですね。なぜ 2 つ同じ情報を送っているかは不明でが、o の方は POST しなくても Yahoo! Web Rank を得ることができました。n はたぶん私のツールバー固有の情報だと思います。Google ツールバーの ch 値と異なり、どんな URL でも変わることがありません。p, c は不明。q は Rank を表示させるための引数かと思いましたが、これも POST しなくても Yahoo! Web Rank を取得することができるため詳細がわかりません。v はツールバーのバージョン、i は地域情報ですね。

 上記を POST した結果は下記のようなものになります。

 p=1&t=123245681&r=9&d=0&s=0&u=5

 この引数も見てみましょう。p は POST した p と同じ値です。t は POST した t とは違うようです。POST した t をいくら変化させても同じ値が帰ってくると言うことは、n を何らかの関数で加工したものか、どんなクエリでも同じ値を返すかのどちらかだと思います。ようやく出てきました。r が Yahoo! Web Rank の値です。上記の結果から Yahoo! JAPAN の Yahoo! Web Rank は 9 と言うことになります。d, s, u は不明です。要するに、上記の結果を得ることができれば r を見ると Yahoo! Web Rank がわかるわけです。◆

 でも、パケットキャプチャなんてできないし、Yahoo! Web Rank 知ったから何だって言うの?と思われるかもしれません。

 Yahoo! Help の Why should I enable Yahoo! Web Rank? に Yahoo! Web Rank は新規ページを素早く発見する機能を持っているとあります。

Yahoo! Help 原文

『Helps Yahoo! to discover new public sites faster and incorporate those sites into the Yahoo! Search index resulting in more comprehensive search results. 』

 Su-Jine 内の 掲示板 でも良く、「YST にクロールしてもらうにはどうすれば良いのか?」という書き込みも多くありますが、Yahoo! Web Rank 付きの Yahoo! Toolbar をインストールし、そのブラウザでクロールしてほしいページを表示すれば、Yahoo! のクローラを呼ぶことができると言うことですよね。しかし、Yahoo! Web Rank 付きのツールバーは既にダウンロードできない訳です。

 私がパケットをキャプチャしたところ、Yahoo! Web Rank を表示するために送っている情報は上記の内容以外は見つけられませんでした。ということは、上記のクエリを発行させることができれば、ツールバー無しでも同じように、YST のクローラを呼ぶことができるのではないかと思います。早速上記のクエリを発生させるツール、Yahoo! Web Rank チェックツール を作ってみました (まだ Yahoo! Web Rank 自体がベータ版ですので、正常に取得できない場合もあります。大手サイトも 0 と表示される場合も多いでし、同じ URL でも違う値が表示される場合もあります。)。

 上記ツールで自分の Yahoo! Web Rank をチェックすることにより、YST のクローラを呼び込むことができるかもしれませんよ。

投稿者 Su-Jine : 12:41 | コメント (0) | トラックバック | コラム

2004年08月20日

第 18 回 ライバルサイトと大差はないけど、なぜ自分のサイトは上位に表示されない?

 今回の内容は中・上級者にはちょっと簡単な内容かなぁと思いますが、あまりにも質問が多いので取り上げることにしました。

 最近、掲示板やメールで、「初心者 SEO 対策ツールを使っていますがライバルサイトとポイントもそんなに変わらないのに、上位表示できません。」というような内容の投稿が多いです。なぜ、自分のサイトは順位が上がらないのに、ライバルサイトは上位に表示されるのか。今回は検証ではなく、解説をしていきたいと思います。

 Su-Jine ではこれさえやっておけば上位表示間違いなし、という対策方法を 4 つ挙げています。まだ見ていない方はコラムを読む前に読んで下さいね。

  1. TITLEタグ
  2. H1タグ
  3. テキストマッチング
  4. リンク元の重要性

 上記 1 〜 4 までの対策は「自サイト内完結型対策」と「外的要因対策」の 2 つに分けられます。「自サイト内完結型対策」とは、自分の手で新しく作ったり、変更したりする対策のことを言います。「外的要因対策」とは、自分の手だけではなく、他人を絡めた対策のことを言います。

 では、1 〜 4 までの対策を「自サイト内完結型対策」と「外的要因対策」に分けてみましょう。

  1. 自サイト内完結型対策

    1, 2, 3

  2. 外的要因対策

    4

 1 〜 3 までの対策は、自分で HTML を新規に作成・修正し、アップすることで対策完了です。4 は他サイトからリンクをもらわなければならないため、他人の力が必要です。

 Web 上に表示されるソースコードは隠すことができませんので、A の対策はソースコードを見たり、各種ツールでチェックすると、ライバルサイトがどのように対策しているか全てわかります。従って、ライバルサイトとの違いは B の対策がちゃんとできているかどうかと言うことになります。

 Google ではリンク元を全てチェックすることはできません。以前はPageRank 4 以上のサイトしかリンク元には表示されませんでした。先々月にリンク元の検索アルゴリズムが変更となりましたが、変更後も全てのリンク元が表示されるわけではありません (Google の PageRank更新に関しては、「PageRank の更新はいつ?」で Su-Jine なりの考えをまとめています。)

 上位表示できないという方は、「キーワード出現率は私のサイトの方が上だし、リンク元の数も同じ、PageRank も同じ (または上)。それなのに上位表示できない。」ということを書き込んでいます。

 「リンク元の数が同じ」と言うのは「見かけ上」であり、本当に同じかどうかは判断できません。上でも書いてあるとおり「全てのリンク元が表示される訳ではない」からです。

 上位表示できているサイトは「有名人・有名企業のオフィシャルサイト」「非常に面白いサイト」「非常に便利なサイト」「非常に頑張っているサイト」です。前半の 3 つのタイプのサイトは必然とリンクが集まるサイトです。通常のネットショッピングや個人のサイトでこのようなサイトを作るのはとても難しいです。そのため、うまく上位表示できているサイトとは最後の「非常に頑張っているサイト」ということになります。

 PageRank の高いところばかりとリンクしていると、効率よく PageRank を上げることはできます。そして、見かけ上はライバルサイトと同じになります。しかし、「非常に頑張っているサイト」は、リンク元に現れないような、小さなサイトともこつこつと相互リンクをしていたりします。見かけ上のリンク元の数は同じでも、実際のリンク元の数は、数倍から数十倍違うはずです。

 掲示板第 15 回 PageRank (ページランク) の通説と事実等で、「PageRank の高いところとの相互リンクばかり狙うのではなく、PageRank の低いところとも相互リンクをしましょう。」と書いているのはこのような「見かけ」の対策をしてもあまり効果は無いためです。

 検索エンジン対策で行き詰まったら、「もし、自分が検索エンジンのアルゴリズムを決定できる立場だとしたら」ということを考えてみてください。そういう立場の場合、あなたなら「自サイト内完結型対策」と「外的要因対策」のどちらに重みを置きますか?検索エンジンのアルゴリズムを決定できる立場であれば、より難しい対策の方に重点を置くはずです。それは、難しい対策に重点を置いた方が、不正 (スパム) を少なくできるからです。A よりも B に重点を置いた方が、良質なサイト (他サイトからの支持が多いサイト) を上位に表示することができるとGoogle は考えたのでしょう。Google は初歩的なスパム (隠しテキストや極小フォント、無意味なテキストの繰り返し等) に対してペナルティを与えると言うよりは、それらのスパム手法を使っても上位に表示されないだけだと思います。

 「自分が検索エンジンのアルゴリズムを決定できる立場なら」と考えながら対策をすると、どの対策が有効なのか、無効なのか、かなり見えてくると思いますよ。

 次回は今実験中の結果が出ればそれについて書くか、数日前に YST のインデックスが更新されたのでそれについて書くか、Yahoo! Web Rank について書くかの 3 択です。どれについて書くかはちょっとわかりませんが、Yahoo! Web Rank について書くのも面白いかなぁとも思います。

投稿者 Su-Jine : 00:08 | コメント (3) | トラックバック | コラム

2004年07月15日

第17回 JavaScript と SEO

今回はこのコラムの読者でもある、「無料ドット・コム」の管理人さんから「JavaScript と SEOというのはどうでしょうか?」と言う提案がありましたので、JavaScript と SEO について書いてみたいと思います。上級者には少し簡単な内容になるかも知れませんが、サーバサイドスクリプトとクライアントサイドスクリプトの動きを理解して、それぞれの特徴をうまく利用したサイト構築をしてもらえればなぁと思って書きました。「えー、YST 対策についてじゃないの?」という意見もありそうなので、YST 対策については下の方で少しだけ紹介したいと思います。

まず、何から書こうか悩みましたが、「スクリプト言語とは何か」ということから書いていきたいと思います。通常、プログラミング言語とはプログラマが書いたソースコードを、コンパイラという翻訳機によってマシン語 (コンピュータにわかる命令) に変換され、実行されます。しかし、翻訳作業を行わなくても実行できる簡易型の言語というのが登場しました。それが「スクリプト言語」です。

それでは、通常のプログラミング言語とスクリプト言語の違いを簡単に紹介したいと思います。

通常、アプリケーション (Word, Excel 等) は複雑な処理が要求されるため、ほぼ通常のプログラミング言語 (C 言語等) が用いられています。逆に Web で利用されるものはそれほど複雑な処理は必要ないためスクリプト言語が多く用いられています。

ここまで何言っているか全然わからない方、大丈夫です。ここまではわからなければ「へぇ〜」と流してもらってかまいません。

さて、スクリプト言語について微妙に学んだところで本題に入りましょう。スクリプト言語には Perl, PHP, ASP, JavaScript, VBScript 等があります。同じスクリプト言語の中でもサーバサイドスクリプトとクライアントサイドスクリプトに分けることが出来ます。例えば、Perl、PHP、ASP 等はサーバサイドスクリプトで、JavaScript、VBScript 等はクライアントサイドスクリプトです。

SEO を考える上で、このサーバサイドスクリプトとクライアントサイドスクリプトの違いを知っておくことは非常に重要です。一緒に勉強をしましょう。

まず、Web 上で使われるもっとも知られているクライアントサイドスクリプトは JavaScript です。また、Web 上でもっとも知られているサーバサイドスクリプトは Perl です。Perl と書くとわからない方もいるかも知れませんが CGI のことです。厳密に言うと CGI というのは Common Gateway Interface と言う仕様であり言語ではありませんので、スクリプト言語というのは Perl と言うことになります。

ではクライアントサイドスクリプトとサーバサイドスクリプトの動きを JavaScript と Perl を例にして説明したいと思います。

  1. クライアントサイドスクリプト (JavaScript の例)

    ab
    A

    B

    C
    dc

    1. あなた
    2. あなたのブラウザ (Internet Explorer 等)
    3. Web サーバプログラム (Apache 等)
    1. あなたがブラウザに JavaScript のソースコードがあるページの URL を入力する。
    2. ブラウザがソースコードをダウンロードする要求を出す。
    3. Web サーバプログラムが結果を返す。
    4. ダウンロードが完了したらブラウザがソースコードを解析し、表示する。もし JavaScript が含まれていたら JavaScript を実行する。

  2. サーバサイドスクリプト (Perl の例)

    abc
    A

    B

    C

    D
    fed



    1. あなた
    2. あなたのブラウザ (Internet Explorer 等)
    3. Web サーバプログラム (Apache 等)
    4. Perl モジュール


    1. あなたがブラウザに Perl のソースコードがあるページの URL を入力する。
    2. ブラウザがソースコードをダウンロードする要求を出す。
    3. Web サーバプログラムは Perl のソースコードを理解できないため、Perl モジュールに解析を依頼する。
    4. Perl モジュールが解析結果を返す (この解析結果は HTML となる)。
    5. Web サーバプログラムが Perl モジュールが解析した結果を返す。
    6. ダウンロードが完了したらブラウザがソースコードを解析し、表示する。もし JavaScript が含まれていたら JavaScript を実行する。

    ポイントは、クローラの仕事は 1-d, 2-f の「ダウンロードが完了したら」で終了することです。それ以降の解析・表示は行いません。従って、ブラウザは JavaScript を実行しますが、クローラは JavaScriptを実行しません。逆に、1-d, 2-f までの処理はクローラ、ブラウザにかかわらず行われる処理です。

    たとえば、外部 JavaScript でメニューを作成し、全てのファイルでそれを呼び出している場合と、Perl でメニューを作成し、それを全てのページで呼び出している場合は、前者の方はクローラがメニューをたどることはない (JavaScript を実行しない) ため、メニューからリンクされているページが検索にはヒットすることはありません。後者の方はクローラがメニューにあるリンクをたどってくれますのでメニューにあるリンクページは検索にヒットします。

    実際のサンプルを見てみましょう。下記のサンプルは外部メニューを JavaScript で表示する場合と、PHP で表示する場合の例です。

    1. クライアントサイドスクリプト (JavaScript の例)

    2. サーバサイドスクリプト (PHP の例)

    ブラウザでアクセスしたときには JavaScript と PHP の文字が違う以外は同じ表示になりましたね?

    では、実際のソースコードとクローラでのアクセス結果を見てみましょう。

    上記のページを表示しながらみて下さい。JavaScript の方は A の 5 行目で B のメニューを呼び出しています。C を見ると 14 行目は特に変化はありません。しかしブラウザで表示すると B のメニューが表示されます。これはブラウザが JavaScript を実行しているためです。クローラはこの JavaScript を実行しないため B に含まれる「SEO」や「ツール」等の文字やリンクを取得することはありません。

    次に PHP はどうでしょうか?D は 7 行目で E を呼び出しています。F の 16 行目を見ると D の 7 行目が E に置き換わっていますね。と言うことは、外部で定義した E に含まれる「SEO」や「ツール」等の文字やリンクをクローラは取得することになります。

    ちょっと初めての方は混乱するかもしれませんが、ここは非常に重要ですのでわかるまで確認してくださいね。

    また、外部で JavaScript を定義しない場合も、JavaScript 内に記述されているキーワードは無視されるため、検索にヒットさせたいキーワードは JavaScript で書かない方が良いと言うことです。逆に、検索にヒットさせたくないキーワードを JavaScript にするとキーワード出現率を変更することができます。たとえば、「What's new」等はころころ変えているとせっかく頑張って最適化したページのキーワード出現率が変わってしまいますよね。そんなときには、JavaScript にすると「What's new」内のキーワードはキーワード出現率には含まれません。もちろん iframe 等でも同じことができます。

    クライアントサイドスクリプトとサーバサイドスクリプトの動きがわかりましたか?この違いがわかると効果的な対策を施せると思います。


    さて、YST についてです。商用サイトの管理人さんは不安な毎日だと思います。しかし、YST はもう少し枯れるまで待つしかないと思います。ただ待つだけではさらに不安ですよね。そこで、Su-Jine も YST 対策について検証するページを作成しました。

    上記ページには、YST のクローラのアクセス頻度、順位変動、対策方法をアップしています。施した対策方法は、「キーワード出現率を上げ、主要キーワードを論理タグで囲む」と言うことだけです。もちろん META タグ等もちゃんと記述しています。ただし、外部リンクはありません。

    この対策だけで約 10 万ページ中 20 位以内にはなれるので、リンクの対策をすればもう少し上位を狙えるのではないかと思います。と言うことで基本的に Google の対策と変わりませんね。


    次回は良く来る質問について書きたいと思います。たいていは「Su-Jine のサイトに書いてある対策を全て行ったけど上位表示が出来ない」というものです。Su-Jine では 4 つの対策を推奨しています。この対策をしたにもかかわらず、なぜ上位表示できないのかを説明したいと思います。

    【補足】- 2004/07/22

    掲示板で質問が来ましたのでその内容を書きたいと思います。下記のようなスクリプトがあった場合 (外部 JavaScript ではない) でもクローラは中の文字を読みませんか?と言う質問です。

    <body>
    <script language="JavaScript>
    <!--
    document.write('ここのテキストは検索エンジンは読み取る?');
    // -->
    </script>
    </body>

    結論から書くと上記の「ここのテキストは検索エンジンは読み取る?」と言う文字は検索でヒットすることはほぼありません。

    実際のサンプルページを見てみましょう (もし、このサンプルページの作者の方が見ていて、リンクをやめて欲しいと言うことであればお手数ですがご連絡下さい。)

    上記のページのソースを見てもらえるとわかりますが、アクセスした時間によってメッセージを変えるスクリプトです。ソース中には時間毎のメッセージが書かれています。これを URL で検索するとこのようになります。

    通常はサイトの説明が出ますが、タイトルしか出てないですよね。要するに JavaScript を外部ファイルにしなくても JavaScript 内のキーワードは無視されているわけです。これは、JavaScript が無視されているわけではなく、JavaScript の構文に原因があります。通常 Web ページを作成するときに、HTML 内でコメントを書く時には下記のように書きます。

    <!-- ここはコメントです -->

    もう一度上記のサンプルを見てみてください。JavaScript 内の document.write の部分はコメントと判断されるわけです。なぜ <!-- // --> をつけているかというと、JavaScript に対応していないブラウザの場合はそのまま表示してしまうための配慮です。従って、<!-- // --> をはずすと「ここのテキストは検索エンジンは読み取る?」を検索したときにヒットするようになります。

    <body>
    <script language="JavaScript>
    document.write('ここのテキストは検索エンジンは読み取る?');
    </script>
    </body>

    ただし、「ここのテキストは検索エンジンは読み取る?」と言うキーワードだけでなく、"document.write" と言う文字も検索にヒットするようになってしまいます。当然 document write と言うキーワードが入りますので、キーワード出現率が変わってしまいます。結局の所、<!-- // --> を付けて、中のキーワードをコメントアウトしておいた方が SEO 的にも良いですし、検索結果も美しくなります。

    投稿者 Su-Jine : 10:16 | コメント (0) | トラックバック | コラム

    2004年06月18日

    第16回 YST (Yahoo Search Technology) のキャッシュが古いのは思い込み等の検証結果

    今回は Su-Jine なりの YST 検証結果を書きたいと思います。まず、これを読む前に「YST は使えない検索エンジン」「Yahoo! JAPAN は金儲け主義」等という批判的な考えを持っている方は、そのような意見をとりあえず捨てて読んで下さい。先入観があると、どうしても偏った情報しか得られないと思いますので。

    まず、Yahoo! JAPAN が Google から YST に変更するまでの流れをまとめたいと思います。

    年月日出来事
    2002/12/23米Yahoo!Inktomi を買収
    2003/02/18米OvertureAltavista を買収
    2004/02/25米Overture が FAST の検索部門 (AlltheWeb) を買収
    2003/07/14米Yahoo! が 米Overture を買収
    2004/02/17米Yahoo! が独自のロボット型検索エンジン YST (Yahoo Search Technology) に切り替え
    2004/05/31Yahoo! JAPAN が YST に切り替え

    上記のことから、米Yahoo! は 3 つのロボット型検索エンジンを取得 (Inktomi, Altavista, AlltheWeb) していることがわかります。この 3 つの検索エンジンを組み合わせた検索エンジンが YST (Yahoo Serch Technology) です。その中でもベースとなっているのが Inktomi です。

    このコラムでは YST 対策と言うよりも、YST について気になったところがいくつかあったので、その検証結果を紹介したいと思います。「そんなことどうでも良いから YST でどうやれば上位表示できるんだよ」と言う意見もありそうですが、上記でも書いたとおり、YST 対策はほぼ Inktomi 対策と同じですので、Su-Jine の「自分でやろう SEO」をしっかり読んでいる方なら上位表示はできると思います。

    では、YST について調べたことを 3 つ紹介します。


    1. YST の検索結果はどれが本物?

    YST の検索結果はいくつか存在します。米Yahoo!, Overture, Yahoo! JAPAN の 3 つが YST を採用していると思われますが、「seo対策」で検索したときには下記の 3 つのパターンが存在します。

    1. 米Yahoo! での日本語検索
    2. Overture での日本語検索
    3. Yahoo! JAPANでの検索

    どの YST で上位表示を目指せばよいのでしょうか?当然のことながら、日本人に見てもらいたい Web サイトの場合は、いくら米Yahoo! で上位表示されていても意味がありません。

    では、なぜ米Yahoo! で「seo対策」と検索した結果が Overture, Yahoo! JAPAN とまるっきり異なるのでしょうか?理由は、形態素解析用辞書が違うためです。「形態素解析」とは日本語の文章を単語に分解することを言います。英語の文章の場合は、" "(Space), ","(Comma), "."(Period), "?"(Question), "!"(Exclamation) で単語を分解できますが、日本語の場合は、その区切りが無いために単語に分解するのが難しいわけです。

    下記の文章を含む 2 つのページ (X, Y) があったとします。

      X:seo は Google と Yahoo! を対にして策を講じる必要がある。
      Y:seo 対策を考えてサイトを構築する。

    この文章は YST では次のように単語が分解されます。

      X':seo | は | google | と | yahoo | を | 対 | に | して | 策 | を | 講じる | 必要 | が | ある
      Y':seo | 対策 | を | 考えて | サイト | を | 構築 | する

    従って、YST のインデックスは下記のようになります。

    キーワードページ
    XY
    seo
    ---
    google---
    ---
    yahoo---
    ---
    ---
    して---
    ---
    講じる---
    必要---
    ---
    ある---
    対策---
    考えて---
    サイト---
    構築---
    する---

    米Yahoo! では「seo対策」と検索すると「seo」+「対」+「策」と検索されます。そのため、『「seo」かつ「対」かつ「策」が含まれるページ』となり X が検索されます。Yahoo! JAPAN で検索すると「seo」+「対策」と検索されるため、『「seo」かつ「対策」が含まれるページ』となり、Y が検索されます。

    このように米Yahoo! の場合は単語が正常に分解出来ないため、思った通りの検索結果にはなりません。そのため、Yahoo! JAPAN と 米Yahoo! では検索結果が異なる場合があります。

    次に、Overture での日本語検索と Yahoo! JAPAN の検索結果の違いはどうでしょうか?Overture の画面の下に「powered by YAHOO! search」とありますが、実際は Inktomi の検索結果です。この Inktomi の検索結果にくわえて、広告を含めているのが Overture です。「seo対策」と検索した場合には、1 位のサイトの URL の右に「スポンサードサーチTMによる掲載」と言うリンクがあります。URL の右に「その他の表示」とあるのが通常の Inktomi の検索結果です。この「その他の表示」をクリックすると下記のメッセージが表示されます。

    『その他の表示


    その他の表示は、Inktomi によって提供されています。これらのリンクの中には、サイトの所有者が審査のために料金を支払っているものや、クリック料金を支払っているものが含まれてる場合もあります。これらのサイトはセクションごとに、アルゴリズムによってランク付けが決定されており、広告などの料金による順位の変動はありません。』

    「Inktomi によって」とありますので、Overture での日本語検索は YST ではありません。このため、Yahoo! JAPAN と Overture で検索結果が異なります。

    Yahoo! JAPAN で上位表示したいのであれば、米Yahoo! や Overture は無視して、Yahoo! JAPAN だけ研究しましょう。


    2. YST のキャッシュの不思議

    次に紹介するのが、キャッシュの不思議です。Yahoo! JAPAN にはページ検索に日付が表示されます。この日付はクローラがページのソースコードを取得した日付です。この日付が同じサイトでも違う日付が出るという何とも不思議な現象があります。普通、DB を構築する場合は、同じデータを複数持つ等と言うことはしませんのでどうして同じデータを持っているのかがどうしても引っかかりました。そこで、「SEO」「seo」「SEO」「seo」という、全角・半角、大文字・小文字それぞれ検索してみました。下記は 6 月 13 日に検索した結果です。下記のキャッシュ日とは Su-Jine のサイトのキャッシュ日です。

    ◆「SEO」「seo」「SEO」「seo」で検索

    検索文字キャッシュ日実際のソース取得時間
    半角の大文字「SEO」2004年5月22日2004/05/22 23:48:44
    半角の小文字「seo」2004年5月13日2004/05/13 10:44:33
    全角の大文字「SEO」2004年5月13日2004/05/13 10:44:33
    全角の小文字「seo」2004年5月22日2004/05/22 23:48:44

    ◆「SEO対策」「seo対策」「SEO対策」「seo対策」で検索

    検索文字キャッシュ日実際のソース取得時間
    半角の大文字「SEO対策」2004年6月12日2004/06/12 15:34:34
    半角の小文字「seo対策」2004年6月12日2004/06/12 21:55:18
    全角の大文字「SEO対策」2004年6月12日2004/06/12 15:34:34
    全角の小文字「seo対策」2004年5月22日2004/05/22 23:48:44

    この結果で非常に興味深いなと思ったのは、全角・半角だけでなく、大文字・小文字も違うキャッシュが表示されることです。負荷分散処理の影響かなとも思いますが、これは違うようです。

    通常検索するときは検索キーワードを次のような処理をしたあとで検索を始めます。同様にインデックス作成時にも同じ処理を施します。そうすることで検索速度を速めることができ、上記 4 つのパターンで同じ結果を表示することが出来るようになります。

    • 英数字は半角に変換 (全角・半角を区別しなくするため)
    • 半角カタカナは全角カタカナに変換 (文字化け対策)
    • 英字は小文字に変換 (大文字・小文字を区別しなくするため)

    上記の検証結果から YST ではこれらの処理をしていないように思われます。しかし、「SEO」「seo」「SEO」「seo」という全て違うインデックスを持っている場合、検索結果がそれぞれで大幅に変わるはずです。それにもかかわらず、YST では検索結果が大幅に変わることが無く微妙に違う結果が出るだけです。この現象は Yahoo! JAPAN が YST に変更した時からずっと調べているのですが、どうしても検証し切れませんでした。どなたかこの現象を説明できる方はご連絡いただければと思います。


    3. YST のキャッシュは古い?

    YST は「インデックス情報が古い」「2002 年のデータなんて使えない」等の情報を良く目にします。では Google はどうなのでしょうか?まず、Google の検索結果は YST と違い、フレッシュクロールサイト以外はキャッシュの日付が表示されません。そこで daterange と言う特殊構文を用いて検索してみました。日付の範囲を 2002/01/01 〜2002/04/01 までの間で「日本語」と言うキーワードを検索するには Google の検索窓で下記のように入力します。

    日本語 daterange:2452276-2452366

    検索してみましたか?5 万件以上の検索結果が返って来ました。Google は全てのページを常に最新にしているわけではないと言うことですね。これらのページがヒットするのは If-Modified-Since ヘッダが対応しているサーバと言うことでしょう。もし、YST のクローラも Google と同様に If-Modified-Since ヘッダを付けてアクセスをしているとしたらどうでしょうか?YST で表示されている古いキャッシュは、クローラのアクセス時に 304 Not Modified が返っているためだと思います。304 Not Modified が返った場合クローラはソースコードを取得せず、DB の更新も発生しません。キャッシュは古い日付のままになるでしょう。

    Google の検索結果には日付が表示されていないから「古い」データと思わないだけではないでしょうか?YST のキャッシュは古いわけではなく、更新作業をしていないファイルにクローラがアクセスし、サーバが 304 Not Modified を返しているために起きている現象だと思います。要するに、クローラによるアクセスが無いわけではなく、ページの更新が無いために古い情報しか表示されないわけです。自分のキャッシュが古いと言っている方は該当ファイルを更新しましょう。もし、更新しなければ 5 年待ってもキャッシュの日付は新しくならないと思います。

    Su-Jine のコラムを全て読んでいない方には少し難しいキーワードが出てきましたが、If-Modified-Since ヘッダに関しては、Su-Jine の第 10 回 Googleのフレッシュクロール対象サイトにするには?に書かれていますので参考にして下さい。


    今回の内容はちょっと検証しきれなかった部分があり、このまま公開するのは避けたいなぁと思っていたのですが、どうしてもキーワードによってキャッシュが変わる現象を説明することが出来ませんでした。もし、このキーワードによるキャッシュの日付が変わる現象を説明できる方がいましたらご連絡いただければ幸いです。


    【補足】


    このページをアップしてから約 3 分後に、このページへ YST のクローラがアクセスしてきました。米Yahoo! で「seo対策」で検索するとこのページがヒットしましたので、「1. YST の検索結果はどれが本物?」の検証結果は正しいことがわかりました。

    「思い込み」の検証用ツール「YST (Yahoo Search Technology) 検索結果を Google のフォーマットへ 〜 YST to Google 〜」を作成しました。このツールは Yahoo! JAPAN (YST) のページ検索結果を Google のフォーマットで表示するものです。Google と同様に古いキャッシュは表示せず、新しい日付のみを表示するようにしています。

    投稿者 Su-Jine : 10:09 | コメント (0) | トラックバック | コラム

    2004年06月02日

    第15回 PageRank (ページランク) の通説と事実

    前回のコラムの最後に PageRank の高い順に並べるクイズを出しました。まだ、クイズをやっていない方はクイズに挑戦してみて下さい。正解しても何も特典はありませんので、そのまま流してもらってもかまいません。

    実際にクイズをやった方は難しかったですか?20 ページの並べ替えですので難しいですよね。今回の内容は上記のクイズページを表示しながら読んでください。

    さて、クイズの解答です。行列の計算は大学以来やっていませんし、20 x 20 の行列を手で計算するのは到底無理ですね。今回は、「Google の秘密 - PageRank 徹底解説」のページでも使われている Octave というソフトを使って計算してみました。計算するのになんと 0.38 秒しかかかりません。優秀なソフトですね。

    では、実際に計算した結果と順位を下記に示します。

    順位ページPageRank
    1 位P10.195708
    2 位P160.1060073
    3 位P120.0995944
    4 位P70.089602 …… (A)
    5 位P20.0849436
    6 位P190.0798088
    7 位P80.0517949
    8 位P50.0408372
    9 位P40.0369434
    10 位P140.0365983
    11 位P110.0362432
    12 位P90.0348039
    13 位P180.0261714
    14 位P30.0222033
    15 位P100.0211943
    16 位P150.0207673
    17 位P170.0069856
    18 位P130.0051017
    19 位P60.0029834
    20 位P200.0017079

    1位 〜 3位は想像できると思います。クイズページの"表形式"の方を見ていただけるとわかりますが、リンクをたくさんもらっているページが PageRank が高くなっていることがわかります。今回注目して欲しいのは 4位の P7 です。P7 は 3 つしかリンクされていません。しかし、たくさんリンクされている P19 より PageRank が高いですよね。これはなぜだと思いますか?P7 は PageRank の高い P1, P2 からのリンク、さらに P16 からのリンクは P1 と P7 の 2 つにしか向けられていませんので P16 からのリンクがとても影響を与えていることがわかります。実際に P7 はどれだけの PageRank を受けているかはそれぞれのページの PageRank をリンク数で割ればよいわけですから下記のようになります。

     P7 の PageRank = (P1 の PageRank) / (P1 の発リンク数)
                 + (P2 の PageRank) / (P2 の発リンク数)
                 + (P16 の PageRank) / (P16 の発リンク数)

                 = 0.195708 / 8
                 + 0.0849436 / 7
                 + 0.1060073 / 2

                 = 0.0244635 …… (B)
                 + 0.0121348
                 + 0.05300365 …… (C)

                 = 0.08960195 …… (D)

    (D) は 上記表の (A) と誤差の範囲内であっていることがわかります。内訳を見るとわかるとおり、P1 の PageRank が一番大きいのですが、分配するページが多いため P7 に与える PageRank は (B) となり、P16 が与える (C) よりも小さいことがわかります。このことから、前回書いたコラムのたくさんリンクを張っているところよりも、厳選してリンクを張っているページと相互リンクした方がよいと言うのは正しいことがわかりますね。

    その他の順位も発リンク、被リンクをチェックしていくと納得できると思いますので、時間があるときにでもみて下さい。

    ちょっと数字が苦手な方にはつらい内容ですよね。もう少しだけ頑張って下さいね。

    続いては、掲示板などでよく見かける質問と、良くある間違えについて書いていきたいと思います。

    通説PageRank を上げるには外部からのリンクの方がより効果的である。
    事実PageRank は計算方法を見てもわかるとおり、"サイト"と言う概念は存在しません。従って、外部リンクでも内部リンクでも、 PageRank に与える影響は同じです。

    通説PageRank を上げると検索結果の順位が上がりますか?
    事実PageRank を上げれば確実に上位表示に結びつくわけではありません。検索結果が PageRank 順に並ぶなら、有名なサイトしか上位表示できません。例えば、「SEO」と言うキーワードで検索したときに、Su-Jine は Google の SEO 関連情報ページ よりも上位に表示することができません。しかし、PageRank の低い Su-Jine の方が、「SEO」で検索したときに上位に表示されています。PageRank は検索順位を決める 1 つの要因でしかありません。Su-Jine が掲示板などで書いているホームラン (PageRank 4, 5 のページとの相互リンク) を狙うよりも、ヒット (PageRank が 2, 3 のページとの相互リンク) をたくさん狙いましょうというのは、PageRank 目当ての相互リンクよりは、適切なリンクをもらうことの方が上位表示に結びつくためです。

    通説外部にリンクを張ると自分のページの PageRank が下がりますか?
    事実PageRank は Google にインデックスされている全てのページでの計算となります。どこかにリンクを張る、リンクを切る等の行為が全てのページの PageRank に影響を与えます。と言うことで、外部にリンクを張るという行為は必ず自分の PageRank にも影響を与えるはずです。本当かどうか試してみましょう。今回利用したモデルで、P2 から P19 へリンクを張って PageRank の計算をしてみます。そうすると下記のような計算結果が出てきます。P2 の PageRank はどうなっているか見てみましょう。前回は 0.0849436 だったものが P19 へリンクを張ったことで 0.0837019 となっています。リンクを張ったことで PageRank は下がりました。それだけでなく、全然いじっていないページの PageRank にすら影響を与えています。このように、リンクを張る、外す行為は必ず全てのページに影響を与えるわけです。今回はたまたま下がるパターンを紹介しましたが、リンクを張ったら確実に下がるわけではありませんので、リンクは自分の考えで張ったり、外したりしましょう。

    ページPageRank前回の PageRank順位前回の順位
    P10.19548850.1957081 位1 位
    P160.10790020.10600732 位2 位
    P120.09845380.09959443 位3 位
    P70.08884890.0896024 位4 位
    P190.08825520.07980885 位6 位
    P20.08370190.08494366 位5 位
    P80.05178040.05179497 位7 位
    P40.0396410.03694348 位9 位
    P50.03907290.04083729 位8 位
    P140.03489880.036598310 位10 位
    P90.03465860.034803911 位12 位
    P110.03426750.036243212 位11 位
    P180.02602860.026171413 位13 位
    P100.02087030.021194314 位15 位
    P30.02070250.022203315 位14 位
    P150.01909280.021194316 位16 位
    P170.00725550.006985617 位17 位
    P130.00471820.005101718 位18 位
    P60.0027720.002983419 位19 位
    P200.00159250.001707920 位20 位

    PageRank について、疑問に思っていたことが解決しましたか?「PageRank を上げる」ことが必ずしも「上位表示」になるとは限らないと言うことがわかっていただけたのではないでしょうか。Su-Jine 内の掲示板で PageRank を気にしすぎないようにしましょうというのはこういうことです。

    最後に、知っている方も多いと思いますが、知らない方向けに。「PageRank という名前は、ウェブページのランク付け機能に由来しているのではなく、Google の共同創設者ラリー ペイジ (Larry Page) の名前に由来します。」

    次回は、2004 年 5 月 31 日に切り替わった YST (Yahoo Search Technology) についての情報を書いてみたいと思います。

    投稿者 Su-Jine : 10:04 | コメント (0) | トラックバック | コラム

    2004年05月18日

    第14回 トップページ相互リンクの落とし穴

    最近はトップページ相互リンクをしているサイトが非常に多いですね。これは、Google の PageRank と言うものが、このような現象を引き起こしているように思えます。

    PageRank に関しては皆さん既にご存じだと思いますが、この機会に復習してみましょう。PageRank について Google がどのように記述しているかを確認したいと思います。

    『PageRank は、Webの膨大なリンク構造を用いて、その特性を生かします。ページ A からページ B へのリンクをページ A によるページ B への支持投票とみなし、Google はこの投票数によりそのページの重要性を判断します。しかし Google は単に票数、つまりリンク数を見るだけではなく、票を投じたページについても分析します。「重要度」の高いページによって投じられた票はより高く評価されて、それを受け取ったページを「重要なもの」にしていくのです。


    こうした分析によって高評価を得た重要なページには高い PageRank (ページ順位) が与えられ、検索結果内の順位も高くなります。PageRank は Google におけるページの重要度を示す総合的な指標であり、各検索に影響されるものではありません。むしろ、PageRank は複雑なアルゴリズムにしたがったリンク構造の分析にもとづく、各 Web ページそのものの特性です。』

    上記の文章を見ると相互リンクをたくさんすればするほど PageRank が上がり、順位が上がっていくだろうとなるわけです。その結果一番 PageRank が高いであろうトップページでの相互リンクが多発しているとのではないかと思います。

    上記の文章ではトップページ相互リンクはとても有効のように見えますが PageRank の性質をより詳しく見ると必ずしもトップページ相互リンクが有効というわけではありません。皆さんは「Google の秘密 - PageRank 徹底解説」というページをご存じでしょうか?有名なページですので知っている方も多いと思います。

    このページは PageRank の論文を元に PageRank の算出方法、算出結果などが詳しく書かれています。一度読んでみると、とてもためになりますが、数学的な論文なので結構読むのが大変です。そこで、今回の内容に合致する箇所を抜粋したいと思います。

    『PageRank を高くするためのポイントは、大きく分けて 3 つある。



    • 被リンク数 (単純な意味での人気度の指標)
    • お勧め度の高いページからのリンクかどうか (裏付けのある人気かどうかの指標)
    • リンク元ページでのリンク数 (選び抜かれた人気かどうかの指標)

    すなわち、単に被リンク数の多寡だけではなくお勧め度の高いページからのリンクは高く評価する。また同時に、総リンク数が少ないページからのリンクは高く評価し、総リンク数が多いページからのリンクは低く評価する。言い換えれば「(多くの推薦を集めるような)良いページが推薦するページは、同じく良いページであるに違いない」という判断と、「やたらリンクを乱発するインフレ気味なリンクに比べて、選び抜かれたリンクは良質なリンクであるに違いない」という判断を同時に行っている。きちんと人手の入った高い水準のページからの厳選されたリンクは明確に重視する一方で、あれもこれもと関連のないところにリンクを張りまくっているだけの単なるブックマーク的ページからのリンクは、「(全然リンクされないよりはまだマシだが)ほとんど価値がない」として軽視するわけである。』

    ポイントの 3 番目が重要で、たくさんリンクを張っているサイトからのリンクは、そのリンクの重要度が下がってしまうわけです。皆さんは、相互リンクの相手を探すときに、「このサイトはたくさん相互リンクしているから自分も相互リンクしてもらおう」と思っていませんか?このようなサイトと相互リンクをしても、自分への PageRank にあまり影響を与えないと言うことですね。

    簡単に言うと 4 号のホールケーキ (100g) があって、2 人で分ける (50g) のと、10 人で分ける (10g) のでは、後者の方が自分の食べられるケーキの量が少なくなります。

    4 号を 10 人で分割 < 4 号を 2 人で分割

    もちろん、リンク元の PageRank によっても分割する量が変わってきます。例えば、5 号のホールケーキ (150g) を 12 人で分ける (12.5g) のと、4 号のホールケーキを 10 人で分けるのとは、前者の方が分ける人数が多いけれど、食べられるケーキの量は多くなります。

    4 号を 10 人で分割 < 5 号を 12 人で分割 < 4 号を 2 人で分割

    このように、ケーキの大きさと (リンク元の PageRank)、分ける人数 (リンク元の発リンク数) によって、自分が食べられるケーキの量 (自分へのリンクの重要度) が変わってきます。簡単に PageRank を上げようとしてもうまくいかないのが Google のすごいところです。

    さらに、Google のページに興味深いことが書かれています。

    『デザインおよびコンテンツに関するガイドライン



    • サイトの主要なページへのリンクを含んだサイト マップをユーザーに提供します。サイト マップ内にリンクが 100 以上ある場合は、サイト マップを複数のページに分けます。
    • ひとつのページ内に含まれるリンクの数を適当な数に抑えます (100 未満)。

    なぜ 100 件未満としているのでしょうか?最初私は Google は 100 件以上のリンクは抽出しないのではないかと考えました。100 件以上リンクを抽出するかを検証するには、リンクが 100 件以上 (400 件程度あれば良い) あるPageRank 4 以上のページ (以降 C とする) を見つけます。このページの後方 (300 件目程度に現れるリンク) にあるリンク (以降 D とする) をクリックし、リンク元を調べます。リンク元として C が表示されれば 100 件以上のリンクを Google は抽出することがわかります。調べた結果、D に対して C がリンク元として表示されていましたので 100 件までしかたどらないわけではないようです。

    では 100 件以上リンクがあると何か不具合があるのでしょうか?Google のリンク抽出処理に何らかの不具合が生じるのか、PageRank に与える影響がほとんど無いためやめましょうと言っているのかのどちらかだと思います。どちらにしろ 100 件以上のリンクは都合が悪そうですのでやめておいた方が良いでしょう。

    今回の結論です。トップページ相互リンクも、度を過ぎるとあまり効果はなく、逆に下層ページからの厳選されたリンクの方が PageRank に与える影響は大きくなる可能性があると言うことです。必ずしもトップページからのリンクが一番有効というわけではないことを覚えておいてください。また、同じ PageRank であれば、相互リンクを多発しているページに相互リンクを依頼するよりも、あまり相互リンクしていないサイトに相互リンク依頼した方が良いですね。目安は相互リンクを依頼する相手のページにリンクが 100 未満。少なければ少ないほど良いです。

    実際には 1 ページに何個のリンクがあるかをチェックするのは大変ですので、今回は 1 ページに何個のリンクがあるかをチェックできるツール『ページ内リンク数チェックツール』を用意しましたので使ってみてください。このツールは、リンク元を確認するツールではありません。リンク元を確認するには『Googleリンク数チェックツール』をご利用下さい。

    このまま終わるとちょっと面白くないので、最後にクイズを行いたいと思います。「Google の秘密 - PageRank 徹底解説」と言うページに PageRank の求め方が載っていますよね。そこで、Su-Jine もサンプルを作ってみました。クイズページを見て、PageRank の高い順に並べてみてください。回答は次回のコラムで書きたいと思います。

    投稿者 Su-Jine : 10:00 | コメント (0) | トラックバック | コラム

    2004年04月28日

    第13回 HTML 形式の Yomi-Search は SEO 対策になりそう

    前回の復習です。前回のコラムでは Yomi-Search は 4 つのカスタマイズが可能ですと書きました。それぞれの 4 つのカスタマイズ方法を下記に示します。

    1. リンク元が CGI で、リンク先も CGI の場合

      CGI (yomi.cgi) → CGI (rank.cgi) → Su-Jine のサイト

      【イメージ】http://www.su-jine.com/cgi/yomi.cgi?mode=kt&kt=01

    2. リンク元が CGI で、リンク先が直に指定されている場合

      CGI (yomi.cgi) → Su-Jine のサイト

      【イメージ】http://www.su-jine.com/cgi/yomi.cgi?mode=kt&kt=01

    3. リンク元が HTML で、リンク先が CGI の場合

      HTML (01.html) → CGI (rank.cgi) → Su-Jine のサイト

      【イメージ】http://www.su-jine.com/cgi/01.html

    4. リンク元が HTML で、リンク先が直に指定されている場合

      HTML (01.html) → Su-Jine のサイト

      【イメージ】http://www.su-jine.com/cgi/01.html

    この C のパターンでカスタマイズしている検索エンジンは rank.cgi という CGI を介しているため、SEO 対策にはならないのでは?と皆さんに質問して終わりましたね。

    まず、頂いた意見を整理すると、全員が「C のパターンでは SEO 対策にはならない」という意見でした。理由は「rank.cgi を介しているので、CGI からのリンクになるから」と言うのが皆さん一致していました。では、C のパターンが SEO 対策になるかを解説していきたいと思います。

    結論から書くと、C のパターンは SEO 対策として有効です。「え?」と思う方も多いと思います。では、なぜ SEO 対策として有効なのかを解説します。この rank.cgi というのは別の URL にジャンプさせるわけですが、このジャンプ (リダイレクト) の方法が重要となります。

    Yomi-Search のスクリプトを全部見るのはちょっと大変なので、パケットをキャプチャしてみました。パケットのキャプチャとは、インターネット上を流れているデータを引っこ抜くことを言います。そうすることで、ブラウザ と Web サーバのやりとりを見ることができるわけです。「まぁ、便利なんだな」と流してくれてかまいません。キャプチャしたデータで重要な部分を下記に示します。

    HTTP/1.1 301 Mover Permanently    ←◆
    Date: Mon, 26 Apr 2004 00:00:00 GMT
    Server: Apache/*.*.* (Unix) PHP/*.*.*
    Location: http://www.su-jine.com/    ←★

    ◆の箇所の「301 Mover Permanently」にある 301 のステータスコードは下記のような意味を持ちます。英語が苦手な方は英語の下の解説を見て下さい。

    『The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.

    The new permanent URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s). 』

    上の英語で重要な箇所だけ取り出すと、アクセスした URL は「Location」で指定した URL (上記★の箇所) に永久に移動しますよと言うことになるわけです。従って、この rank.cgi の長い URL (例:http://www.su-jine.com/cgi/rank.cgi?mode=link&id=1&url=http%3a%2f%2fwww%2esu%2djine%2ecom%2f) は、今後 http://www.su-jine.com/ になりますよとロボットに教えるわけで、rank.cgi に今後クローラが訪れることが無くなるはずです。

    この 301 のステータスコードをちゃんと Google が処理しているかどうかと言うと、Google はちゃんと処理しているようです。Google のページに次のように書かれています。

    『4. URL を変更する予定ですが、順位を維持する方法がありますか?


    〜省略〜

    新しいサイトが完成したら、古いサイトにアクセスしてきた人やサーチ エンジンにサイトの移転を知らせるため、(HTTP ヘッダーに "301" コードを追加して) 古いサイトからリダイレクトする方法もあります。


    〜省略〜』

    Yomi-Search の作者が優秀だったため、このリンクが SEO 対策として有効になっていたわけです。CGI で何も考えずにリダイレクトすると 302 を返すのですが、301 を返すようにコーディング (プログラミング) しているところがにくいですね。

    SEO 対策として有効なパターンを順番で示すと下記のようになります。

    順位タイプ理由
    1位DHTML から直のリンクなので PageRank に影響を与え、一番有効である
    2位C301 でリダイレクトしているため、PageRank に影響を与えそう
    しかし、rank.cgi の引数を正常に取得しない可能性がある
    3位Bそもそも CGI なので引数を正常に取得しない可能性がある
    PageRank には影響を与えることはなさそう
    4位Aそもそも CGI なので引数を正常に取得しない可能性がある
    PageRank には影響を与えることはなさそう
    さらに、rank.cgi の引数を正常に取得しない可能性がある

    2 〜 4 位で「引数を正常に取得しない可能性がある」と書いたのは、引数 (前回のコラムでパラメータとして説明した CGI の "?"以降) が付いているページはうまく処理できない可能性があるよと Google が言っているためです。そのため、D と C の順位に差を付けました。

    Google のページには下記のように書かれています。

    『デザインおよびコンテンツに関するガイドライン


    〜省略〜

    ダイナミック ページ (URL に "?" が含まれているページなど) を使用する場合、サーチ エンジン クローラによっては、静的ページと同じようにダイナミック ページをクロールするとは限らないことを考慮する必要があります。パラメータを短くしたり、パラメータの数を少なくすると、クロールされやすくなります。


    〜省略〜』

    ここで、結局 Su-Jine も D のパターンの Yomi-Search と同じなのでは?と言うことになりそうですが、Su-Jine は SEO 対策用に開発されているため、与える影響が違います。ではどこが違うのかと言うと秘密です。(^^; ただ一つだけ言えるのは、登録者、検索者、Su-Jine の 3 者が全員ハッピーになれるように作られていると言うことです。

    ちょっと話はそれましたが、Yomi-Search は SEO 対策になるかどうかという今回の検証では、D, C は PageRank に影響を与えそうで、B, A は PageRank に影響を与えることはなさそうです。数ある Yomi-Search 系の検索エンジン登録するときは D, C, B, A という優先順位で登録していくと良いと言うのが今回の結論です。検索エンジンに登録するのが面倒な方は有料の検索エンジン登録代行サービスがありますので利用してみてはいかがでしょうか?

    PCサイト向け  → 検索エンジン登録代行 | 検索エンジン最適化ドットコム
    携帯サイト向け → 携帯サイト登録ドットコム

    ここからは Yomi-Search で運営している方向けです。上の方の◆で、301 のステータスコードは「301 Mover Permanently」となっていますが、正しくは「301 Moved Permanently」だと思いますので、Yomi-Search のスクリプトを修正した方が良いと思います。Google がどのように処理しているかわかりませんので、確実に 301 の処理をしてもらうために正しいステータスコードを記述した方が良いでしょう。http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html にも 301 ステータスコードは「301 Moved Permanently」と記述がありますので。では、どこを直せばよいかというと、pl/temp.cgi というファイルに 301 の記述があります。そこを「301 Moved Permanently」になおしましょう。

    【補足】 - 2004/05/23

    現在の msn (Inktomi 系) は 301 ステータスコードを処理していないようです。検索結果に rank.cgi の URL がヒットします。従って、msn に関しては D 以外の Yomi-Search 系の検索エンジンではリンク元になりません。

    投稿者 Su-Jine : 08:19 | コメント (0) | トラックバック | コラム

    2004年04月13日

    第12回 Yomi-Search は本当に SEO 対策になるの?

    前回の最後でも書いたように、最近「SEO 対策ディレクトリ型検索エンジン○○」や「SEO対策サーチエンジン○○」のように Su-Jine と全く同じ名前、よく似た名前の検索エンジンを見かけるようになりました。

    これらの検索エンジンはたいてい Yomi-Search というスクリプトを利用していますが、Su-Jine の SEO 対策は、独自のスクリプトで成り立っています。私の考えでは、Yomi-Search では本当の意味で SEO 対策にはならないと思ったからです。しかし、このような検索エンジンが増えてきているのには、やはり訳があるのでは?と思ったので、今回は『Yomi-Search は本当に SEO 対策になるの?』を検証してみたいと思います。

    まず、Yomi-Seach の本家サイト をご覧ください。「あ、なんかこんな感じの検索エンジン見たことがある」と思う方も多いと思いますが、このサイトがこのスクリプトを無料で提供しています。CGI が使えるサーバであれば、このスクリプトをダウンロードし、すぐに自分専用の検索エンジンを設置することができます。

    このスクリプトは CGI (Perl) で作成されています。CGI というのは便利ですが、Google の PageRank が付きませんし、パラメータ (yomi.cgi?mode=x等のように?が付いている) が付いていない場合はインデックス (検索エンジンに登録) もされません。インデックスされているかどうかは、URL そのものを検索すればわかります。

    • インデックスされている例

      • 通常の HTML ファイル等

        http://www.su-jine.com/ を Google で検索した場合 は検索結果に「Googleは、このURLについて下記の情報を表示できます。」と表示され、サイトの説明が表示されます。これでインデックスされていることがわかります。

      • CGI のパラメータ付き (?以降のmode=kt&kt=02_01 がパラメータです)

        http://yomi.pekori.to/s/yomi.cgi?mode=kt&kt=02_01 を Google で検索した場合 も検索結果に「Googleは、このURLについて下記の情報を表示できます。」と表示され、サイトの説明が表示されます。これでインデックスされていることがわかります。

    • インデックスされていない例

    このようにインデックスされない、または、インデックスされても PageRank が付かない CGI の Yomi-Search に登録してもあまり意味がなさそうですよね。しかし、Yomi-Search のすごいところはいろいろなカスタマイズができ、検索エンジンのファイルを CGI ではなく、HTML ファイルに設定できるところです。

    そこで、Yomi-Search を使っている検索エンジンをいろいろ調べました。その結果、下記のようなカスタマイズができるようです。説明だけでは少しわかりにくいので、それぞれのリンクを実際に作成してみました。A 〜 D のリンクをクリックするとイメージがつかめると思います。

    1. リンク元が CGI で、リンク先も CGI の場合

      yomi.cgi?mode=kt&kt=01 という CGI ファイルから <a href="rank.cgi?mode=link&id=1&url=http%3a%2f%2fwww%2esu%2djine%2ecom%2f">SEO対策ディレクトリ型検索エンジンSu-Jine</a> とリンクされている

      CGI (yomi.cgi) → CGI (rank.cgi) → Su-Jine のサイト

    2. リンク元が CGI で、リンク先が直に指定されている場合

      yomi.cgi?mode=kt&kt=01 という CGI ファイルから <a href="http://www.su-jine.com/">SEO対策ディレクトリ型検索エンジンSu-Jine</a> とリンクされている

      CGI (yomi.cgi) → Su-Jine のサイト

    3. リンク元が HTML で、リンク先が CGI の場合

      01.html から <a href="rank.cgi?mode=link&id=1&url=http%3a%2f%2fwww%2esu%2djine%2ecom%2f">SEO対策ディレクトリ型検索エンジンSu-Jine</a> とリンクされている

      HTML (01.html) → CGI (rank.cgi) → Su-Jine のサイト

    4. リンク元が HTML で、リンク先が直に指定されている場合

      01.html から <a href="http://www.su-jine.com/">SEO対策ディレクトリ型検索エンジンSu-Jine</a> とリンクされている

      HTML (01.html) → Su-Jine のサイト

    上記の違いわかりますか?HTML のタグが読めて、CGI も少しはわかると言う方ではないとなんだかわからないかもしれませんが、太字で書いている箇所が違いですので、わからない方は太字の部分だけ見てください。

    結構奥が深いと思いませんか?というのは B, D のパターンだけでなく、リンク先そのものが CGI のリンクになっている A, C のパターンが存在するからです。

    まず最初に rank.cgi と言う CGI を解説したいと思います。rank.cgi は下記のような構成になっています。CGI ファイルの見方は「第11回 Googleのフレッシュクロール対象サイトにするには、Googleツールバーが影響している?」の真ん中あたりで微妙にわかりにくい解説をしていますが、それでも良いという方はご覧ください。

    rank.cgi?
    mode=link
    &id=1
    &url=http%3a%2f%2fwww%2esu%2djine%2ecom%2f

    この URL にアクセスがあると、次のような動きをします。

    1. id で指定されたサイト (上記の場合は id が 1 のサイト) が今までクリックされた回数を取得します。
    2. 取得した回数に 1 を加えて保存します。これで今回のクリックをカウントしたことになります。
    3. url で指定されたサイトにジャンプします。

    要するに、何回目的のサイトにジャンプしたかを把握するために、間に rank.cgi と言うファイルを介しているわけです。こうすることによって、人気サイトのランキングを表示することができるわけです。

    ようやく本題に入れそうですね。A 〜 D それぞれのパターンを解説していきたいと思います。パラメータ付きの CGI ファイルはインデックス (検索エンジンに登録) されることは上で書きましたが、インデックスされても PageRank はつきません。従って、A, B のパターンの検索エンジンに登録しても PageRank の向上は望めないようです。

    C, D のパターンの検索エンジンはどうでしょうか?最近出現している「SEO対策ディレクトリ型検索エンジン○○」「SEO対策サーチエンジン○○」という検索エンジンを調べてみると、たいてい C のパターンです。D のパターンの場合は HTML ファイルから直接リンクですので PageRank に影響も与え、SEO 対策として使えそうですが、C のようにカスタマイズしている検索エンジンは本当に SEO 対策になると言えるでしょうか?

    上でも書いたとおり、人気ランキングを取得する CGI ファイル (rank.cgi) を介してから目的サイトに飛ぶわけで、結局 CGI ファイルからのリンクになるのではないでしょうか?そうすると C のパターンの検索エンジンは A や B の検索エンジンと同じことになりませんか?「HTML ファイルだから SEO 対策になります」と言うのは本当でしょうか?

    今回はちょっと皆さんに考えてもらいたいのでここで終了です。上記 C のパターンの場合、SEO 対策になると思うか、ならないと思うか、理由を考えてみてください。

    今回のコラムでは、上記の意見を募集しています。意見がある方は下記の「このコラムに間違いがあるときはこちらからご連絡お願いします」のリンクから意見を送って下さい。メルマガを読んでいる方はメルマガに返信して下さい。ただし、回答は次回のコラムで発表するため返信できませんが、頂いた意見を次回のメルマガで紹介する予定です。たくさんの意見お待ちしています。

    投稿者 Su-Jine : 08:11 | コメント (0) | トラックバック | コラム

    2004年04月01日

    第11回 Google のフレッシュクロール対象サイトにするには、Googleツールバーが影響している?

    前回のコラムの続きです。前回はフレッシュクロールサイトにするには頻繁に更新しましょうと言うことを書きました。しかし、頻繁に更新してもそれをクローラに伝える何かが必要だということで終了したと思います。そのクローラに頻繁に更新していると言う情報を与えるのは何かを今回のコラムで書いていきたいと思います。今回もちょっと難しいかもしれませんが、頑張りましょう。

    結論から書くと、頻繁に更新しているという情報を伝えるものは「Google ツールバー」ではないかと私は考えています。Google ツールバーをインストールされた方であれば、インストールしたときに下記のようなメッセージを見ているはずです。

    Google ツールバーの拡張機能を使用することにより、アクセスするサイトに関する情報を Google に送ることになります (Google ツールバーのいくつかの機能を利用するのに必要なため)。

    サイトに関するより詳細な情報を表示するためには、ユーザーがどのサイトを訪問しているかという情報 (URL) が Google に送信される必要があります。

    この際、ユーザーを識別する情報 (ユーザー名や電子メールアドレスなど) は送信されませんが、あるユーザーが特定のサイトに関する PageRank をリクエストしたという情報が送信されます。 Google では、第三者に対するユーザーの個人識別情報の販売または提供などは行いません。ツールバーのプライバシーポリシーに関する詳細については、下記のページにあるツールバーのプライバシーポリシーをごらんください。

    http://toolbar.google.com/intl/ja/privacy.html

    Google が「どのサイトを訪問しているかという情報 (URL) が Google に送信される」と明言しているわけです。では実際にSu-Jineのページを見たときにどのような情報がGoogleツールバー経由で送られているかを見てみます。10 回アクセスし、Google ツールバーが送っている情報をキャプチャしました。

    回数アクションGoogleツールバーのリクエスト
    1 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    2 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    3 回目キャッシュ削除/search?client=navclient-auto
    &ch=63064708400
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    4 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    5 回目Cookie削除/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8&oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    6 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    7 回目キャッシュ削除/search?client=navclient-auto
    &ch=63064708400
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    8 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    9 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F
    10 回目なし/search?client=navclient-auto
    &ch=63064708400
    &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
    &ie=UTF-8
    &oe=UTF-8
    &features=Rank
    &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F

    なんだかよくわからないですね。ちょっと整理すると、下記のような構成になっているのがわかります。

     /search?
     client=navclient-auto
     &ch=63064708400
     &freshness_check=4OuD5p4m5_Wc3q1ziiBAP
     &ie=UTF-8
     &oe=UTF-8
     &features=Rank
     &q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2F

    このURLを見慣れていない方もいると思いますので、見方を説明します。「実行?キー1=値1&キー2=値2&…」と言う形式になっています。

    喫茶店でコーヒーを注文するときを例にとってみましょう。

     オーダー?
     品名=コーヒー
     &砂糖=YES
     &ミルク=NO

    この例では、「コーヒーを砂糖入り、ミルクなしで注文」ということになります。先ほどの URL では「client は navclient-auto で ch は 63064708400 …として検索」ということです。説明が下手ですみません。

    上記の表の中で、client=navclient-auto, ch=63064708400, ie=UTF-8, oe=UTF-8, features=Rank, q=info:http%3A%2F%2Fwww%2Esu%2Djine%2Ecom%2Fは、10 回とも同じでしたので除外します。残った値と、作業を表にまとめると下記のようになります。

    回数作業freshness_check
    1 回目なし4OuD5p4m5_Wc3q1ziiBAP
    2 回目 なし4OuD5p4m5_Wc3q1ziiBAP
    3 回目 キャッシュ削除なし
    4 回目なし4OuD5p4m5_Wc3q1ziiBAP
    5 回目Cookie削除4OuD5p4m5_Wc3q1ziiBAP
    6 回目 なし4OuD5p4m5_Wc3q1ziiBAP
    7 回目 キャッシュ削除なし
    8 回目 なし4OuD5p4m5_Wc3q1ziiBAP
    9 回目 なし4OuD5p4m5_Wc3q1ziiBAP
    10 回目なし4OuD5p4m5_Wc3q1ziiBAP

    残った freshness_check と言うキー。名前からして怪しいですね。この「4OuD5p4m5_Wc3q1ziiBAP」という値は http://www.su-jine.com/ という URL を何らかの方法で変形させたものだと思います。従って、皆さんのサイトは上記と違うキーになるはずです。

    興味深いのは「キャッシュを削除」したときに「freshness_check」が Google に送られないと言うことです。と言うことは「同一人物が 2 回以上見るページ = 面白そうなページ」と Google は見ていると言うことがわかります。

    この「面白そうなページ」から「重要そうなページ」にするために、Google は freshness_check が何回送られてきているかをカウントしていると思います。そして、カウントがある閾値 (判断基準値) を超えると「重要度の可能性が高いページ」になり、クローラがアクセスしてきたときに 200 OK を返すと「重要であるページ = フレッシュクロール対象サイト」になると考えています。

    フレッシュクロール対象ではないサイト (以下Aとする) がフレッシュクロール対象サイトになるまでの流れをまとめると、

    レベル1 : 誰かが毎日 2回以上 Aを見る (freshness_checkが送られる)
    →面白そうなページ
    レベル2 : たくさんの人が毎日 2回 以上 Aを見る (freshness_checkカウント)
    →重要そうなページ
    レベル3 : カウントが Google が設定した閾値を超える
    →重要度の可能性が高いページ (クローラに巡回命令)
    レベル4 : クローラが巡回し、サーバが 200 OK を返す
    →重要であるページ (フレッシュクロール対象サイト)

    と言う感じだと思います。Su-Jine が考えるフレッシュクロールサイトの条件は、『頻繁に更新し、Google ツールバーの拡張機能を ON にしたブラウザで毎日たくさんのアクセスがあるサイト』と言うことです。フレッシュクロールサイトになると SEO 対策がとても楽になります。というのは、毎日更新結果が反映されるため、変更した結果をすぐに確認できるためです。

    次回のコラムの予定です。最近「SEO対策ディレクトリ型検索エンジン○○」や「SEO 対策サーチエンジン○○」のように Su-Jine と全く同じ名前、よく似た名前の検索エンジンを見かけるようになりました。それだけ Su-Jine も認められてきたかなぁとうれしいような、悲しいような複雑な気持ちです。

    これらの検索エンジンはたいてい Yomi-Search というスクリプトを利用していますが、Su-Jine の SEO 対策は、独自のスクリプトで成り立っています。私の考えでは、Yomi-Search では本当の意味で SEO 対策にはならないと思ったからです。しかし、このような検索エンジンが増えてきているのには、やはり訳があるのでは?と思ったので、次回は『Yomi-Search は本当に SEO 対策になるの?』を検証してみたいと思います。お楽しみに。

    投稿者 Su-Jine : 08:06 | コメント (0) | トラックバック | コラム

    2004年03月14日

    第10回 Google のフレッシュクロール対象サイトにするには?

    前回のコラムの続きです。フレッシュクロール対象サイトにするにはどうすればよいか?についてです。ちょっと専門的な用語も出てきますが、簡単に解説をするつもりですので頑張ってください。

    まず、フレッシュクロール対象サイトに関する有力な記事を紹介します。

    上記サイトを見ていると、フレッシュクロールに関するキーワードがいくつか出てきます。以下、上記サイトからの引用です。これらについて私なりの意見を書いていきたいと思います。


    1. PageRank 値 (『Google フレッシュクロールの仕組み・条件 (後編)』から引用)

      Google ツールバーで見たときの PageRank 値。目安として 3。ただ、観察している限り、PageRank 値がなくても登録されるケースもあり、後述する "3" との関係の方が高いかもしれません。

    2. 更新頻度 (『Google フレッシュクロールの仕組み・条件 (後編)』から引用)

      先述した "1" のフレッシュクロール対象となる条件としては、更新頻度はある程度関与していると思われます。更新されないサイトにクロールが来ることは意味がないのであり、従ってある程度定期的にWebが更新されていることは条件になると推測されます。

    3. 外部サイトからのリンク (『Google フレッシュクロールの仕組み・条件 (後編)』から引用)

      PageRank 値そのものよりも、こちらの条件の方が重要なようにみられます。つまり、既にフレッシュクロール対象となっている PageRank の高い Web ページからリンクされることでフレッシュクロールが定期的に行われているような様子がうかがえます。

    4. 全ての .html の属性に実行権限 (パーミッション:755) を与える (『Google フレッシュクロール (fresh crawl) 連日更新/毎日更新/小更新/プチ更新』から引用)

      この設定は SSI を使ったファイルに対して通常は、If-Modified-Since に対して 304 (Not Modified) 更新なしを返すのを (あるいは返さないのを)、200 (OK) を返す設定に変更するものです


    まず、1 番目の「PageRank 値が 3 以上」というのは例外が多いため (PageRank 1 のサイトでもフレッシュクロールサイトはあるため) 信憑性が低いと思います。次に 2 番目の「更新頻度」は飛ばして、3 番目の「フレッシュクロール対象サイトからのリンク」を考えたいと思います。「フレッシュクロール対象サイトからのリンク」は Web 全体がフレッシュクロールサイトになってしまうため、違うのではないかと思います。例えば、Yahoo! のトップページはフレッシュクロール対象ページであり、その直下のディレクトリもフレッシュクロール対象ページになります。その直下のディレクトリもフレッシュクロール対象ページになり、Yahoo! に登録されているサイトは全てフレッシュクロール対象ページになってしまいます。結局全ての Web ページがフレッシュクロール対象サイトになってしまいますので、この条件は当てはまらないのではないかと考えています。

    飛ばした 2 番目の「更新頻度」ですが、私はこの「更新頻度」が一番重要な要因だと考えています。これは 4 番目の If-Modified-Since ヘッダと絡んでいて、更新が多いサイトはかなりの確率で 200 OK を返すからです。また、If-Modified-Since ヘッダについて、Googleの「Web マスターのための Google 情報」にも次のように書かれています。

    『Web サーバーが If-Modified-Since HTTP ヘッダーに対応していることを確認してください。この機能は、Google が前回サイトをクロールした後にコンテンツが変更されたかどうかを、サーバーからクローラに伝えるものです。この機能に対応することにより、帯域幅や経費を削減できます。』

    ここで、「If-Modified-Since ヘッダって何?」と言う方も多いと思いますので、簡単に説明したいと思います。クローラは対象ファイルが前回クロールした日時から更新したかしていないかをチェックするのに、「そのファイルは 2004 年 03 月 08 日の午前 0 時以降に更新されていますか?」と Web サーバに訪ねます。Web サーバは「はい、更新されています。」か「いいえ、更新されていません。」のどちらかの回答をします。この「2004 年 03 月 08 日の午前 0 時以降に更新されていますか?」の質問文が「If-Modified-Since: Mon, 08 Mar 2004 00:00:00 GMT」ヘッダで、「はい、更新されています。」に対応するのが「HTTP/1.1 200 OK」です。「いいえ、更新されていません。」に対応するのは「HTTP/1.1 304 Not Modified」と言うことになります。

    何となくイメージはつかめましたか?簡単に書くと、更新されたかされていないかをクローラが尋ねたときに、「更新されましたよ」と答える方がたくさんクローラが来るようになるのでは?と言うことを書いているわけです。

    しかし、ここで疑問が出てきます。下記の表を見てみるとわかるとおり、フレッシュクロール対象サイトの場合は 10 日間の内 6 回更新した場合、頻繁に更新しているサイトと言うことがわかりますが、月に 1 度しかクローラが来ないサイトの場合は同じ回数更新していたとしても 1 回しか「更新されていますか?」と問い合わせられないため、「頻繁に更新しているサイト」と判断できないのです。

    更新日フレッシュクロール対象サイトフレッシュクロールではないサイト
    クローラアクセス更新有無クローラアクセス更新有無
    2004/03/01 (月)-
    2004/03/02 (火)--
    2004/03/03 (水)-
    2004/03/04 (木)---
    2004/03/05 (金)-
    2004/03/06 (土)-
    2004/03/07 (日)--
    2004/03/08 (月)--
    2004/03/09 (火)
    2004/03/10 (水)--
    10 回クロール6 回更新1 回クロール6 回更新

    従って、フレッシュクロール対象サイトになるには更新されたという情報をクローラに伝える何かが必要となります。この続きは次回のコラムで書きたいと思います。

    今回のコラムで出てきた If-Modified-Since ヘッダですが、イメージはつかめましたか?ちょっと難しいので、実際に体験できるツール「If-Modified-Sinceチェックツール」を作りました。是非お試しください。

    投稿者 Su-Jine : 08:02 | コメント (0) | トラックバック | コラム

    2004年03月06日

    第9回 Mediapartners-Google は Googlebot の役割を持っている?

    Google の AdSense を付けると、Mediapartners-Google/2.1 (+http://www.googlebot.com/bot.html) というクローラが頻繁にアクセスしてきます。この Mediapartners-Google/2.1 (+http://www.googlebot.com/bot.html) と通常の Googlebot/2.1 (+http://www.googlebot.com/bot.html) は同じ役割を持っているのか?と言う質問をいただきましたので検証してみました。

    まず、アクセスログのスクリプトは以前から用意していましたので、ページにアクセスしてきたときに日時を出力するスクリプトを埋め込みました。そうすると、Google のキャッシュを見ればキャッシュを取得した日時がわかりますので (キャッシュのソースを見て、一番下のコメントを見れば日時が表示されます)、アクセスログからその日時にアクセスしてきたクローラが Mediapartners-Google か Googlebot かを見分ければ良いわけです。

    もし同じ役割を果たしているのであれば、AdSense を付けるだけでフレッシュクロールされるサイト (検索結果に日付が出るサイト) ができあがることになります。

    しかし、検証の結果 Mediapartners-Google は Googlebot と同じ役割を果たしていないようです。キャッシュの取得は今回検証した限り Googlebot が行っています。と言うことで、「Mediapartners-Google が頻繁に訪れる = フレッシュクロール対象サイト」ではないと言うことがわかりました。Mediapartners-Google は毎日来るのにインデックスされないのは Googlebot と役割が違うためです。

    Google
    キャッシュ
    クローラの
    アクセス日時
    クローラホストクローラ種類
    3月1日2004/03/02 14:44:38crawler13.googlebot.comGooglebot/2.1
    3月2日2004/03/03 14:46:03crawler14.googlebot.comGooglebot/2.1
    3月3日2004/03/04 14:51:20crawler14.googlebot.comGooglebot/2.1
    3月4日2004/03/05 14:57:39crawler14.googlebot.comGooglebot/2.1

    この Mediapartners-Google はアクセスログを見る限り、AdSense を貼っているページを表示した直後に訪れるようです。AdSense はページのテーマを判断して、自動でそのテーマにあった広告を表示すると言う仕組みですので、ページのテーマを判断するだけのクローラと言うことになります。

    では、フレッシュクロール対象サイトにしたい場合はどうすれば良いでしょうか?検証して次回のコラムで書いてみたいと思います (あまり期待しないでください)。

    投稿者 Su-Jine : 07:56 | コメント (0) | トラックバック | コラム

    2004年02月26日

    第8回 <h1> タグ、<title> タグ、テキストマッチング、リンク元の重要性の検証

    さて、Su-Jine もオープンから約 4 ヶ月経ちました。前回の SEO コラムでも書いたとおり、今回は Su-Jine のSEO 講座『自分でやろう SEO』の検証についてです。

    Su-Jine では単体キーワードでは「SEO」「検索エンジン」、複数キーワードでは「SEO 対策」「SEO ツール」「ディレクトリ型検索エンジン」で上位表示を目指しています。これらのキーワードはかなり激戦区だと思いますので、やりがいがありますね。

    まず、Su-Jine が押している SEO 対策は「<title> タグ」「<h1> タグ」「テキストマッチング」「リンク元の重要性」の4つです。Su-Jineでは「テキストマッチング」以外の 3 つだけを注意してサイトを構築しました。「テキストマッチング」の対策をはずしたのは、「テキストマッチング」対策をしすぎると読みにくい文章になるためです。また、他のホームページや書籍に有効と書いてある細かい内容 (サイトの上の方に有効なキーワードを入れる等) はほとんど施していません。

    SEO」というキーワードを Google で検索すると、Su-Jine のトップページは約 3,620,000 件中 40 位に表示されます[2004年02月25日現在]。SEO 会社や SEO 対策サイト、海外のSEO 関連サイトがたくさんある中、40 位はなかなか検討しているのではないかと思います。続いて、「検索エンジン」では約 1,920,000 件中 91 位に表示されます[2004年02月25日現在]。どちらのキーワードも 1, 2 ページに表示されているわけではないので、自己満足の世界ですが、激戦区のキーワードとしてはなかなか検討しているのではないでしょうか。

    続い