世界を動かす技術を、日本語で。

AIウェブクローラーが終わりなきコンテンツの渇望でウェブサイトを破壊している

概要

  • AIクローラー によるウェブアクセス急増
  • 従来型クローラー と比べて被害拡大
  • サイト性能低下や運営コスト増 の深刻化
  • 収益化困難 かつ対策が困難な現状
  • ウェブの分断化 と情報へのアクセス障壁の懸念

AIクローラーによるウェブへの影響

  • Cloudflare によると、世界のウェブトラフィックの 30%がボット によるもの
  • AIボット が急増し、全AIボットトラフィックの 80%がAIデータフェッチャーボット (Fastly調査)
  • 従来型クローラー (例:World Wide Web Wanderer, 1993年登場)と比較し、 AIクローラーは攻撃的かつ負荷が高い
  • Fastly は、AIクローラーが「 パフォーマンス劣化、サービス停止、運用コスト増」を引き起こすと警告
    • 数分で 通常の10倍〜20倍のトラフィック急増 の事例
  • InMotionhosting によれば、AIクローラーは クロールディレイや帯域節約ガイドラインを無視、ページ全文抽出や動的リンク・スクリプトも追跡

中小サイト・共有サーバーへの影響

  • 共有サーバー利用中の小規模サイト は、他サイトへのAIクローラー攻撃の影響も受ける
    • 自サイトが直接攻撃されなくても、同一サーバー上の他サイトの影響でパフォーマンス低下
  • CloudflareのDDoS保護 では防げるが、 AIボット攻撃 には効果薄
  • 大規模サイト もリソース増強(CPU、メモリ、ネットワーク)が必要
    • 対応しない場合、 3秒以上の遅延で半数以上の訪問者が離脱
    • Meta(52%)、Google(23%)、OpenAI(20%) などのAIサーチボットによる 30Tbps級のトラフィック急増

収益化の困難とAIクローラーの問題点

  • 従来のGooglebot は検索経由で 訪問者や広告収益 をもたらす可能性
  • AIサーチボット元サイトにユーザーを誘導せず、収益化不可
  • AIクローラーサイトを搾取 し、運営者は収益機会を失う

対策の難しさと現状

  • ログイン、ペイウォール、CAPTCHA、アンチボット技術 による防御策
    • AIはこれらの壁も突破可能
  • robots.txt による旧来のブロック手法は 多くのAIクローラーが無視
    • Perplexity はrobots.txt無視の疑惑(Cloudflare指摘、Perplexityは否定)
  • llms.txt (LLM用のアクセスガイドライン)という新提案も存在
    • しかし、 賛否両論で普及未定

インフラ提供者やOSSによる防御策

  • Cloudflare などが AIクローラーブロック機能 を提供
  • Anubis AI crawler blocker のような OSSツール も登場
    • AIクローラーのアクセス速度を制限

ウェブの未来と分断化の懸念

  • AI企業とウェブ運営者の対抗 が進み、最終的には 中立点に到達 予想
  • しかし、 ウェブの分断化アクセス制限・有料化 が進行
  • 重要情報の壁内囲い込みや削除 のリスク
  • オープンウェブの終焉バルカン化したインターネット への懸念

Hackerたちの意見

クラウドサービス会社のFastlyも同意してるね。彼らによると、AIボットトラフィックの80%はAIデータフェッチャーボットから来てるんだって。マジで。最近、CAPTCHAを設置するサイトが増えてるけど、問題は?CAPTCHAってめっちゃウザいし、1日に50回も目の検査みたいなもんだし、> GoogleのreCAPTCHAは役に立たないだけじゃなくて、基本的にスパイウェアみたいなもんだよね。[0] > reCAPTCHA v3のチェックボックステストはボットを止められないし、ユーザーデータを追跡してるし。[0] https://www.techspot.com/news/106717-google-recaptcha-not-on...

