文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

はてなブログのサイトマップxml(サイトマップインデックス)のURLの確認の仕方

はてなブログのサイトマップインデックスのURLの調べ方をちゃんと説明できているサイトが見当たらなかったので、書いてみます。
f:id:treeapps:20170104180018p:plain

はてなブログのサイトマップインデックスのURLの調べ方をググると、「こうです」といきなり答えだけ書いているサイトが多く、「え?いきなり答え言われてもなんでそこに書いてあるのか解らないよ?」と疑問に感じるかと思ったので、「どこにサイトマップインデックスのURLが書いてあるのか」「なぜそこを見るとサイトマップインデックスのURLが解るのか」について書いてみます。

サイトマップxmlとは?

説明はgoogleを見るのが早いです。

ざっくり言うと、サイトマップxmlは「自サイトのコンテンツのURLの存在をgoogleに知らせる」ものです。存在を知らせる事でgoogleのクローラの動きをよくする事ができます。逆に、あまりに多くのURLを送信すると、クロール量が増えてgoogleにインデックスされる時間が遅くなる恐れがあります。

サイトマップには「サイトマップインデックス」と「サイトマップxml」の2種類があり、サイトマップインデックスにはサイトマップxmlのURLが記述されています。↓こんな構造です。

サイトマップインデックス
  ┣ サイトマップ1.xml
  ┣ サイトマップ2.xml
  ┣ サイトマップ3.xml
  ┗ サイトマップ4.xml

このサイトマップ1〜4.xmlに、ブログ等のURLが記述されます。

でははてなブログのサイトマップxml、サイトマップインデックスはあるのでしょうか?


あります


安心して下さい。ちゃんと両方存在します。

サイトマップインデックスのURLの調べ方

Search Console(旧Google ウェブマスターツール)、またはrobots.txtから確認する事ができます。

Search Consoleから確認する場合

クロール -> robots.txtテスター、を開くと、サイトマップインデックスのURLが記述されている事が解ります。
f:id:treeapps:20150727092958p:plain

何故Search Consoleでrobots.txtの中身が解るかというと、robots.txtというのはURLが決まっているから(変更する事も可能です)です。一般的には、 http://◯◯◯◯◯/robots.txt というURLになる事が決まっているので、robots.txtテスターを実行すると、そのURLを参照してくれるので、robots.txtの中身が解るのです。

直接robots.txtを参照して確認する場合

当ブログの場合は以下です。
http://www.bunkei-programmer.net/robots.txt

他のはてなブログであれば以下のように入力して下さい。
http://ここに自分のブログのドメインを設定/robots.txt

Search Consoleと同じ表示になりましたね。


なお、robots.txtにサイトマップインデックス、またはサイトマップxmlのURLを記載する事は一般的なwebの手法なので、はてなブログ以外でも、robots.txtを見る事でサイトマップインデックス・サイトマップxmlnURLを知る事ができると思います。

なぜrobots.txtにサイトマップインデックスURLが書かれているのか

Robots.txt の仕様  |  Webmasters  |  Google Developers

Googleのサイトにrobots.txtの仕様が書いてあり、その中に「Sitemap」というディレクティブにサイトマップインデックスのURLを記載すると、色々な検索エンジンがそこを読み取ってくれますよ、と書かれています。

しかしrobots.txtにSitemapディレクティブを記述する事は必須ではなく任意です。恐らくですが、はてなブログの胴元の株式会社はてなは商売ではてなブログを運営しているので、自動的にrobots.txtにサイトマップインデックスURLを設定しておいて、少しでもユーザのブログを検索エンジンに登録させて、広告費を稼ごうとしているだと思います。従って、他のブログのrobots.txtにサイトマップインデックスのURLが書かれているかどうかは解りません。それぞれのブログの実装次第、という事になります。

となると、robots.txtのSitemapディレクティブを各検索エンジンが読み取ってくれるなら、わざわざSearch Consoleにサイトマップインデックスを登録する必要無くない?と思うかもしれません。その考えは半分合っていますが、登録する事で色々なメリットがあります。

確実に検索エンジンにURLを教えられる

検索エンジンはいつ仕様が変わるか解りません。ひょっとしたらいつの間にかrobots.txt内のSitemapを参照してくれなくなる事もあるかもしれませんし、検索エンジンがrobots.txt内のSitemapのURLを正しく解釈できているのか、ユーザ側には解りません。いつの間にか検索エンジンが「君のブログのrobots.txtにSitemapディレクティブが書かれているのは知ってるけど、うちの検索エンジンはもうそれサポートするのやめたよ」となる事もあるかもしれません。

Search Consoleにサイトマップを登録する事で、確実にサイトマップインデックスのURLを教えられるという事になります。robots.txt内のSitemapが参照されるかどうかの不安を抱えるよりは、明示的に登録してしまった方が安心できます。

検索エンジンにインデックスされた件数の概算が解る

ブログを運営していくと、「今大体何件くらい自分のブログのURLが検索エンジンに登録されているのだろう?」という疑問が湧くと思います。もしSearch Consoleにサイトマップインデックスを登録していれば、概算ですが、登録されているURL数を確認する事ができます。

