ブログのSEO(検索エンジン最適化)対策としてアーカイブとラベルページに検索避けをかけたいと考える。
何れも記事の寄せ集めだから検索エンジンでのサイト評価に役立つかどうかは本当に良く分からない。
とはいえ、開設して一年を過ぎたのにアクセスが伸び悩むばかりなので、何かしら大きな変化を起こすべきではないか。
Search Consoleのインデックス登録の対象範囲で有効(警告あり)が新たにカウントされてしまったのも要因だ。
Bloggerを使っていてブログのラベルページは最初からrobots.txtの検索避けがかかっていたけど、ところが記事などからリンクが貼られているためにURLが検索エンジンにインデックスされる場合があったんだ。知らなくて参ったし、完全に検索避けを行うためにはrobots.txtを解除すると同時にページにmetaタグのnoindexを記載しなくてはならない。
従来、アーカイブページは普通にインデックスされていたので、ブログのアクセスが伸び悩んでいる原因かどうか、検索エンジンでのサイト評価に不要ではないとも判然としないかぎり、確かめるためにもラベルページと併せて検索避けを完全にかけるべきだろう。
アーカイブページの検索避けのソースコード
<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>
BloggerのHTML編集で、何れも冒頭のheadタグ内に記載するとブログのアーカイブとラベルページが検索エンジンにインデックスされず、検索結果には全く表示されなくなる。
因みにアーカイブページの検索避けに関してはブログ内検索の結果ページも含まれるけれども管理画面のカスタムロボットヘッダータグで「noinedex」を設定しても行うことができる。
追記:Bloggerの2017年の公式テーマのContempoとSohoとEmporioとNotableのテンプレートでは検索ページとトップページの「その他の投稿」に有効(警告あり)やラベルページの「その他の投稿」にソフト404/エラー(存在しないページが他の存在するページへリダイレクトされる)が表示されてしまうとも分かった。
些細な日常ではContempoテーマを使用している(Imaginaryテーマへ変更)ので、SEO対策として修正するとラベルページに加えて三つとも検索避けをかけると共にラベルページの「その他の投稿」のリンクタグにかぎってクローラーをブロックするrel属性のnofollowを付けてブログ内の検索結果ページだけにrobots.txtをかける方法が考えられる。
- ラベルページの検索避けのソースコードの「LabelSearch」を「Search」に変更してHTML編集のhead内に記載する。
- Bloggerの設定の検索設定の「独自の robots.txt」から「Disallow: /search」を「Disallow: /search/?q」に編集して保存する。
- HTML編集でBlogのwidget内の
<a class='blog-pager-older-link flat-button ripple' expr:href='data:olderPageUrl' expr:title='data:messages.morePosts'>
の直後に<b:attr cond='data:view.isMultipleItems' name='rel' value='nofollow'/>
を追加する。
※Bloggerブログのrobots.txtのファイルはトップページのURLに「robots.txt」を付けてブラウザでアクセスするか、Search Consoleのクロールのrobots.txtテスタで確認できる。
検索ページの有効(警告あり)はrobots.txtを外せば止められる。トップページの「その他の投稿」もそうだけれども代わりにソフト404/エラーが出てしまうので、ラベルページの「その他の投稿」のソフト404/エラーと同じように修正しなくてはならないんだ。robots.txtで止めるとリンクによって有効(警告あり)が代わりに出てしまうので、別の方法のリンクのaタグへの「rel='nofollow'」でクローラーをブロックするしかなさそうだ。
トップページとラベルページの「その他の投稿」のソフト404エラーの原因は良く分からないんだ。Bloggerのサーバーはページありの200のレスポンスコードを返しているし、Seach ConsoleのFetch as Googleのページの取得から確認できる。実際に閲覧可能なURLなので、ページなしでリダイレクトのソフト404が出るのは矛盾している。根本的に直せないかぎり、対処法としてはリンクタグへnofollowを使うべだろう。
結局、robots.txtはブログ内の検索結果ページだけに使うようにした。リンクが貼られなければ基本的に有効(警告あり)は出ないと思う。もしも貼る場合にはリンクのaタグに「rel='nofollow'」を追加しておくべきだろう。検索エンジンのクローラーに影響しなくなる。
robots.txtの検索避けを解除する
Bloggerの検索設定の独自のrobots.txtの編集を「はい」で開く。
User-agent: Mediapartners-Google
Disallow:
User-agent: *
Disallow: /search
Allow: /search/label
Sitemap: サイトマップのURL
※BloggerブログのサイトマップのURLはブログのトップページのURLの末尾に「/sitemap.xml」を付けたものになる。
内容は元々のGoogleアドセンスのクロール(コンテンツに合わせてサイト広告を出すための解析用)を全て許可して他の検索エンジンなどはブログ内の検索結果とラベルページ(searchのディレクトリー)のクロールを拒否して記事ページのクロールの補足としてURLが載っている専用のサイトマップファイルを記載している。
次いで「変更を保存」を押して閉じると完了で、ブログに検索エンジンのクローラーが来たら読み込まれる。
GoogleならばSearch Consoleのrobots.txtテスターから検索エンジンにrobots.txtを読み込ませるのが確実だろう。
robots.txtテスターの既存の記載の右下の「送信」を押すと「更新されたコードをダウンロード」と「アップロードされたバージョンを確認」と「Googleに更新をリクエスト」の三つのボタンが順番に並んでいるけれども一つ目と二つ目はBloggerの独自のrobots.txtから作業済みなので、三つ目を押すだけで完了なんだ。
ブログでアーカイブとラベルページへのリンクにnofollowが付いてないので、クローラーは巡回するし、前者は変わらないけど、後者がrobots.txtを外して新たに含まれるように変わった。寄せ集められた記事へのページランクの受け渡しが可能なので、ラベルページから貼られたリンクの分だけ記事の検索エンジンでのサイト評価が上がると予想される。
どんな結果が出るかは直ぐには分からない。アーカイブとラベルページは検索エンジンから重視されなければページランクの効果は小さいはずだ。またはそれぞれのサイト評価が低ければ逆効果にもなり兼ねないけれどもSearch Consoleで検索結果の状況を見守りながら駄目ならば元に戻すしかない。
今まではアーカイブページが検索エンジンのインデックスに加えられていたので、ひょっとしたらラベルページも同じにするのが最善だとも考えられる。Search Consoleのインデックス登録の対象範囲での有効(警告あり)も反対の仕方/インデックス容認で免れられる。するとアーカイブとラベルページのどちらもmetaタグのnoindexで検索避けをかけず、前者は従来通りで、後者の初期設定のrobots.txtを外すだけに止めるべきだ。
先ずはアーカイブとラベルページの検索避けで検索エンジンからのアクセスアップを期待するにせよ、ブログのSEO対策として両方ともインデックスに加えるのが有利かも知れないから難しくて悩ましい。
コメント