もしサーバーに「robots.txt」ファイルが置ける環境なら以下のように記述したファイルを置いておくとアクセスを弾けます。
User-Agent: *
Allow: /
Disallow: /*?
上記のファイルの意味はURLに「?」が含まれるアドレスへのアクセスを禁止するという意味です。
この記述方法がまずいのであれば、違う方法を検討してください。
トピック投稿者
nobe
(@nobe)
ご回答ありがとうございます。併用してみます。
質問の仕方が不明瞭でした。
ロボットの排除方法ではなく、そもそも、検索結果が登録された原因を取り除きたいと考えています。検索エンジンに登録された原因は
1.検索結果を表示するリストページがなんらかの原因で作られている
2.サイトマップXMLで登録がおこなわれている。
3.登録申請ページで登録が行われている。
の3つ以外ないと思っています。2については確認できました。Yahooは問題ないことから、3が怪しいと思っていますが、自分で行った記憶は有りません。
結局どれも該当しないように思えるので、どなたか似た経験のあるかたがおられないかとお尋ねしてみました。
よろしくお願いします。
>検索結果が登録された原因を取り除きたいと考えています。
そうですか・・
上記の事についてはあまり解りません。
僕の場合は、サイトのアドレスに動的アドレスを一切使用せず、尚且つサイトマップもテキスト方式で手動で記載したにも関わらす動的ページがインデックスされました。
今回のケースとは異なりますが、僕の場合は同一ページで動的アドレスと静的アドレス両方インデックスされるという不思議な現象に陥りました。
重複ページで違うアドレスでインデックスされるという最悪のケースです。
おそらくですがロボットが「MySQL」データベースの中まで入ってきて情報をインデックスしているのではないでしょうか?
重複ページで違うアドレスでインデックスされると最悪スパム判定を食らうと思うので、とりあえず動的ページへのアクセスは排除したほうがいいと思います。
お力になれずに申しあけ御座いません。
WordPressの問題ではありませんね。Googleならウェブマスターツール、Yahoo!ならサイトエクスプローラーなどで情報は収集できます。
どうして登録されたのか?はクローラ―がそのページにアクセスできるからです。検索結果ページはおろかログインページですらインデックスされえます。インデックス登録を拒否するならharukunさんのおっしゃる通りrobots.txtによりクローラ―に指示を与えるのがベストです。メタタグによる方法はあまり効果がないように思われます。
WordPressに絡ませるならプラグインでKB Robots.txtあたりがありますね。
http://wordpress.org/extend/plugins/kb-robotstxt/
[補足]
動的ページ、静的ページの問題はブログサイト程度のものならページ分割以外何ら問題はないはずです。ページ分割はタイトルと概要の同一ページがいくつもできてしまうのでページの重複につながります(もちろん対処方法もあります)。AdWordsなどを利用している場合でもGoogleがデータ収集のために広告申請したURIに引数を追加してしまうのでページの重複につながることがあります(設定で拒否できます)。
おそらくですがロボットが「MySQL」データベースの中まで入ってきて情報をインデックスしているのではないでしょうか?
それはありえません。
DB内にプログラムで勝手に直接アクセス可能になるなら、ネット世界は崩壊してしまいます。
トピック投稿者
nobe
(@nobe)
みなさん、ありがとうございました。
対処法はrobot.txtで決まりですね。
ところで
どうして登録されたのか?はクローラ―がそのページにアクセスできるからです。
これがまさに疑問なのです。ロボットがアクセスできるためには、検索結果へのリンク http://mydomain.com/?s=keyword などがそもそも、どこかのサイト(自サイトか外部)にあったか、検索エンジンに直接登録申請があったことなります。
グーグル検索窓にクォーテーションも含め “?s=われ” と入力して検索してみてください。何件かブログの検索結果が検索されます。wordpress以外のブログもあるので、ブログシステム自体ではなく、どうやら検索エンジン関係の問題のようです。しかし、Yahoo側に載らないのはなぜだろう?
これがまさに疑問なのです。ロボットがアクセスできるためには、検索結果へのリンク http://mydomain.com/?s=keyword などがそもそも、どこかのサイト(自サイトか外部)にあったか、検索エンジンに直接登録申請があったことなります。
クローラ―は当然外部のリンクもたどりますので、ビジターがブックマークをしたことなどが考えられますね。
Yahoo側に載らないのはなぜだろう?
アルゴリズムの違い、クローラ―の徘徊するタイミングなどが考えられます。
Googleの方が動的なURLへの対応に自信を持っているのも関係しているかもしれません。
グーグル検索窓にクォーテーションも含め”?s=われ”と入力して検索してみてください。
WordPressのサイトに多いということで興味深い現象ですね。
これだとブックマークは関係なさそうです。
トピック投稿者
nobe
(@nobe)
akhiro様ありがとございます。
robot.txtは良く効いています。しかし、ロボットは、まだ、登録をしようとしていますので、原因は不明です。時間ができたら、アクセスログを調べてみます。
これがまさに疑問なのです。ロボットがアクセスできるためには、検索結果へのリンク http://mydomain.com/?s=keyword などがそもそも
WordPress ならば、?s=keyword
で検索できるのは標準機能なのですが、そういうリンクをどこかのサイトが掲載している、ということでしょうね。おそらく、PageRank の高いサイトにリンクすることで、自サイトの PageRank を上げようとする試みでしょう。
?s=keyword
に対するリファラーをチェックしてみると、設置元サイトが分かるかもしれません。
あと、ドメイン名の例示には example.com, example.jp 等を使ってください。mydomain.com は実在のドメイン名なので、あなたがこれを所有しているのでない限り、使うべきではありません。
トピック投稿者
nobe
(@nobe)
みなさんありがとうございました。
ドメインの件も了解いたしました。しばらく様子を見た結果、robot.txtでなんとか対応できています。取りあえず、クローズいたします。
グーグル以外の設置元サイトは見つからなかったのです。こうなると目的も不明です。また、グーグルのクローラが見つけたとは思えないのです。日本語のグーグルヘルプにも投稿してみましたが反応無しです。
トピック投稿者
nobe
(@nobe)
原因判明!
原因が分かりましたので、報告しておきます。
グーグルはページの中にフォームを見つけると、その結果を取り出すべく、自動的に、テキストボックスを入力したり、チェックボックスやラジオボタンをつけて、送信を行います。
Wordpressの検索窓に自動で単語をいれていたのはグーグルということになります。
GETでしかできないので、methodを変える方法も考えられます。
詳細:Crawling through HTML forms