Bloggerのmetaタグのrobotsによる検索避けのマークアップ 結城永人 -2022年12月17日 (土) BloggerでGoogleやYahoo!などの検索エンジンにブログを表示させなくする検索避けの方法としてHTML編集でのmetaタグのrobotsのマークアップについて紹介する。 目次検索避けにmetaタグのrobotsを使う利点Bloggerで使われるページの種類metaタグのrobotsのマークアップの仕方ブログのテンプレートの記載場所検索避けを行うページの振り分け 検索避けにmetaタグのrobotsを使う利点 Robot by Janson_G / Pixabay Bloggerの検索避けの方法はmetaタグのrobotsの他にもう一つあってカスタムロボットヘッダータグを使うことができる。これは管理画面の設定や編集画面の投稿の設定からスイッチを入れるだけだから簡単だけれども不利な点が一つだけあって別々の種類のページが幾つか混ざってしまっている。なのでページの種類を細かく分けて検索避けをかけるにはmetaタグのrobotsを使わなくてはならない。 Bloggerで使われるページの種類 インデックスページトップページ(ホームページ)トップページ以前のインデックスページアーカイブページラベルページブログ内検索ページブログ内検索の結果ページ投稿ページ記事ページ追加ページエラーページ404ページ metaタグのrobotsだと、全種類、分けて個別に検索避けをかけることができる。 ただし記事/追加ページを投稿毎に扱うのは数が増えるほどに大変で、カスタムロボットヘッダータグで可能だからmetaタグのrobotsよりも良いと思う。 metaタグのrobotsのマークアップの仕方 検索避けでmetaタグのrobotsを使う場合はnameにnoindexを指定する。 <meta content='noindex' name='robots'/> noindexという値は検索エンジンへのインデックス登録を拒否する。 たとえブログが検索エンジンのクローラーに発見されたとしてもサイト評価は行われず、検索結果への順位付けはなく、表示されることもない。 metaタグのrobotsで使用できる値は他にも、種々、あって検索避けに関してはGoogleがインデックス登録と表示に関する有効なディレクティブに、十四種類、挙げているので、少なくともGoogleの検索エンジンでは認識されて使うことがてきる。 又、nameのrobotsを変更することによって検索避けをかけたい検索エンジンを指定することもできる。 Google検索を対象とする場合googlebotBing検索を対象とする場合bingbot 他にも検索エンジンはあるけれどもmetaのrobotsに使えるものは検索エンジンのホームページに載っているだろう。 Yahoo!検索などは日本でGoogle検索、アメリカでBing検索という他の検索エンジンを元にして検索結果を出している。そうした検索エンジンを指定して検索避けをかけるには元になっている検索エンジンを対象にしなくてはならず、それ自体を指定することはできない。 ブログのテンプレートの記載場所 metaタグのrobotsはサイトのHTMLのhead内に記載しなくてはならない。 Bloggerでは管理画面のテーマのメニューの「HTMLを編集」か「バックアップ」と「元に戻す」からテンプレートのソースコードを更新する。 head内の他のタグの外側に記載しなくてはならない Bloggerのテンプレートのソースコードには通常のHTMLタグだけではなくて独自タグも含まれていて普通とは違うから混乱しないようにしたい。 <head> 中略 metaタグのrobotsを置ける場所 中略 <meta content='width=device-width, initial-scale=1' name='viewport'/> 中略 metaタグのrobotsを置ける場所 中略 </head> ブログのテンプレートのソースコードの冒頭にheadタグの領域があるので、その中の全ての他のタグの内側に入らないところに記載する。 metaタグはサイトを全体的に制御するものが多くてhead内の上の方に置かれていることが多い。どれも必ず一文で終わって何かを囲うことはないから他のmetaタグの周りに並べて記載すると間違いは少ないと思う。 検索避けのrobotsのmetaタグのマークアップに順番はないので、head内の正しい位置にありさえすれぱ上の方でも下の方でも構わない。 検索避けを行うページの振り分け ブログのテンプレートにmetaタグのrobotsを置くだけだと全種類のページ、すなわちブログ自体に検索避けがかかってしまう。 Bloggerでブログ自体に検索避けをかけるならば管理画面の設定のプライバシーの「検索エンジンに表示されるようにする」を外せば可能なので、特別な理由がなければ検索避けのためにHTML編集をわざわざ行う必要はない。 ページ毎に振り分けて一部のページだけ検索避けをかけるにはmetaタグのrobotsをBloggerの条件分岐の独自タグのifで囲うことになる。 <b:if cond="独自タグの条件文"> <meta content='noindex' name='robots'/> </b:if> ifタグのcond属性に検索避けをかけたいページの振り分けの条件文を入力するとそのようなプログラムでBloggerのサーバーが動いてブログのテンプレートのソースコードにmetaタグのrobotsが記載されるんだ。 ページを振り分けるための条件文の例 インデックスページ(全部)の条件文data:view.isMultipleItemsトップページの条件文data:view.isHomepageトップページの二頁目以降の条件文data:view.isMultipleItems and !data:view.isArchive and !data:view.isLabelSearch and !data:view.search.queryアーカイブページの二頁目以降と共通。ブログ内検索ページも含まれる。アーカイブページの条件文data:view.isArchiveアーカイブページの二頁目以降の条件文data:view.isMultipleItems and !data:view.isArchive and !data:view.isLabelSearch and !data:view.search.queryトップページの二頁目以降と共通。ブログ内検索ページも含まれる。ラベルページとブログ内検索ページとブログ内検索の結果ページの条件文data:view.isSearchトップページとアーカイブページとラベルページの二頁目以降も含まれる。ラベルページの条件文data:view.isLabelSearchラベルページの二頁目以降も含まれる。ブログ内検索ページの条件文!data:view.isLabelSearch and !data:view.search.query and data:view.isSearchトップページとアーカイブページの二頁目以降も含まれる。ブログ内検索の結果ページの条件文data:view.search.queryトップページ以外のインデックスページかブログ内検索ページの条件文でも合致する。個々のブログ内検索の結果ページの条件文data:view.search.query == "キーワード"キーワードはブログ内検索に入力されるもの。投稿ページ(全部)の条件文data:view.isSingleItem記事ページの条件文data:view.isPost追加ページの条件文 data:view.isPage個々の記事ページの条件文data:blog.postId == 記事ID記事IDは投稿の編集画面のURLの末尾の十九桁の数字。 個々の追加ページの条件文data:blog.pageId == 追加ID追加IDは投稿の編集画面のURLの末尾の十九桁の数字。エラーページの条件文data:view.isError ページ毎の振り分けの条件文を使うと検索避けのページを限定することができる。 ifタグのページの振り分けの条件は他にもあり、同じものが他の書き方でも可能だったり、似たような幾つかのページを含めて絞り込めるものもある。 アーカイブページの検索避けのマークアップ例 <b:if cond="data:view.isArchive"> <meta content='noindex' name='robots'/> </b:if> ifタグのcond属性にアーカイブページの振り分けの条件文の「data:view.isArchive」を入れている。 ブログのアーカイブページのテンプレートだけ検索避けのソースコードが記載されて検索エンジンから除外される。 ifタグの使い方によって条件文は先頭の「data」の部分を「!data」か「not data」にすると反転させることができる。 記事ページ以外のページの検索避けのマークアップ例 <b:if cond="!data:view.isPost"> <meta content='noindex' name='robots'/> </b:if> ifタグのcond属性に記事ページの振り分けの条件文の反転の「!data:view.isPost」を入れている。 ブログの記事ページ以外のページのテンプレートだけ検索避けのソースコードが記載されて検索エンジンから除外される。 複数のページの検索避けのマークアップ例 個別の検索避けのマークアップをそれぞれに記載するかifタグの使い方によって複数の条件文て絞り込んだり、演算子で組み合わせたりすると一文で纏めることもできる。 <b:if cond='data:view.isArchive'> <meta content='noindex' name='robots'/> </b:if> <b:if cond='data:view.isLabelSearch'> <meta content='noindex' name='robots'/> </b:if> ifタグの検索避けのマークアップを一つずつ並べている。 どんな場合でも別のものを次々と簡単に追加できる。 <b:if cond='data:view.isArchive'> <meta content='noindex' name='robots'/> <b:elseif cond='data:view.isLabelSearch'/> <meta content='noindex' name='robots'/> </b:if> ifタグに他の条件文のelseifタグを追加して絞り込んでいる。 ページ毎に検索避けの内容も変えたいときに向いている。 <b:if cond='data:view.isArchive or data:view.isLabelSearch'> <meta content='noindex' name='robots'/> </b:if> ifタグの複数の条件文を演算子の「or」で組み合わせている。 検索避けの内容が同じならば全体を短く纏められる。 三つのマークアップの何れもブログのアーカイブページとラベルページのテンプレートだけ検索避けのソースコードが記載されて検索エンジンから除外される。 コメント 新しい投稿 前の投稿
コメント