種別[software] cocolog:10293851
セクションJRF のソフトウェア Tips
日時2006年03月02日 03:12:23
元URLhttp://jrf.cocolog-nifty.com/software/2006/03/post_1.html
タグ[ウェブログ・ココログ関連]

ココログプロで Google サイトマップインデックスを作る

なかなか Google がクロールしてくれないので、Google Sitemapの機能を試してみる。Google Sitemap には Atom 0.3 でも良いから当初はそうしていたのだが、2 週間ほどたっても音沙汰なしだったので Google Sitemap 専用の XML フォーマットを使うことにした。

すでに下記参考のようにいくつかのサイトで Movable Type や Type Pad のテンプレートを使って Sitemap を作る試みがなされている。しかし、それらのテンプレートはあくまで一つのブログを対象にしたものでしかない。このサイトは複数のブログを管理しており、一つ一つブログのサイトマップを登録することもできるのだが、Google Sitemap Index という形式を使えばよりスマートに Sitemap を作ることができそうだとわかった。

  ■適当に重み付けしたサイトマップを作る。
    
サイトマップでは Google にあくまで参考数値としてだが、記事のサイト内における重要度を 0.0 から 1.0 の範囲で設定することができる。

重み付けの方針は次の通りである。

  1.トップページを 1.0 にする。
  2.最近の記事を高めにする。
  3.「続きを読む」がある記事を高めにする。
  4.カテゴリページはそのカテゴリの記事すべてが載るので、高めにする。
  5.週ごとのアーカイブは今週のものだけ高めにする。
    
以上を基に、次のような sitemap-part.xml というテンプレートを作った。

<?xml version='1.0' encoding='UTF-8'?>
<urlset xmlns="http://www.google.com/schemas/sitemap/0.84&quot;
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
    http://www.google.com/schemas/sitemap/0.84/sitemap.xsd&quot;&gt;
<url>
<loc><$MTBlogURL encode_xml="1"$></loc>
<priority>1.0</priority>
<MTEntries lastn="1">
<lastmod><$MTEntryDateModified timezone="UTC" format_name="W3CDTF"$></lastmod>
</MTEntries>
<changefreq>daily</changefreq>
</url>
<MTEntries lastn="20">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryDateModified timezone="UTC" format_name="W3CDTF"$></lastmod>
<MTEntryIfExtended>
<priority>0.9</priority>
<MTElse>
<priority>0.6</priority>
</MTElse>
</MTEntryIfExtended>
<changefreq>daily</changefreq>
</url>
</MTEntries>
<MTEntries offset="20" lastn="9999">
<url>
<loc><$MTEntryPermalink encode_xml="1"$></loc>
<lastmod><$MTEntryDateModified timezone="UTC" format_name="W3CDTF"$></lastmod>
<MTEntryIfExtended>
<priority>0.7</priority>
<MTElse>
<priority>0.5</priority>
</MTElse>
</MTEntryIfExtended>
<changefreq>monthly</changefreq>
</url>
</MTEntries>
<MTCategories>
<url>
<loc><$MTCategoryArchiveLink encode_xml="1"$></loc>
<MTEntries lastn="1">
<lastmod><$MTEntryDateModified timezone="UTC" format_name="W3CDTF"$></lastmod>
</MTEntries>
<priority>0.8</priority>
<changefreq>weekly</changefreq>
</url>
</MTCategories>
<MTBlogIfArchives>
<MTArchiveList archive_type="Weekly" offset="1">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<lastmod><$MTArchiveDateEnd timezone="UTC" format_name="W3CDTF"$></lastmod>
<priority>0.6</priority>
<changefreq>yearly</changefreq>
</url>
</MTArchiveList>
<MTArchiveList archive_type="Weekly" lastn="1">
<url>
<loc><$MTArchiveLink encode_xml="1"$></loc>
<lastmod><$MTArchiveDateEnd timezone="UTC" format_name="W3CDTF"$></lastmod>
<priority>0.8</priority>
<changefreq>daily</changefreq>
</url>
</MTArchiveList>
</MTBlogIfArchives>
</urlset>