最近、CAPTCHAだらけのページからはさっさと離れるようにしてるんだ。皮肉なことに、そのおかげでAIを使うことが増えた。

ウェブマスターは、ほんとに板挟みになってる感じだね。少なくとも、俺がやってることだと、設定が悪いか悪意のあるボットが人間の訪問者の5000倍もリソースを消費するから、ボット対策をしないと、ほぼ諦めて野菜農家になろうかと思ってる。ボット対策って、ほとんどのボットを防ぐための障害と、ユーザーをイライラさせないようにするバランスを取ることなんだよね。今のところ、Anubisはあまり悪くない選択肢の一つだと思う。ユーザーにはウザがられることもあるけど(確かにウザい)、消火栓を35回クリックするよりはマシだし、ちゃんと設定すればほとんどのボットを防げるみたいだし、少なくとも行動をもっと特定しやすくする方向に持っていける。たぶん永遠には続かないだろうけど、他に何があるかって言ったら、完全にアナキャップ特別支援児みたいになって、ページリクエストごとにクリプトマイクロトランザクションをするくらいしか思いつかない。それだとボットだけじゃなくて、人間の訪問者も追い出しちゃうだろうけど。

Fastlyみたいな会社は、物事をJavaScriptの実行でしか測定せず、JSを正しく実行できないものは全部ボットだと仮定してるから、その80%にはたくさんの人間も含まれてるんだよね。

Fastlyのレポートには、Common CrawlのCCBotに関する素晴らしい引用がいくつかあるよね。

「私たちの観察は、Common Crawlのようなオープンデータイニシアチブの重要な役割を強調しています。商業的なクローラーとは異なり、Common Crawlはデータを自由に公開しており、AI研究と開発のためのより包括的なエコシステムを作る手助けをしています。AIボットによってクロールされたユニークなウェブサイトの63%をカバーしていて、ほとんどの商業的な代替手段よりもかなり高い数字です。これにより、大規模なウェブデータへのアクセスを民主化する重要な役割を果たしています。このオープンアクセスモデルは、研究者や開発者のより広いコミュニティがAIモデルをトレーニングし、改善することを可能にし、分野における多様で広範なイノベーションを促進します。」 「注目すべきは、トップ4のクローラー(Meta、Google、OpenAI、Claude)が商業サイトを好む傾向があることです。Common CrawlのCCBotは、オープンデータセットが広く使われていて、商業、メディア&エンターテイメント、高テクノロジーの分野にバランスよく偏りがあります。その商業的な同等物であるTimpibotやDiffbotは、メディア&エンターテイメントを高く評価しているようで、Common Crawlで利用可能なものを補完するためかもしれません。そして、Fastlyのレポートには載っていないけど、EL Regの記事にはこんな数字もあります。 「Common Crawlプロジェクトは、ウェブサイトを吸い上げて、重複作業やトラフィックの増加を防ぐために設計された無料の公共データセットに含めるもので、驚くほど低い0.21%でした。」

皮肉なことに… LLMはCAPTCHAを解くのが得意なんだよね。だから、そのCAPTCHAに悩まされるのは実際のサイト訪問者だけ。サイトがやるべきことは、同じIPからの繰り返しリクエストを一時的にブロックすることだよ。確かに、いくつかのエージェントは何万ものIPを使うけど、もし本当に人々が言うほど攻撃的なら、普通のユーザーよりも同じIPに遭遇することが多くなるはず。そうすれば、過剰に攻撃的な連中を排除できるよ。俺はウェブスクレイピングをやってて、1r/sに制限してた。そうすれば、ほとんど姿を現さないから、ブロックや検出に遭遇することはないんだ。でも、並行して1000件のリクエストを送るようなやつがいると、クエリビルダーを理解してないから、ページの更新を確認するチェックも作れない。俺が見る主な問題は、基本的なスクレイパーしか作らない人がいることだね。リンクを見て、フォローして、プロセスを生成して、スクレイプして、さらに100のリンクを見つける… 更新?ウェブサイトを再スクレイプして、繰り返す、繰り返す… 各ウェブサイトの更新を確認するスクレイプテンプレートを作るのには時間がかかるから、そういうのを気にしない人もいるんだよね。

