検索エンジン向けにsitemap.xmlというものがある。どこからもリンクが張られていないページをインデックスしてもらうときや、更新日時やサイト内でのページの優先度、更新頻度を宣言する時に使う。このへん↓に登録する。

robot.txtに記載することもできる。検索エンジンが対応していれば拾ってくれるだろう。

User-Agent: *
Allow: /
Sitemap: http://example.jp/sitemap.xml

適切な内容のsitemap.xmlをそれぞれに登録するのが好ましいわけだが、livedoor Blogのcmsは今のところ自動でsitemap.xmlを作る機能はない。自動でsitemap.xmlを作るサイトやツールはいくつかあるみたいだけど、多くはその場でblogをcrawlingしているみたいで、意図通りのpriorityが付かずに困る事がある(ホントはpermalinkにヒットしてほしいのに、category一覧やtag一覧の方が上位に検索される、などなど)。

なので、上記のサイトとツール集の中からperlのCode Snippetをパクってきて、livedoor Blog用にちょっと直してみた。ただひたすら手続きを書いただけ。

  • 有料プラン向け(要ftpアクセス)
  • ftpで記事一覧をlsしてsitemap形式にしてカレントディレクトリに保存。ついでにftpでうp
  • トップページのpriorityは1.0決めうち
  • 同じように他のpriorityは個別記事ページは0.9、カテゴリーアーカイブと月別アーカイブは0.6決めうち
  • changefreqもalways決めうち
  • ftpで取得できないtag一覧ページは含まれない
  • 毎回ftpするから、平文パスワード送られまくってキモイ

モノはコレ

いかにもやっつけですね。もし興味があったらどうぞ。どこかftpの接続性のある場所で、適当に直して使ってください。特に平文パスワードなのでcronに入れるような使い方はオススメできません。APIとか使えば安全に出来るんかな。

cms側でsitemap.xml用のテンプレートが欲しい。