web-dev-qa-db-ja.com

Robots.txtがサイトのクロールを妨げていない

Robots.txtに問題があります。 robots.txtファイルをWebサイトのメインディレクトリ(および/var/www/html-すべてのサーバーで動作するように)に配置しましたが、ロボットは引き続きWebサイトをクロールし続けます。

これは私のrobots.txtです:

User-agent: YandexBot
Disallow: /
User-agent: SemrushBot
Disallow: /
User-agent: AhrefsBot
Disallow: /
User-agent: SemrushBot/1.2~bl
Disallow: /

何か提案はありますか?

1
chen

Robots.txtは無効であることに注意してください(ただし、必ずしもこれが問題の原因であるとは限りません。ボットはこのようなエラーを無視する可能性があります)。

ボットがrobots.txtの仕様に厳密に従ってrobots.txtファイルを解析する場合、このボットは1つのレコードのみを表示し、このレコードは「YandexBot」という名前のボットにのみ適用されます。他のすべてのボットはすべてをクロールできます。

その理由は、レコードを空白行で区切る必要があるためです。したがって、次のようになります。

User-agent: YandexBot
Disallow: /

User-agent: SemrushBot
Disallow: /

User-agent: AhrefsBot
Disallow: /

User-agent: SemrushBot/1.2~bl
Disallow: /

これらのすべてのボットに常に同じDisallowがある場合は、必要に応じて 複数User-agent で1つのレコードを使用できます。

User-agent: YandexBot
User-agent: SemrushBot
User-agent: AhrefsBot
User-agent: SemrushBot/1.2~bl
Disallow: /

(ブロックしようとするボットのいくつかに異なる名前を使用する必要があるかもしれません @ StephenOstermillerが彼の答えで示唆しているように 。)

2
unor

Robots.txtファイルを作成した後、それを取得するクローラーがそのファイルを取得するまでに1日以上かかります。

Yandexには多くのボットがあり、robots.txtを使用してそれらすべてを禁止する方法に関するドキュメントがあります: https://yandex.com/support/webmaster/controlling-robot/robots-txt.xml Yandexの場合、robots.txtをこれに変更することを検討してください。

User-agent: Yandex
Disallow: /

SEM Rushには2つのボットがあります。それに関する彼らのドキュメントはここにあります: https://www.semrush.com/bot/ あなたはそれらのうちの1つを正しく許可しませんでしたが、ボットのバージョン番号を使用する2番目のルールは有効ではありません。これらのルールを使用して、すべてのSEMラッシュクロールを禁止することを検討する必要があります。

User-agent: SemrushBot
Disallow: / 

User-agent: SemrushBot-SA
Disallow: / 

AhrefsBotは、そのドキュメントに完全に準拠しているため、既に許可されていません: https://ahrefs.com/robot

User-agent: AhrefsBot
Disallow: / 
1