なんでウェブサイトをキャッシュして、少なくとも24時間は戻らないようにしないのか、よくわからない。特にほとんどのサイトに関してはね。まるでLLMやAIでソフトウェアエンジニアリングの基礎を再学習してるみたいで、ほんと辛い。

もっと多くの検索エンジンがあった頃の風景は、きっと今と同じだったんだろうな…あの頃のエンジニアチームは、もっと有能で、処理も無駄がなかったと思う。AWSに相当するものがなかったから、クローリングされたウェブサイトのIP範囲がバンされるのは簡単だったし、もっと良い市民でいる必要があったんだ。

ショートカットマシンを作る最前線の人たちがショートカットを取ってるんだ。細部への注意が死に向かってゆっくり進んでる感じだね。

クローラーが立ち上がったら、何を持って行こうが関係ないよね?「それは俺の担当じゃない!」ってクローラー・フォン・ブラウンが言ってる。

これ!今日、Claude Sonnetに「推論」についてのWikipediaの記事を読んでもらって、いくつかの質問をしたんだけど、Sonnetは「ごめん、アクセスできない」と返事してきた。なんで?って聞いたら、混乱してた。AnthropicがなぜWikipediaのミラーをXXの異なる言語で維持して、毎週cronジョブを走らせないのか聞いても、明確な答えはなかった。情けない。Anthropicの盲点だよね。少なくとも道徳的に無関心で、ひどい場合は非道徳的だと思う。大手AI企業はWikimedia Foundationから大きな利益を得ているのに、何か返してるの?それとも倫理のない大きなインターネットの吸血鬼なの?DarioやSamたちよ、自分たちの血の提供者の福祉に貢献してくれ。

誰がそんなこと言ったの?

個人的には、誰かを殺すときには、LLM生成の偽の真実や人工的に腐敗したテキストを使ってでも、極端な手段を正当化すると思う。/s

それは、製品がちゃんと機能するかどうかなんて気にしてないからだよ。AIスクレイピングをブロックすることで、サイトはAI企業にブロックされる前にスクレイピングを早めさせている。そして、早くなるほど雑になる。

彼らはストレージよりも帯域幅にお金を払う方が好きなんじゃないかな。

私はProtonDBを作成して維持している、人気のあるLinuxゲームのリソースだよ。広告はやってなくて、Patreonの寄付で billsを払ってる。これは静的に生成されたReactサイトで、Netlifyにデプロイしてる。約10日前から、ユーザーエージェントがPrerenderを使っていることを示して、1日あたり30GBのデータを消費し始めた。このペースだと、プランで割り当てられた1TBを超えそうだから、追加の帯域幅ブースターに月に約500ドルかかるかも。robots.txtのオプションを試してみるつもりだけど、長期的には効果があるか疑わしい。他の選択肢も、NetlifyのようなSaaSを使い続けるなら利用できない。最初の考えは、帯域幅が無制限のCloudflare Pages/Workersに移行するか、ユーザーエージェントを解析するエッジ関数を作って、効果があることを願うことだ。それにはエッジ関数の呼び出しで約60ドルかかる。ユーザーエージェントでモグラたたきをするより、もっとやるべきことがたくさんあるし、失敗したらこのスクレイピングの身代金を払うなんて。AIの収穫者たちに「くたばれ」と言ってもいい?これは人々がMicrosoft依存から脱却して、自由なオペレーティングシステムで生活する手助けをする人気のある無料サービスだよ。それにたかりたいの?それなら、私がすでにODbLライセンスで提供しているデータダンプをダウンロードして、なんでこんなことをしてるのか考えさせないでほしい。

