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
;
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 | コメント | トラックバック() |

