先日、 サイトマップを作ってみる の投稿でも少し触れましたが、やっぱり生成したサイトマップの容量があまりに大きくて重いので、圧縮してからクローラへ渡すことにしました。
圧縮に必要な Perl のコードを、前回作ったサイトマップ生成 CGI に追記します。
# $xml にサイトマップのXMLソースが入っているとして use Compress::Zlib; $xml = Compress::Zlib::memGzip($xml); # このあと sitemap.xml.gz のファイル名で $xml の内容を保存。とか。
圧縮行程自体は上記のように2行でOK。
現在、各検索エンジンでは GZIP 形式の圧縮ファイルに対応しているので、もちろん GZIP による圧縮を行います。
また、GZIP 自体は大抵の UNIX サーバーに標準でインストールされているので、たぶん問題なく動くと思う。
それを前回のファイル名に「.gz」を付加してそれぞれ保存するようにした。
sitemap.xml → sitemap.xml.gz
sitemap-mobile.xml → sitemap-mobile.xml.gz
これで、400KB 程あったサイトマップ XML が、20KB程に。軽っ!
さて、Google、Yahoo、共にサイトマップを登録し直さなければ。
まず Google に登録してあったサイトマップとモバイルサイトマップを削除し、新たにgzip圧縮ファイルのURLで再登録。
すると、ものの10分ほどで 「OK 」のステータスが出た。Google 早っ!
続いて Yahoo。
再登録後、待っても待っても反映されない。ずっと「未処理」のまま。
・・・待つこと約9時間(汗)
やっと「処理中」に切り替わった。Yahoo 遅っ!
登録後の画面はこんな感じ。
あと、トップページのヘッダに MSN 用に記述して置いた ROR サイトマップの記述も「.gz」付きに修正した。
MSN も gzip圧縮に対応してるでしょ。たぶん。