あなたの間違いは、HNでCloudflareを使うつもりだと公然と示唆していることだよ。これがインターネットの中央集権化を進めて、社会があなたをコモンズの悲劇の犠牲者にさせている。

1TBを超えたら500ドル?ここでの問題はクローラーじゃなくて、あなたの価格ぼったくりのホスティングプランだよ。お気に入りの月5ドルのVPSプラットフォームを選んでみて。Hetznerの20TB制限をお勧めするけど(KYCプロセスが通れば)、そうでなければDigital Ocean(1TBだけど、超過は数ドルで済む)もいいかも。高価格で知られるAWSでさえ、それより安いよ(でもそれでも高いから使わない方がいい)。

Netlifyが何をやってるのかはわからないけど、あなたのウェブサイトで一番重いアセットはJavaScriptのソースだよ。GitHub Pagesでホスティングすることを考えたことある?結構寛大な無料プランがあるからさ。

Proton DBは本当に素晴らしいサイトで、いつも使ってる。維持してくれてありがとう!

ASNをブロックする能力はある?DIYビルディングフォーラムのシステム管理を手伝ってるんだけど、ASN 45102のアリババのIPを全部ブロックしたら、サーバーの負荷が80%減ったよ。シンガポールからのボットトラフィックが一番多かった。

ユーザーエージェントにデフォルトで拒否を使ってほしい。これで多くのアクセシビリティツールをブロックできて、プライバシーが難しくなる。

Cloudflareページを使ってみて。

ProtonDBを作ってくれてありがとう!めっちゃ使ってるよ <3

本当に小さなシスアドのニッチ以外の人たちは、この問題の規模を全然理解してないよね。俺は小規模だけど成長中のブティックホスティングインフラをエージェンシーのクライアント向けに運営してるんだけど、最近AIボットのクローラー問題が深刻になってきて、もう無視できなくなった。片方には、ちゃんとしたエンジニアリングの才能とリソースを持ってるのに、全然正しくやってない会社のクローラーがいて、もう片方には「作って放置」みたいに言われたリソースを食うWordPressのインストールがある。彼らのrobots.txtファイルを管理することもできないし、一方でページの読み込みには1秒かかることもあって(そのほとんどがMySQLで消費されてる)、攻撃的なAIボットが6種類くらいあって、時々は特定のサイトの製品バリエーションやカテゴリーページに引っかかって、1リクエスト/秒のペースで叩いてくる。画像とかはうまくキャッシュされてるレイヤーがあるから、帯域幅の問題ではない。ボットは画像や他のページリソースをあまりリクエストしてないし、ただ大量のページリクエストをしてるだけで、その一つ一つがどこかのDBを占有してる。累積的には、毎日Slashdotされてるようなもんだよ。やっとnginxでほとんどのボットとクローラーのトラフィックをフィルタリングし始めたところで、WPコンテナに渡す前に。ログからトラフィックをサンプリングするのにかなりの時間を費やしたけど、大体5%くらいのウェブトラフィックが実際の人間から来てるって感じかな。マジでやばい。問題の最初の作業は終わったけど、これはただの時間稼ぎに過ぎない。今はIPインテリジェンスシステムを作らなきゃいけない。明らかに、これらの会社は「403」で納得するつもりはないから。

これについてブログ記事を書くかもしれないけど、俺は本当に「大聖堂とバザール」を再考する必要があると思ってる。大聖堂が勝った。これで終わり。みんな、だいたい石切り職人みたいなもので、最高の石(つまりコンテンツやライブラリ、ソースコード、ツール)を売るために競争してる。もし世界がファーマーズマーケットなら、ファーマーズマーケットがウォルマートに勝てないことに驚いてる。人々は大聖堂を求めてるんだ、バザールじゃない。バザールのベンダーになるのは、底辺を目指すレースだよ。これは大聖堂が「コモンズの悲劇」を利用してるわけじゃなくて、分散化そのものに内在してることなんだ。バザールは大聖堂を支えてる。農家がウォルマートを支えるのと同じように、独立したウェブサイトがClaudeを支えてる。これは食物連鎖であって、異常じゃない。

