Google 用のサイトマップを作った
2005-11-19
Google サイトマップ ベータの日本語版が出たとのことで早速利用したいと思い、Google 用のサイトマップを作ることにした。
Google サイトマップ (Beta) ヘルプ によればそれ用の xml ファイルをサイトにおいて置けばよいらしい。必須の要素は、urlset と url と loc であるとのことで、これらをどうやって作ろうか考えた。このサイトは、rNote という CMS で作られているわけですが、rNote はその動作の必要から、file.cache というエントリーの一覧を出力する機能があります。これを利用するのが簡単そう。file.cache の中はこんな感じです。タブが入っているのですが、以下では \t と表記しています
2005/11/diary_051116a.xml\t1132129737\tGoogle Analytics によるブラウザのバージョン\t 2005/11/diary_051114a.xml\t1131958425\tGoogle Analytics 導入\t 2005/11/diary_051112a.xml\t1131768115\tFirefox 拡張 Pref Buttons をアイコン化\t 以下略
エントリーのファイルと、unix タイムで記された更新日時と、エントリーのタイトルがタブ区切りで記述されているわけですね。
これを Google サイトマップ用の xml に動的に変換することにしました。以下のその sitemap.php です。
<?php header("Content-Type: application/xml"); ?>
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84">
<url>
<loc>http://diary.noasobi.net/</loc>
<lastmod><?php print(date("Y-m-d\TH:i:s+09:00", filemtime("rss.rdf"))) ?></lastmod>
<changefreq>daily</changefreq>
</url>
<?php
$file_cache = "cache/file.cache"; // file.cache
$TZD = "+09:00"; // タイムゾーン
$site_url = "http://diary.noasobi.net/";
$ext = ".html";
$lines = file($file_cache);
$xml_items = "";
foreach($lines as $line) {
$line = rtrim($line);
$items = explode("\t", $line);
$xml_items .= "<url>\n<loc>".$site_url.ereg_replace("\.xml", $ext, $items[0])."</loc>\n";
$xml_items .= "<lastmod>".date("Y-m-d\TH:i:s$TZD", $items[1])."</lastmod>\n";
$xml_items .= "</url>\n";
}
print $xml_items;
print "</urlset>";
?>
1行目の <?php header("Content-Type: application/xml"); ?>
はいらないと思いますが、趣味で。:p)
余談ですが、これを設定しないと text/html で送出するわけですが、Firefox のレンダリング速度が全然違うんで驚きました。もちろん、application/xml の方が数倍遅いです。
今のところ、まだ Google に確認してもらえていないようで、サイトマップのステータスは保留になっていますが、こんなんでいいのかなぁ。
その後、サイトマップのステータスに、不適切な日付
との表示が。CVN65と娘たちの日常 で述べられているのと同じエラーの模様。ふーむ、しょうがないからとりあえず時間の部分を削ってみるか。
「Google 用のサイトマップを作った」へコメントをつける
この記事へのツッコミ
- 1: mar (2005-11-20T01:22:34+09:00)
- sitemap.xml の代わりに RSS 2.0 も使えますよ。
http://www.google.com/webmasters/sitemaps/docs/ja/other.html#feed - 2: のり (2005-11-20T18:16:05+09:00)
- 残念ながら、RSS 2.0 も Atom 0.3 も出していないんですよ。いずれにしても全エントリーを含めるとかは無理なんですけどね。
というか、現在まだ確認ステータスが未確認のままという問題を抱えていて、Google サイトマップを利用するに至っていません。対策を考え中。
情報ありがとうございました。
- この記事の永続的 URI ならびに トラックバック ping URI
- http://diary.noasobi.net/2005/11/diary_051119a.html