AIクローラーをrobots.txtで正しく制御する — 学習は拒否、引用は許可する2026年の戦略
GPTBotを一行ブロックして「AI遮断完了」と思っているサイトは多い。学習・検索・ユーザー要求のクローラーを分けて制御するrobots.txtを実際に書き、標準パーサーで検証した。Google-ExtendedがAI Overviewsを止められない落とし穴と、llms.txtの正直な現状まで。
archive
356 · ページ 6
GPTBotを一行ブロックして「AI遮断完了」と思っているサイトは多い。学習・検索・ユーザー要求のクローラーを分けて制御するrobots.txtを実際に書き、標準パーサーで検証した。Google-ExtendedがAI Overviewsを止められない落とし穴と、llms.txtの正直な現状まで。
架空のベーカリーのランディングページをLighthouseのアクセシビリティ監査にかけて55点。6つのWCAG違反を1つずつ直して100点にした実測ログと、自動ツールが見逃したキーボードの罠までまとめた。
サブエージェントを並列で回せばローカルモデルもその分速くなると思っていた。実際に測ると既定のOllamaはリクエストを順番待ちで捌くので、8個つないでも総スループットは変わらなかった。OLLAMA_NUM_PARALLELを上げたときの利得とその代償をM1 16GBで実測した。
店舗検索ページのLocalBusiness JSON-LDをJSで注入すると、生のHTMLにはブロックが0個。サーバーサイド出力と直接比較し、Google公式見解と順位の限界まで整理した。
前回の記事でgemma4:12bの空応答をパッケージングのバグと断定した。違った。推論モデルだったのだ。そこで推論ON/OFFで13問を回した。 推論は正解を1つ多く出したが、出力トークンを68倍、時間を19倍消費した。エージェントでいつ点けていつ消すかを実測でまとめる。
ローカルエージェントが長い会話で急に指示を無視しはじめた。プロンプトの先頭に秘密コードを隠し、長さを伸ばしながらrecallを測った。 num_ctxを超えるとOllamaはエラーも出さずプロンプトの前方を切り落とす。そして「既定値は4096」という通説も私のMacでは外れていた。
少し離れてからエージェントを呼び直すと、最初の応答だけやけに重い。Ollamaが応答ごとに返すload_durationをモデルサイズ別に 分解すると、2GBで1.5秒、9.6GBで最大9.7秒だった。しかも「コールド」には二種類あった。keep_alive一つでこの費用が どう分かれるかを実測してまとめた。
同じ9,700トークンのプロンプトが私のノートPCで最初のトークンまで55秒かかったのに、2回目の呼び出しは65ミリ秒だった。Ollamaのタイムスタンプを直接取り出してprefillとgenerationを分離測定し、prefixキャッシュがなぜ396倍速かったのか、エージェントのコンテキスト設計にどう活かすかをまとめた。
同じ記事をko/ja/en/zhの4言語で出している自分のブログ285本を、実トークナイザー3種でトークン化し非英語のトークン費用を測った。 韓国語は英語の1.38倍、日本語1.34倍、そしてトークナイザーの世代交代が実質的に非英語向けの割引だったことまでデータで確かめた。
同じプロンプトをローカルのGemma 4へ数十回投げ、出力がどれだけ再現するかを測定した。temperature=0は決定的で、 temperatureを上げてもseedを固定すると出力は一行に収束した。評価とCIにすぐ使える結論までまとめる。
同じ50件のレコードをJSON・YAML・CSV・TSV・XMLなど9形式に直列化し、tiktokenでトークンを実測した。平坦なデータはTSVがpretty JSONより62%安く、ネストすると結論が逆転する。
@modelcontextprotocol/sdk v1.29.0を実際にインストールしてTypeScript MCPクライアントを作った。 Claude Desktopなしでサーバーのツールをプログラムから呼び出す実践ガイド。 実際の実行ログとエラー処理パターンも含む。