検索エンジンに、うちの全ページを一枚の地図で渡す話。sitemap.xmlの正体
新しく追加したページが、なかなか検索結果に出てこないことがあった。
クローラーに、うちの全ページを一枚の地図で渡す方法があった。
新しく追加したページが、なかなか検索結果に出てこないことがあった。
クローラーが自分で見つけてくれるのを待つしかないのかと思っていたら、地図を渡すという方法があるのを知った。
クローラーは、リンクをたどって進んでくる
以前書いたとおり、クローラーはページの中のリンクをたどって、次々に別のページへ移動していく司書のようなものだった。
ということは、どこからもリンクされていないページには、たどり着けない。
新設したばかりのディレクトリや、まだ他のページからリンクを張っていないページは、この「たどり着けない」に該当していた。
sitemap.xmlは、URLの一覧表だった
sitemap.xmlは、サイトの中にある全ページのURLを、あらかじめ一枚の表にまとめておくファイルだ。
中身は単純で、こんな形が並んでいる。
これをGoogle Search Consoleに提出しておくと、クローラーはリンクをたどるだけでなく、この一覧表を見て「他にこういうページもある」と把握できるようになる。
見つけてもらうのを待つのではなく、こちらから渡しにいく形になる。
手で作ると、すぐに古くなる
最初は手で一覧を作っていたが、これはすぐに破綻した。
記事を一本増やすたびに、sitemap.xmlも書き換えないといけない。
忘れると、新しいページだけが一覧から抜け落ちる。
いまはCMS側で、投稿が公開されるタイミングに合わせてsitemap.xmlを自動で生成し直すようにしている。
人がファイルを触る場面が無くなってから、抜け落ちが起きなくなった。
全部のページを載せればいいわけでもなかった
もう一つ知ったのが、載せるページは選んだほうがいいということだった。
会員だけが見られる管理画面や、検索結果に出したくない下書きのページまで載せてしまうと、地図としての意味が薄れる。
載せるのは、検索に出てほしい公開済みのページだけ。
それ以外はrobots.txtという別の仕組みで、そもそもクローラーに見せない範囲を決めておく。
地図に載せる範囲と、そもそも見せない範囲を、別々に管理するようになった。
渡した地図は、それでも絶対ではなかった
sitemap.xmlを提出しても、クローラーがすぐにその通りの順番で回ってくるわけではない。
あくまで「参考にする一覧」であって、命令ではないらしい。
それでも、新しいディレクトリを作った日の反応は、明らかに早くなった。
地図を渡したからといって、必ず来てくれるとは限らない。
それでも、渡さないよりは、見つけてもらえる確率がずっと上がった。
※運営者が個人で書いているnoteです。