Showing posts with label Battle. Show all posts
Showing posts with label Battle. Show all posts

Jun 4, 2005

Google Sitemaps

Google Sitemapsとかっていうサービスが始まったのでこのブログでも対応してみました。以下にテンプレートがあります。

Niall Kennedy's Weblog: Google Sitemaps using Movable Type

このテンプレートをこのまま使う分には問題はないのですが、ただカスタマイズすることを考えるとちょっと注意しなくてはならない点があります。

ひとつはSitemap Protocolを読むと、lastmod要素のタイムスタンプはISO 8601形式(Date and Time Formats)で指定することになっていますが、実際にはISO 8601形式のすべての時刻表現を受け付けてくれるわけではないようです。私の気が付いた限りでは、以下のようにLocal Time + Time Zone offset (2005-06-04T09:24:00+09:00)で指定しようとすると、Google Sitemapsは「Invalid Date」と判定するようです。

<lastmod>
<$MTEntryModifiedDate format="%Y-%m-%dT%H:%M:%S"$><$MTBlogTimezone$>
</lastmod>

KennedyのテンプレートにあるようにUTC時間を指定していれば問題ありませんし、Googleが早々にこの問題を解決する可能性があります。

もうひとつは、MTBlogURLに対する更新時間(lastmod)も表示させようと思って以下のように書くと、現在時刻の9時間前の時刻を返してしまう点です。

<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
<lastmod><$MTDate utc="1" format="%Y-%m-%dT%H:%M:%SZ"$></lastmod>
<priority>1.0</priority>
</url>

これはMTDateにutc="1"オプションを与えた場合に2回オフセット補正されてしまう(正確にはgmtimeに対してlocaltimeからUTCへの補正を行ってしまう)ために起きます。Local Time Zoneが+09:00の場合には9時間前の時刻になります。例えば時刻が「2005-06-04T21:09:00+09:00」であったとするとそのUTC時刻は「2005-06-04T12:09:00Z」ですが、これを誤って9時間補正して「2005-06-04T03:09:00Z」を返してしまうということです。

この問題はMovable Type日本語版3.17以降では修正されています。

このバグを修正するには以下のパッチを当てる必要があるでしょう。

--- lib/MT/Template/Context.pm.bak	2005-01-13 15:47:37.000000000 +0900
+++ lib/MT/Template/Context.pm	2005-06-04 22:56:13.000000000 +0900
@@ -1444,6 +1444,7 @@
     my @ts;
     if ($args->{utc}) {
 	@ts = gmtime $t;
+	delete $args->{utc};
     } else {
 	@ts = offset_time_list($t, $_[0]->stash('blog_id'));
     }

May 28, 2005

Google Searchとの最後の戦い

ややっ!! Googlebotが来ている気配です。今度こそ本当にインデクシングされますか。そうですか。

Googlebotごときで何を大騒ぎしているのであるかーっ!!

と思う方も多いかとは思いますが、10か月にも及ぶGooglebotと私との戦いが今、終焉を迎えつつあるからなのです。

Ogawa::Buzz: Google Searchとの戦いの日々
Ogawa::Buzz: Google Searchとの最近の戦い

思いっ切りペナルティを食らっていたのか、「as」とか「is」とか除外キーワードっぽいドメイン名だったからなのかは定かではありませんが…。ともあれインデクシングを待ちましょう。

2005-06-23追記:
その後再びクロールに来なくなり、今日またやってきました。月一回のビッグウェーブなのかもしれません。

2005-06-28追記:
モーレツにクロールされ続けている模様です。Googlebotって激しかったんだなあ。しかしまだインデックスには追加されていません。

2005-07-04追記:
ついにインデックス入りしました。長かったなー、ここまで。地を這うようなPagerankから頑張っていきたい所存です。

2005-10-01追記:
related:as-is.net/blog/ - Google 検索が使えるようになっていました。また、ogawa - Google 検索で6番目に表示されるくらいに順位が向上したみたいです。

Mar 10, 2005

Google Searchとの最近の戦い

このサイトにはGooglebotがクロールに来てくれません。クロールに来てくれるまで私とGoogle Searchとの戦いは続きます。これまでの戦歴は下記を参照のこと。

Ogawa::Buzz: Google Searchとの戦いの日々