最低の priority は最近 20 個よりも前の個別記事で、「続きを読む」がないもの、その次が今週以外の週別アーカイブである。

ただ、MTArchiveList には offset を指定することができないため、しかたなく、今週分の週別アーカイブは二重に登録している。Google がこれをどのように解釈するかは、まったくわからない。

  ■サイトマップインデックスファイルを作る。
    
方針として、まず、それぞれのブログごとにサイトマップインデックスファイルに入れるべき断片をテンプレートを用いて作り、その後 SSI (サーバーサイドインクルード)を使って、一つのサイトマップインデックスにする。

ただし、ココログでは .xml では SSI が使えず、また .htaccess を設定する方法もないことから、拡張子は .html にする必要がある。これまた、Google がどう解釈するかが問題だが、試した結果、「SITEMAP インデックス」と認識されている。
sitemap.htmlを次のようなファイルにする。
  
<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84&quot;
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot;
    xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84
    http://www.google.com/schemas/sitemap/0.84/siteindex.xsd&quot;&gt;
<!--#include virtual="/column/sitemap-index-part.xml" -->
<!--#include virtual="/religion/sitemap-index-part.xml" -->
<!--#include virtual="/society/sitemap-index-part.xml" -->
<!--#include virtual="/software/sitemap-index-part.xml" -->
</sitemapindex>

これから読む sitemap-index-part.xml は次のようなテンプレートにした。

<sitemap>
      <loc><$MTBlogURL encoded_xml="1"$>sitemap-part.xml</loc>
      <MTEntries lastn="1">
      <lastmod><$MTEntryDateModified timezone="UTC" format_name="W3CDTF"$></lastmod>
      </MTEntries>
</sitemap>

ちなみに Google はサイトマップインデックスに載せるのはサイトマップを最後に作った日付で最新記事の日付ではないと述べているが、記事の投稿ごとに更新するんだから、まぁ、これでいいんじゃないか?

  ■まとめ
    
結論を言ってしまうと、このサイトは新しいため、ほとんどキャッシュに入っていない。その状況がいまだに変わっていないので、サイトマップが有効に機能しているかどうか判断がつかない。統計情報は今のところ「上位の検索クエリ」しか表示されない。クロールに関する情報もページ分析も表示できない。

サイトマップの送信とクロールされるかどうかは関係ないと Google も書いているが、まぁ、その通りなんだろうという感想だ。(このサイトがどれだけキャッシュされているかはここをクリックすればわかる。)

あと Google はいくつかのサーバーが時間ごとに交代でクロールや検索フロントエンド、クエリ処理をやっているのだろうか?時間によって、検索できるページが変わっている。今、現在試すと三つの記事しかキャッシュされてないが、たまに 100 個近くキャッシュされてるときもある。その数はバラバラではなく、3 個か 100 個かという感じだ。

自分のところへのリンクを増やすといっても、あんまり関係ない記事にトラックバックをかけるのもいかがかと思うし……といっても最近はできるだけトラックバックしようとはしています。

<b>参考</b>
  《観測気球:TypePad 用 Google Sitemaps テンプレート》
  《Scot Loftesness:Google Sitemaps for TypePad Pro》
  《Perl Tips:Movable Type で、Google Sitemap に対応する方法》
  《ココログや Movable Type のシステムと奮戦中》
  
更新:06/03/02
初公開:2006年03月02日 03:12:23
最新版:2006年04月24日 12:42:07
Trackbacks:

《googleウェブマスター ツールにココログのサイトマップを登録》 from お助けPC パソコン トラブル データ救出 自分で修理、解決。
googleウェブマスターツールにココログのサイトマッップの作成方法 自分でウェ 

受信: 2007-03-07 11:36:37 (JST)


Comments:

Sitemap のバージョンが上がって robots.txt などで設定できるようになったようです。詳しくは下記をご参照ください。


http://www.sitemaps.org/