仕事で作ってるオープンなコミュニティサイトを、今風にAjaxで!ページ遷移なしで!なんてやってたら、全然クローラがインデックス作ってくれなくなっちゃったです。テヘペロ。
でも Google App Engine で作りこんでるから、いまから閲覧権限毎にページング作るとか超大変。
所でWebマスターな皆さんであれば、サイトマップは当然ご存知なんでしょう。
私はよく判って無かったです。
だけどアレ、XMLでしょう。
手書は論外として動的に生成するにしても、アーカイブが数10万ページとかある場合はどーすれば。
もっとカジュアルに Google サイトマップを用意したい・・・
いやただ単に面倒臭いだけなんですけど。
実は、Google の場合、サイトマップはテキストファイルにURLを列挙するだけでもOK なのです。
テキスト ファイル: 基本的なサイトマップ(画像、動画などの特殊なデータはなく、ウェブページの URL のみ含まれるサイトマップ)の場合、1 行につき 1 つの URL を記載したテキスト ファイルを Google に送信できます。
ただ単にURLをテキストファイルに書くだけ。超簡単。
あとそのテキストファイルのURLは末尾が.txtで無くても全然だいじょうぶです。
但し、サイトマップ ファイルに含める URL は 50,000 個以下である必要があります。
なので、アーカイブが数十万なんて場合は適切に分割し、複数のサイトマップを持てばいい様です。
親サイトマップを1つ(複数でも可ですけど)作ってそこに、子サイトマップを登録すればいいと言う訳です。
親サイトマップは、Google ウェブマスターツールの、「最適化」の中の「サイトマップ」から登録します。
子サイトマップは、URL列挙のテキストだと、それをクロールされちゃうんで、XMLで書かないとダメでした。
なのでparentsitemap の中身はこんな感じです。
<?xml version="1.0" encoding="UTF-8"?> <sitemapindex xmlns=”http://www.sitemaps.org/schemas/sitemap/0.9″> <sitemap> <loc>http://www.your.site/childsitemap1</loc> </sitemap> <sitemap> <loc>http://www.your.size/childsitemap2</loc> </sitemap> </sitemapindex>
Google以外のクローラとかのため、robots.txt にも親サイトマップを指定しておくと良いでしょう。
User-Agent: * Sitemap: http://www.your.site/parentsitemap
その子サイトマップが参照するファイルは、URL+改行を列挙したテキストファイルにします。
/childsitemap1 の中身
http://www.example.com/file1.html http://www.example.com/file2.html
そうすると、Googleサンが適宜クロールしてくれる様になります。