簡単に経緯を説明すると、一年ほど前に某サーバーからロリポップ(hassaku.main.jp)に、半年以上前にhassaku.main.jpからas-is.netにドメインを変更し、変更のたびにリダイレクトしていたのですが、これがスパミング行為と取られたか、いろいろ手を尽くしてもas-is.netの方にはGooglebotがクロールに来てくれません。リダイレクトしていても一向に変化がないので旧ドメインへのアクセスはフェイルするようにしていますが状況は変わらず、旧ドメインの古いデータがキャッシュされている状態が続いていて結構不愉快です。

2月27日

404エラーなどでロリポップのエラーページに誘導されるのを停止させてみました。Yahooなどにこのエラーページがキャッシュされている例が見られたためです。徹底的にシンプルにするために以下のように.htaccessに設定してみました。

ErrorDocument 400 "400 Bad Request
ErrorDocument 401 "401 Unauthorized
ErrorDocument 403 "403 Forbidden
ErrorDocument 404 "404 Not Found
ErrorDocument 410 "410 Gone

さらに、旧URL(hassaku.main.jp)に関して残っているキャッシュ情報を削除するためにrobots.txtを作ってすべてのページのクロールを禁止しました。ただし、このrobots.txtは旧URLからアクセスしたときには読め、現URLからアクセスしたときには読めないように.htaccessには以下のように記述しました。

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(hassaku\.main\.jp)(:80)? [NC]
RewriteRule !^robots\.txt$ - [G,L]
RewriteCond %{HTTP_HOST} ^(as-is\.net)(:80)? [NC]
RewriteRule ^robots\.txt$ - [G,L]

これで旧URLに関して残っているキャッシュ情報はいずれ削除されるはずということになります。

3月4日

いずれというのも心許ないので、Googleの自動URL削除システムを使ってみることにしました。このシステムでは(1)robots.txtファイルを使用して個々のページ、サブディレクトリ、画像を削除する、(2)メタタグを使って1ページだけを削除する、(3)無効なリンクを削除する、のいずれかの方法が採れます。ひとまず、(1)の方法で旧URLのキャッシュを削除するように申請してみました。

翌日には削除されました。…だからってクロールに来てくれるわけではありませんが。しかも旧旧URLでのキャッシュが10件分残っているようでこれも消す必要があるのでしょう。しかもGoogle 検索: site:as-is.netとかしてみると、旧旧URLでのキャッシュが10件分見られますが1560件ヒットしているという訳の分からなさ加減です。インデックスの再計算が必要なのかしら。

3月10日

キャッシュされている旧旧URLのデータを削除するべく、(3)の方法で一個ずつURLを指定してやりました。本当に10件だけだとよいのですけど。1560件は無理です。

あと2月27日にやった方法だとas-is.netでrobots.txtを設定できなくなってしまうことに気が付いてしまいました。なので、robots.txtには以下のように記述。

<?php
header('Content-type: text/plain');
if (!strcasecmp($_SERVER['SERVER_NAME'], 'hassaku.main.jp')) {
 echo <<<EOD
User-agent: *
Disallow: /
EOD;
} else {
 echo <<<EOD
User-agent: *
Disallow: /mt/
EOD;
}
?>

.htaccessは↓のように設定。

<Files robots.txt>
AddType application/x-httpd-php txt
</Files>

3月14日

やっぱり(1)の方法でざっくり消してやることにしました。即日反映されました。Google 検索: site:as-is.netとしても何も表示されなくなりました。が、Google 検索: ogawa site:as-is.netすると、blogpeopleのキャッシュとともに「約1,620件」と表示されます。…増えとるがね。

でも勝利は目前のような気がしてきました。


4月18日

目前のような気がしていましたがまだまだでした。今日、Google 検索: ogawa site:as-is.netしてみると何も表示されなくなりました。インデックスが更新されたことは確かですね。しかし…。

ちなみにこのブログ、Inktomi SlurpやMSN Searchbotにはえらく気に入られているらしいのです。

Nov 16, 2004

Google Searchとの戦いの日々

MSNサーチ(beta)なんですが、今のところメンテ作業がたびたびあるものの、実際のところ悪くないんじゃないかと思います。「ogawa」「memoranda」で検索するとこのページがトップに表示されるという意味ではむしろ良いのかもしれません。うちのサイトにも熱心にクロールに来てくれますので、全文検索をMSNサーチ(beta)に任せてもよいくらいにキャッシュされています。

