sitemap.xmlをSitemap0.9対応に変更した

このブログではsitemapを発行してGoogleに食わせていますが、
以前たつをさんの、sitemap生成スクリプトをコピーして、
それからずっと同じスクリプトを使っていました。

最近になって、GoogleだけでなくYahoo!にもクロールして欲しいので、
sitemapのフォーマットををバージョン0.84から0.9に変更しました。
とはいえ、ほとんど変更はないです。

sitemap0.9をcl.itemlistから生成するスクリプト


#!/usr/bin/perl
use strict;
my %hash;
while (<>) {
    $hash{$1} = $hash{$2} = $hash{$3} = 1
if (/^<a href=\"(((\d+-\d+)-\d+)-\d+)/);
}
my $xml;
foreach (sort keys %hash) {
    my $p = (length($_) == 7) ? 0.4 : ((length($_) == 10) ? 0.6 :
    "1.0");
    $xml .= << "URL"
   <url>
      <loc>http://path.to.site/$_.html</loc>
      <changefreq>weekly</changefreq>
      <priority>$p</priority>
   </url>

   URL
}
print << "XML"

<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <url>
      <loc>http://path.to.toppage.of.site/</loc>
      <changefreq>daily</changefreq>
      <priority>0.8</priority>
   </url>
$xml
</urlset>
XML
    ;


このスクリプトを使えば、コマンドを実行するだけで
chalowで作ったcl.itemlistからsitemap.xmlを生成できます。

% perl ./sitemap0.9 ./cl.itemlist > ./sitemap.xml


できあがったsitemap.xmlをサーバーにアップすれば作業完了。
生成やアップロードはスクリプトを書いて自動化すると良いでしょう。

http://siteexplorer.search.yahoo.com/にアクセスして、
Yahoo!にもsitemap.xmlを登録してみました。どうなるかな。


投稿者:としのり  日時:23:59:59 | コメント | トラックバック |
blog comments powered by Disqus