アプリケーションの前でfail2banルールを使って、セッションごとに429 Too Many Requestsのクォータを設けることで対処できないかな?それとも、クローラーが匿名化してたり、異なるIPアドレスから来てるの?

これは多分バカな質問だけど、サイトに来た新しいユーザーの前に簡単なCAPTCHAを置くのはいつがいいの?それからクッキーを渡して、そのユーザーからのリクエストを秒単位で追跡し始める?なんか、毎セッションに必要なソフトログインみたいな感じかな?追記:クッキー承認ダイアログに組み込むこともできるかも(冗談!)

その間、各ページの読み込みにフルで1秒かかることもある(ほとんどはMySQLに費やされてる)。 ユーザーがログインしてない限り、ボットもログインしてないだろうから、リバースプロキシでこれらのレスポンスをキャッシュできない?

もし役に立つなら、GitHubにはASNベースのDROPリストコレクションがいくつかあるよ。

俺は仮想アートギャラリーのシスアドをやってたんだけど、数千の「展示品」があって、音声や動画、画像も含まれてた。今まで問題はなかったのに、突然3日間で3回もダウンさせられた。調べてみたら、全部Claudeだった。タイムアウトも無視して、スロットルなしであらゆるルートを叩いてきた。ひどいもんだった。ウェブスクレイパーに悪いイメージを与えるよね。

ウェブスクレイパーは自分たちで悪評を作り上げたんだよ、ありがとう。これは新しいことじゃない。スクレイパーは、サイトが静的で古いテキストばかりか、常に更新されているかなんて気にしない。ほとんどのサイトはFBやTwitter、Xじゃないし、Amazon以外の小売サイトも毎分新しい商品が追加されるわけじゃない。だけど、スクレイパー側で誰かが注意を払う必要があるのに、同じデータを毎回読み取っててもコンピュータを動かし続けるだけなんだよね。もしサイトがボット用にコンテンツを一つのダウンロード可能なファイルで提供しても、ボットの制作者はそれが古くなってないか信じないから、簡単な方法を無視してスクレイピングを続けるだろうね。

ここで他の人たちと同じ意見を言わせてもらうけど、これは特に小さな趣味のウェブサイトにとって大きな問題だよ。俺はちょっと人気のある鉄道フォーラムを管理してるんだけど、AIクローラーがサイトを叩きまくって、実際の人間が使えない状態になっちゃった。特定の前提に基づいてアーキテクチャを設計してるけど、その中に「トラフィックが5倍になる」なんて前提はなかった。たくさんのクローラーをブロックすることになったけど、これは終わりのないモグラ叩きゲームみたいだ。

その中の一つは「トラフィックの5倍」じゃなかった。ああ、それは… 人々はWordPressのパフォーマンス問題のせいで、その大量使用を警告してた。インターネットの利用は、LLMのスクレイピングがなくても増え続けてる。みんな最新の情報や最近の価格チェック、その他の機能を求めてる。このトレンドは10年以上続いてるんだ。今になって、LLMのためのボットスクレイピングがいくつかのサイトを限界に押し上げたってわけ。 > たくさんのサイトをブロックする羽目になったけど、これは終わりのないモグラ叩きみたいなもんだよ。全てのIPをブロックしない限り、彼らを止めることはできない。スクレイパーを隠すのはすごく簡単だし、特に遅いスクレイプレートを使えばね。問題は、ここにいる投稿者の一人みたいに、キャッシュにない商品ページのDB呼び出しに1秒かかるような設定があること。そういうサイトはすでに借り物の時間で生きてる。皮肉なことに、彼らのサイトでより良いソフトウェア(WPを使わないとか)を使えば、同じリソースで1000倍のボリュームを簡単に処理できるようになる。バックエンドの設定がひどいサイトも多いしね。人々はちょっと間違った問題を責めてる気がする。最新のデータへの需要は、ここ10年で増えてきた。400msでウェブページを生成するサイトが許容されてたけど、実際には資源を無駄にしてるか、バックエンドが制限されてるんだよね。