サイトマップインデックスの設定の仕方

せっかくはてなブログのサイトマップインデックスのURLを調べたのですから、それをGoogle Search Consoleに登録し、検索エンジンに「うちのブログの全URLのリストはこれだよ!」と教えるように設定してしまいましょう。

設定の仕方

Search Consoleを開き、クロール -> サイトマップ、と表示し、「sitemap_index.xml」と入力(これは全てのはてなブログで同一)し、サイトマップを送信をクリックして完了です。
f:id:treeapps:20150727093914p:plain

確認の仕方

サイトマップインデックスを登録してからgoogleがサイトマップインデックスを読みに行くのに数分かかる場合があります。

確認する場合は、Search Consoleを開き、クロール -> サイトマップ、と表示し、画面下部を見て、「/sitemap_index.xml」というものが表示され、「送信」や「インデックスに登録済」に数字が表示されれば、googleに正常に登録されている事が確認できます。
f:id:treeapps:20150727094213p:plain

番外編

はてなブログにRSS(フィード)はあるの?


あります


あるんです。これも一緒にSearch Consoleのサイトマップに登録しちゃいましょう。

はてなブログのRSSのURLの確認の仕方

RSSですが、これもSearch Consoleのサイトマップと同様(というか全く同じ扱い)に登録する事ができます。

少しテクニカルになりますが、RSSのURLはhtmlのソースから確認する事ができます。

f:id:treeapps:20150727094705p:plain

    <link rel="alternate" type="application/atom+xml" title="Atom" href="http://www.bunkei-programmer.net/feed"/>
    <link rel="alternate" type="application/rss+xml" title="RSS2.0" href="http://www.bunkei-programmer.net/rss"/>

という部分が、はてなブログのRSSのURLです。AtomとRSS2.0の2種類存在するようですね。どちらをSearch Consoleに登録すればいいのかの最適解はちょっと答えられないですが、Atomの方がシンプルな構造になっているので、私はAtomの方を登録しています。(シンプルな方がGoogleが理解しやすくクロールも早まる事を期待)

RSSをサイトマップに設定する手順は前述のサイトマップインデックスの登録と全く同じやり方です。「sitemap_index.xml」の代わりに「feed」と入力して登録するだけです。

何故サイトマップとRSSの両方を登録しておくか

処理内容的に、サイトマップxmlというのは、生成されるURL数が多いため、1日1回のバッチ処理のみによって生成される事が多いです。数十万URLを登録する事もあるので、リアルタイムに新URLをサイトマップ化するのは結構難しいのです。

一方RSSは、そもそも設定できるURL数が少ないため、リアルタイムに生成できる事が多いです。RSSは実装的にはURL数の上限は存在しないですが、リアルタイム性を持たせると負荷が問題なってくるので、10〜20件を上限としている場合がほとんどです。また、ユーザにRSSを登録して貰った時に、例えば1万URLをRSSに登録してしまうと、それを受信したユーザ側のRSSソフトに大変な負荷がかかってしまうため、登録件数が少ない場合がほとんどです。

それら特性を考えると、ざっくり以下のような特徴があると言えます。

項目 得意な点 不得意な点
サイトマップXML ブログの全URLを登録できる 新記事のURLがリアルタイムにサイトマップxmlに反映されない
RSS 新記事をアップしたらリアルタイムに反映される(場合が多い) RSSに登録できるURL数には上限がある(10〜20件程度)

この特性を利用し、サイトマップxmlによって「ブログ全体のURLはこれだけありますよ」と検索エンジンに教えつつRSSによって「新記事のURLはこれですよ」とリアルタイムに検索エンジンに教える、という最適化ができるわけです(検索エンジンによっては最適でない可能性はあります)

pubsubhubbubはあるの?

これはちょっと不明ですね。少なくともAtomとRSS2.0のxmlにはpubsubhubbubの文字は設定されていません。だとすると何らかのwebサービスでフィードを生成(編集)してpubsubhubbubに対応させる事ができるのかな???と考えていますが、解りません。

雑感

Robots.txtにサイトマップインデックスのURLが記述されているので本来この作業を行う必要はありませんが、明示的に登録してあげる事で、より正確に、より早く、サイトマップの存在をGoogleに知らせる事ができます。

手動でSearch Consoleにサイトマップを登録する事で、記事に異変(404など)が発生した時も確認する事ができたり、今何件Googleにインデックスされているかを調べる事もできるので、手動で登録する事をおすすめします。


他にも、最近流行りのコピーサイトについても多少効果はあります。「より早くインデックスされた方がオリジナルサイト」と検索エンジンが認識する可能性があるため、サイトマップやRSSを登録しておくと、多少効果が出ると思われます。それでも完全とはいえないので、怪しいサイトを見かけたら、以下からGoogleに申請する事で、何らかの対応をして貰える可能性があります。
www.google.com

これからはじめるSEO 顧客思考の教科書 ?ユーザー重視のWebサイトを5つの視点で実現する

これからはじめるSEO 顧客思考の教科書 ?ユーザー重視のWebサイトを5つの視点で実現する

SEO対策のための Webライティング実践講座

SEO対策のための Webライティング実践講座