何よりもまず、どのクローラーがこれらのパスにアクセスしようとしていますか?それらは人気がありますか(たとえば、Google Bot、Bing Bot、Yahoo!Slurp)、または他のいくつかのボットですか?最善の策は、どのクローラーが「違反者」であるかを特定し、それらがそれらのリンクをたどっている理由を理解することです。たくさんの仮定をせずにこれを防ぐ方法を教えるのは非常に難しいです。
いくつの仮定を立てることができるかを確認するために読んでください。
そこに2つのタイプのクローラーがあると仮定します。
- スマートなもの:JavaScriptではURLを検索しません。これは、非常に非効率的であり、完全にナンセンスなもの(など
http://link.to.other/javascript/stuff.js
)をクロールしようとしても無意味な試みになる可能性があるためです。ただし、これらのクローラーはJavaScriptを実行している可能性があります。
- ばかげたもの:彼らはHTMLコンテンツを取得し、正規表現を適用してすべてのURLを抽出する可能性があります。ほとんどの場合、このようなクローラーはJavaScriptを実行していない可能性が非常に高くなります。
クローラーにJavaScript実行機能を持たせることは非常に複雑なので、そのような機能を備えているクローラーはごくわずかだと思います。そうであれば、プロ級のクローラーです。彼らがプロ級のクローラーである場合は、robots.txtや、アンカー要素のrel
属性の「nofollow」などをサポートする可能性が高いと思われるかもしれません。
<a href="http://www.example.com/" rel="nofollow">Link text</a>
私は「スマート」クローラーグループのそれらをバケツに入れます。人気のあるボットのほとんどはかなりスマートで、礼儀正しいので、それほど心配する必要はありません。
JavaScriptはドキュメントを変更しますか?その結果、ある種のハイパーリンクが作成されますか?はいの場合、スマートクローラーはリンクを取得できますが、ダムクローラーはJavaScriptを実行する可能性がはるかに低いため、取得できません。
では、あなたはそれで何ができるでしょうか?スマートクローラーの場合は、robots.txt、 "nofollow"などの標準的なポライトネスポリシーをすべて適用する必要があります。ほとんどの場合、これらのリンクをクロールするのを防ぐのに十分なはずです。彼らはおそらくあなたのサイトに役立つので、あなたはとにかく彼らに親切になりたいです(つまり、彼らはあなたのコンテンツに基づいてそれにトラフィックを誘導するでしょう)。
ダムクローラーの場合、いくつかの異なる解決策をテストする必要があるかもしれません。URLを難読化するか、いくつかの戦略の1つを使用してそれらを検出します。それらを検出すると、あらゆる種類のことを実行できます。良いものもあれば、それほど良くないものもあります:)。
繰り返しになりますが、これ以上の情報がなければ、多くの仮定を立てる必要があることがわかります。したがって、より多くの情報を提供するか、少なくとも自分で情報を分析して、上記の質問/アイデアを念頭に置いてください。