robots.txt でアクセス制御できない場合

Google Blogger では自動的に robots.txt と言うものが作られます。これは Google などの検索サイトに情報を伝えるものです。Google Blogger では問題があります。まず、robots.txt の書き方や自分で設定する方法を説明します。

robots.txt を使うと、ここは見てほしくないとかサイトマップはどこにあるかなどを伝えることができます。
このブログの場合は https://googlebloggertrouble.blogspot.com/robots.txt です。

Google はサイトを保存して、保存した結果を検索結果として表示しています。そのため、頻繁にサイトを見に来ます。

Google Blogger が自動的に作る robots.txt の内容は
User-agent: Mediapartners-Google
Disallow:

User-agent: *
Disallow: /search
Allow: /

Sitemap: https://googlebloggertrouble.blogspot.com/sitemap.xml
です。

1つ目の意味は Google Adsense のクローラー(サイトを見に来るロボット)はこのブログではアクセス拒否しない。内容を判断して Google Adsense が適切な広告を出すためです。

2つ目の意味は全てのクローラーは /search から始まる URL はアクセス拒否して、それ以外は全てアクセス許可する。/search で始まる URL の情報を Google の検索結果などに残したくないためです。

最後はサイトマップがこの場所にあるという意味です。サイトマップはこのブログにどんな記事があるかまとめたもので、場所やファイル名は決まっていないので、伝える必要があります。

/search を拒否しているのは、トップページから2ページ目に移ったページなどが /search?updated-max= で始まるので、アクセスできないようにしています。重要ではないページは Google の検索結果に残さないためです。

さらにGoogle Blogger の「ブログ検索」ガジェットの検索結果が /search?q= から始まるので、その検索結果ページもアクセス拒否しています。これは Google Blogger の「ブログ検索」ガジェットを使ってる人以外は関係ありません。

問題なのは、Google Blogger のラベルが /search/label/ から始まることで、Google Blogger が自動で作った robots.txt ではラベルのリンクをクリックしたときに出るラベルの一覧ページも拒否されてしまいます。

完全に拒否されればいいのですが、拒否してるのに Google はラベルへのリンクがよく出てくるので、重要だと思いインデックス(Google に保存)します。その結果、Google の検索結果にはラベルの一覧ページが出てくるのですが、robots.txt で拒否しているので、検索結果の説明は「このページの情報はありません。」となります。

完全に拒否する場合はラベルのリンクに rel="nofollow" を追加したり、ページそのものをアクセス拒否するために noindex が必要になります。
例1:
<meta name=”robots” content=”noindex” />
例2:
<a href="https://googlebloggertrouble.blogspot.com/search/label/はじめ方" rel="nofollow">はじめ方</a>

この方法は変更箇所が多いので、どうせ結果に出るなら説明を表示するように変更した方がいいです。

Google の検索結果の説明を表示するため、robots.txt を変更してラベルの場合はアクセス許可します。「設定」の「検索設定」の「クローラとインデックス」にある「独自の robots.txt」の「編集」を有効にして変更します。自分のブログの robots.txt の以下の部分を変更します。
User-agent: Mediapartners-Google
Disallow:

User-agent: *
Disallow: /search
Allow: /search/label/

Sitemap: https://googlebloggertrouble.blogspot.com/sitemap.xml
「ブログ検索」ガジェットを使わず、2ページ目なども検索結果に出ていいなら /search をアクセス拒否する必要がないので、
Sitemap: https://googlebloggertrouble.blogspot.com/sitemap.xml
だけにして、そもそもアクセスの許可や拒否をせず、ブログ全てをアクセス許可にした方がすっきりします。

「ブログ検索」ガジェットを使っていても、robots.txt はサイトマップの場所だけにして、検索結果のページだけアクセス拒否と指定した方がいいかもしれません。

「設定」の「検索設定」の「クローラとインデックス」にある「独自の robots ヘッダー タグ」の「編集」を有効にして変更します。「ページをアーカイブ、検索」の「noindex」にチェックを付けるだけです。ページをアーカイブとは年月ごとの一覧ページです。「アーカイブ」ガジェットを使うと表示することができます。

検索結果のページはない方がいいです。検索結果ページは1つのサイトで大量に作られて検索した人以外は必要がないためです。しかし、2ページ目など途中のページや年月ごとのアーカイブページは検索結果にあった方がいいのかは分かりません。これについてはいろいろな意見があります。

Google の検索結果に1つのサイトから登録される数は決まっているので、重要なページ以外は検索結果に残さない方がいいという意見があります。検索結果が大量にあるとお互いにリンクし合って評価が上がるという意見もあります。どちらもそれで効果があったという報告がありサイトによってどっちがいいのか判断が分かれます。

最後に robots.txt はこういう風にしてほしいとお願いする機能です。無視してアクセスしてくることもあるので、絶対に見てほしくないものはパスワードなどでアクセス制限しない限り完全にアクセス拒否することはできません。
この記事のタイトルとURLをコピーする seo
seo