2014年1月14日火曜日

Bloggerのサイトマップを自動的に取得する最新の方法

Bloggerの自動生成されたサイトマップを取り込む新しい方法です。

今まで自動的に更新されるサイトマップはRSSやATOMのフィードを利用していたと思います。

以前のBloggerのサイトマップを取得する方法

http://nonsubject.arinco.org/atom.xml?redirect=false&max-results=500
http://nonsubject.arinco.org/atom.xml?redirect=false&max-results=500&start-index=501

ファイルサイズが大きく500記事ずつ分割する必要もありました。

今回の方法は、それらを回避しsitemaps.orgのサイトマップ プロトコル 0.9にも順守しています。


方法はとても簡単。

ブロガーのURLの末尾にsitemap.xmlを追加するだけです。

500を超える投稿は自動的にファイルが分割され、sitemap.xmlはサイトマップ インデックス ファイルになります。

501以上の記事のsitemap.xml

<?xml version='1.0' encoding='UTF-8'?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap><loc>http://nonsubject.blogspot.com/sitemap.xml?page=1</loc></sitemap>
<sitemap><loc>http://nonsubject.blogspot.com/sitemap.xml?page=2</loc></sitemap>
</sitemapindex>


そのためサイトマップの指定は変更する必要がありません。1ページに500投稿づつ記載されます。

カスタム ドメインは現在のURLでは取得できないので、元のブロガーのURLを使います。
その場合でも現在のドメインのサイトマップが生成されます。

Googleウェブマスターツールは、現在のドメインのルートディレクトリしか許可していないので登録できませんが、Bloggerはrobots.txtを編集可能ですので、そちらは指定できます。


2014年03月08日 : カスタム ドメインでは実行しないでください!
実験的に試したところ旧ドメインのインデックスが復活していました。

2015年03月06日 : カスタム ドメインにも対応されました。
Bloggerのサイトマップがカスタムドメインにも対応


設定例
設定 → 検索設定 → 独自の robots.txt

User-agent: Mediapartners-Google
Disallow:

User-agent: *
Disallow: /search
Allow: /

Sitemap: http://nonsubject.blogspot.com/sitemap.xml


robots.txtは間違えると大変ですし、サイトマップは必ずしも必要というわけではないので無理に変更する必要はないかとも思います。独自ドメインでも利用可能になる事に期待されます。