『7回目の出直し🌻』

好きなことを自分のペースで、のんびり更新

はてなブログのサイトマップを全部バラバラに登録してみる

はてなブログを定点観測と次の打ち手

前回、サイトマップインデックスがsitemap_index.xmlだと分かりましたが、それをGoogle Search Consoleに登録したところで、何も変わっていません。
まったく、どうなってるんや。

ということで、2020年6月はサイトマップを個別にバラバラに登録する大作戦に変えて、様子をみることにします。

サイトマップの実態とは

前回もちょっと触れましたが、サイトマップには、

  • サイトマップがどこにあるかを示すファイル(sitemap_index)
  • 記事がどこにあるかを示すサイトマップ(sitemap)

この2つがあります。サイトマップの実態の把握するには、sitemap_index.xmlをみれば分かります。

<loc>タグの中身が、sitemapの実態(記事ごとのURLが書いてあるファイル)です。

<sitemap>
<loc>https://kanaxx.hatenablog.jp/sitemap_common.xml</loc>
<lastmod>2020-05-30T11:03:19+09:00</lastmod>
</sitemap>

<sitemap>のかたまりがサイトマップの数だけあります。 ここに載っているURLをひとつずつコピーして、Google Search Consoleのサイトマップに登録すればいいだけです。

はてなブログのサイトマップは、月ごとに分割されているのでブログの運営日数により数が変わります。うちはまだ6個くらいなのでコピペで対応できますが、歴史が長いブログだと50個くらいでてきそうですね。やればできる!

がんばりましょう

スクリプト化しよう

(この先は、簡単なやり方が書いてあるだけです。この通りにやらなくてもSearch Consoleのサイトマップに登録さえすれば問題ありません)

といっても、年月ごとに分割したURLがサイトマップファイルがたくさんあるとコピペも大変なので、ちょっとでも簡単にする方法を考えました。

こんなjavascriptのファイルを作りました。

//自分のURLに変える
let sitemap ='https://kanaxx.hatenablog.jp/sitemap_index.xml';

fetch(sitemap).then(function(response) {
  return response.text();
})
.then(function(xml) {
  let parser = new DOMParser();
  let dom = parser.parseFromString(xml, 'text/xml');
  let locs = dom.getElementsByTagName('loc');
  let ans = "";
  for(let i=0; i<locs.length; i++){
    let loc = locs[i].textContent;
    console.log(loc);
    ans =  ans + loc.split('/').pop() + "\n";
  }
  console.log(ans);
});

このコードの先頭部分にサイトマップインデックスへのURLがありますので、自分のサイトマップインデックスのURLに変えて下さい。

使いかた

ChromeでF12を押し、Consoleを開きます。 Consoleに何か文字が書いてあるときは、×マークでクリアします。

f:id:kanaxx43:20200530120229p:plain

コードを貼り付けて、enterを押すのだ! f:id:kanaxx43:20200530120652p:plain

Consoleの下のほうに、サイトマップのファイル名だけが抜き出されて表示されます。 f:id:kanaxx43:20200530120752p:plain

あとは、このURLをGoogle Search Consoleに1つずつコピーして入れていきます。
f:id:kanaxx43:20200530121251p:plain

ここは手作業をするしかないです。面倒ですけど1回やれば終わりますので頑張りましょう。全部入れたスクショがこれです。エラーであることに変わりはないですね。
f:id:kanaxx43:20200530124725p:plain

一括で突っ込めるといいんですけどねぇ。それはサイトマップインデックスの仕事なので、あきらめましょう。

注意
月が替わると1つできる仕組みなので、新しい月を迎えたらサイトマップ登録する作業をしましょう。
1日早いけど6月分も入れておきました。どうせ見つけてくれないから同じでしょ!

まとめ

サイトマップインデックスでサイトマップ登録を終わらせようと思ったのですが、うまくいかないのでバラバラに登録する方法を試してみました。結果は半月後くらいですかね。

サイトマップインデックスがちゃんと機能すれば、こんな作業は必要ないのですよ。やらないよりはましかもな、くらいでやってみてください。 個別に登録したからといって、Googleがサイトマップを認識してドキュメントを拾ってくれるわけではないので、過剰な期待はしないほうがいいです。

その後

手作業では面倒なので、サイトマップを一括で登録するPHPのプログラムを作りました
kanaxx.hatenablog.jp