これは数ヶ月間広く報告されてきたことだね。Anthropicはまた130億ドルの資金調達を報告した。明らかに、これらの会社は自分たちの行動を改善するために努力するつもりはないみたい。

これ、ちょっと理解しづらいんだけど。なんでこんなに攻撃的にクローリングする必要があるの?トレーニングデータを集めるため?検索インデックス用のスクレイプされたウェブデータの大規模リポジトリはもうあるよね?これは調整の問題なのかな?各小さなAIスタートアップが自分のデータをスクレイプしなきゃいけないのは、誰も自分のデータを普通にダンプとして共有したがらないから?ウィキペディアには公式のオフラインダウンロードがあるし、本にはbooks3があるけど、ウェブの残りにはそれに相当するものがないの?ウェブサイトの運営者が自分のサイトのテキストコピーを大きなデータベースに提出するシステムで解決できるんじゃないかな?それからrobots.txtとかにそのデータベースへの深いリンクを指す行を追加するとか。明らかな問題は、a) 誰がそのデータベースをホストするための費用を払うのか。b) コンテンツがLLMにトレーニング用にアクセスされるのを嫌がって参加しないサイトが出てくること(だからスクレイピングはデータベースを使うよりも有利になる)。c) これらのスクレイパーを実装している人たちが良心的でなくて、既存のダンプ版のコンテンツを指示しても無視すること。d) AIに強く反対する人たちが偽の提出でデータベースを汚染しようとすること…それとも、この提案されたデータベースは実際にはCloudflareとインターネットアーカイブの間にすでに存在していて、スクレイパーは愚かで攻撃的な組み合わせで、ライブサイト以外は使おうとしないってこと?

Google AIモードに「Google AIモードは一つのプロンプトに対して何十ものサイトリクエストをするの?」って聞いたら、「69サイトを見ている」と表示された後、クエリのファンアウトについての回答が出てきた。Cloudflareはウェブの大部分をキャッシュしているけど、IAは応答に時間がかかりすぎて、負荷に耐えられなかった。GoogleやOpenAIなんかはこれらのページをキャッシュできるはずだけど、どうもそれを十分に積極的にやってないみたい。

彼らは単に気にしてないんじゃないかな。こういう会社のオーナーは、自分以外のことを考えろって言われると本気で困惑して、腹を立てるタイプの人たちだから。AIに関する態度にもそれが見えるし、クローリングが違うわけがないよね。

Chrome以外のブラウザやアクセシビリティツール、プライバシーソフトを使っている人には本当に悪いことになってる。たくさんのサイトが、あなたがウェブクローラーだと思ってブロックするから。

ちょっとバカな質問してもいい? なんでこれが従来の検索エンジンの記事収集よりもずっと悪いの? 彼らはほぼ同じデータを集めてると思うんだけど? 同じ記事じゃないの? — これがクライアントの代理でLLMからの呼び出しだって気づいた。これが問題だってのはわかるけど、キャッシュする方法があるように思えるんだけど。

いや、トラフィックはクライアントのリクエストから生じてるわけじゃない(チャットGPTのセッションが検索していくつかのソースをチェックする時みたいに)。それはトレーニングランから来てるんだ。違いは、AI企業がスクレイピングしたデータを保存してないこと。モデルにデータを取り込ませて、その後捨ててる。次のモデルをトレーニングする時には、またインターネット全体をスクレイプするんだ。少なくとも、俺はそう理解してる。