正直Google Searchはもう飽きました。もう何万回検索したか分かりませんが、日常的に使い続けているせいで「もしかして」機能のようなサプライズがないとトキメキを感じられません。インデックスが多いというメリットより、デッドリンクが多いというデメリットを最近では強く感じてしまいます。80億ページとか喜んでいる場合じゃないですよ(>中の人)。何らかのロジックでデッドリンクを排除しているはずですが、有効に機能していない気配があります。

しかも(実はここからが本文)、どういうロジックなのだか、7月末(Ogawa::Buzz: 独自ドメイン取ってみました)から3ヶ月以上が経とうというのにas-is.netにはクロールに来てくれず、hassaku.main.jpに相変わらずクロールに来ます。前者へのリンク数の方が今では遥かに多いと思うのですが。また、ときどきはサイトの登録 / 削除から登録してみたりもしています。ひょっとして「as」と「is」が検索除外語だからとか変なロジックが入ってはいまいかと要らぬ憶測をしてしまうほどです。

8月初旬

当初私は「.htaccess」に↓のように書いて素朴にRedirectさせていました。

RewriteCond %{HTTP_HOST} ^(hassaku\.main\.jp)(:80)? [NC]
RewriteRule ^(.*)$ http://as-is.net/$1 [L,R=permanent]

この方法でRedirectするとURLのユニフィケーションが機能してしまって新URLへのクロールが起きないらしい話も(真偽のほどは怪しいものの)ちらほら見かけます。でもそれってロジックが逆では? とも思うのですが、でも確かに待てど暮らせどクロールに来てはくれないのでした。

9月頃

次に試してみたのは、↓みたいな感じでリダイレクト用のCGIに投げるようにするというものです。リダイレクト先ではNOFOLLOW, NOINDEXを指定したり、titleを工夫したりしてさまざまなバリエーションを試みましたが、これも駄目でした。短期間にいろいろ試しすぎたかもしれません。

RewriteCond %{HTTP_HOST} ^(hassaku\.main\.jp)(:80)? [NC]
RewriteRule ^(.*)$ http://as-is.net/redirect.cgi?$1 [L,R]

10月

そろそろ業を煮やしてきたので、↓のようにしてみました。つまり、旧URLにアクセスしてきたのは全部「403 Forbidden」です。新しいURLへの誘導もしてやりません。

RewriteCond %{HTTP_HOST} ^(hassaku\.main\.jp)(:80)? [NC]
RewriteRule ^.* - [L,F]

うちにGoogle経由で来てくれる人というのは、「検索して旧URLが引っかかり、一旦アクセスしてみたものの403 Forbiddenを食らい、さらに検索ページに戻ってキャッシュ内にあるリンクをクリックしてくれた人」というとてもとても奇特な人、ひょっとしてファンですか? ということになります。それから一月、別にas-is.netにクロールに来るでもなく、hassaku.main.jpがキャッシュから消えるでもなくという状態です。

11月16日

この状態もナニかなーと思うので、最終手段として「410 Gone」を発動してみることにしました。ただ今回は少し誘導しましょうということでErrorDocumentも設定してあります。「403 Forbidden」のときに誘導しなかったのは「アクセス禁止にも拘らず誘導する」のに意味的な矛盾を感じたからで、今回の「ここのはなくなったので誘導する」というのはむしろ自然に感じられます。

RewriteCond %{HTTP_HOST} ^(hassaku\.main\.jp)(:80)? [NC]
RewriteRule ^.* - [L,G]
 
ErrorDocument 410 /error/410.shtml

で、/error/410.shtmlの中身は↓のような感じですね。これでしばらく(今度こそ)放置しようと思います。

<html>
<head>
<title>410 Gone</title>
<meta name="ROBOTS" content="NOINDEX,NOFOLLOW">
</head>
<body>
<h1>410 Gone</h1>
<p>The requested URL was gone from this server.
The link on the referring page seems to be wrong or outdated.</p>
<p>The requested page will be found on: 
<a href="http://as-is.net<!--#echo var="REQUEST_URI" -->">
http://as-is.net<!--#echo var="REQUEST_URI" --></a></p>
<hr>
<address>as-is.net</address>
</body>
</html>

12月23日

とうとう、ErrorDocument 410 /error/410.shtmlを削除しました。hassaku.main.jp以下にアクセスするとすべて410 Goneとなり、しかも移動先も示されません。