noindex
tagがあるにも関わらずインデックスされているケースを見かけたので調べてみたところ、googlebotに関してはどうやらそういう仕様があるようです。 noindex
tag は常にインデックスの削除を行うのだと思っていたのでちょっと驚きました。
メタタグを使用して検索インデックス登録をブロックする - Search Console ヘルプ
重要: noindex メタタグを有効にするには、robots.txt ファイルでページをブロックしないでください。ページが robots.txt ファイルでブロックされると、クローラは noindex タグを認識しません。そのため、たとえば他のページからリンクされていると、ページは検索結果に引き続き表示される可能性があります。
Block search indexing with meta tags - Search Console Help (同ページ英語版)
Important! For the noindex meta tag to be effective, the page must not be blocked by a robots.txt file. If the page is blocked by a robots.txt file, the crawler will never see the noindex tag, and the page can still appear in search results, for example if other pages link to it.
ちょっとこの説明だけだとよくわかりませんが、 noindex
を指定していても検索エンジンにインデックスされるケースがあるようです。
googlebotが「noindex
tagをみるとそのページをインデックスしない、既にインデックス済みの場合はインデックスを消す」というロジックだと仮定すると、たとえば次のようなケースではインデックスされるのかもしれません。
noindex
tagを指定しないままページを公開するnoindex
tagの指定とrobots.txtによる該当ページのブロックを 同時に 行う- googlebotは該当ページを見に行かないので、「
noindex
tagをみてインデックスを削除する」という処理を行わない
これが正しいのだとすると、このgooglebotの注意書きのとおり、 robots.txt で該当ページのブロックを外せばインデックスが削除されるはずですね。goolebotがrobots.txt でブロックしているのを見つけたら、ブロックされているURLですでにあるインデックスをすべて削除すればいいような気もしますが、そうはなっていないようです。
ただ上記のgooglebotの注意書きの「たとえば他のページからリンクされていると、ページは検索結果に引き続き表示される可能性があります」はよくわかりません。最初からnoindex
tagとrobots.txtによるブロックしていて、かつ他のページからリンクされているときもインデックスされるかのように読めますが、この解釈が正しいのかどうかはわかりません。