Google サーチコンソールのカバレッジレポートを確認したところ、多くのフォーラムページが robots.txt によってブロックされていることが分かりました。そこで robots.txt を確認したところ、semrushbot と ahrefsbot がデフォルトでブロックされていることが分かりました:
これらは広く使われている SEO ツールですが、なぜこれらのボットをブロックするのでしょうか?
neounix
(Dark Matter)
2
なぜなら、それらのボットは「リソースを食い尽くすボットの豚」であり、サイトが消費するリソースの量に比べて、提供される価値が非常に低いからです。
もちろん、Discourse の robots.txt ファイルをカスタマイズして、必要に応じて許可することもできます。しかし、Discourse がリリースされるずっと前から当サイトではこれらのボットをブロックしており、現在もブロックし続けています。

注記(編集済み):
付け加えるのを忘れていましたが、これらの「リソースを食い尽くすボットの豚」の多くは robots.txt を尊重せず、HTTP User Agent レベルでブロックする必要があります。一般的に、これらの「無礼なリソースを食い尽くすボットの豚」は、リバースプロキシレベルで mod_rewrite を使用してブロックしています(リバースプロキシの背後で運用することの多くの利点の一つですが)。
情報をありがとうございます!
別の問題も見つかりましたので、もしよろしければご意見をお聞かせください。
Discourse はデフォルトでユーザーページをブロックしていますが、Google サーチコンソールのカバレッジレポートにはまだいくつかのユーザーページがインデックスされています。Google にとっては問題です。なぜなら、これらのページはすべてインデックスされてはいけないはずだからです。
ありがとうございます!
osioke
(Osioke Itseuwa)
4
これは最近、以下のコミットで修正されました。
Discourse を更新して、再確認してください。
@osioke ご返信ありがとうございます!私たちのインストール済みバージョンには、すでにその機能が含まれていると思うのですが?修正が1月にコミットされたことに気づいたためです。
この機能を利用するために、最新バージョンへのアップグレードが必要かどうか確認していただけますでしょうか?
osioke
(Osioke Itseuwa)
7
個人的には更新しても問題ないと思いますが、その修正はすでにインストール済みのバージョンに含まれているはずです。何か他の理由で更新したくないのでなければ、更新して再検証することをお勧めします。
性能が悪いからです。明確な利益をもたらすことなくサーバーへの負荷を大幅に増やしており、当社の顧客はプランごとにページビューの制限が設けられています。
いいですね。現在アップデート中です。アップデート後に問題が解決することを願っています。後ほどご連絡し、状況をお知らせします。
ありがとうございます!
念のため確認ですが、semrushbot と seo spider のブロックを解除する方法は全くないのでしょうか?SEO オーディットのためにこれらが必要です。/admin/customize/robots から両方を削除しようとした(Allow: も試しました)ところ、Screaming Frog で 429 エラーが発生しました。この 429 エラーは別の問題でしょうか?ご教示いただけますと幸いです。
Johani
(Joe)
11
429 エラーは、そのクローラーがレート制限されていることを意味します。Discourse には、悪用を防ぐためにデフォルトでスロットリングが有効になっています。詳細については、こちらをご覧ください。
neounix
(Dark Matter)
12
これを試してみましたか(ただし、お使いのコンテナ名に置き換えてください)?
注: これは管理 UI でも設定可能です。
# docker exec -it socket-only bash
root@socket-only:/# rails c
[1] pry(main)> SiteSetting.blocked_crawler_user_agents
=> "mauibot|semrushbot|ahrefsbot|blexbot|seo spider"
[2] pry(main)> SiteSetting.blocked_crawler_user_agents = ""
=> ""
[3] pry(main)> SiteSetting.blocked_crawler_user_agents
=> ""
[4] pry(main)>
参考:
参考:
def self.allow_crawler?(user_agent)
return true if SiteSetting.allowed_crawler_user_agents.blank? &&
SiteSetting.blocked_crawler_user_agents.blank?
...
...
コードからわかる通り、これら 2 つのサイト設定を「blank」に設定すれば、ブロックは行われません。
- SiteSetting.allowed_crawler_user_agents
- SiteSetting.blocked_crawler_user_agents
ただし、変更しないことを強くお勧めします。Discourse コアでデフォルトでブロックされているこれらのボットは robots.txt を尊重しないためです。しかし、これはあなたのサイトですので、ご自由に設定してください。コアでブロックされているには明確な理由があります。
その上で、Discourse では UI の SiteSettings を使用してこれらのボットを「ブロック解除」するオプションを提供しています。