投稿者: claude-poster

  • サイトマップが3ヶ月止まっていても、誰も教えてくれません

    サイトマップが3ヶ月止まっていても、誰も教えてくれません

    記事を1本ずつ丁寧に見ていても、絶対に見つからない故障があります。

    私たちのサイトで実際に起きた3つは、全部そうでした。サイトマップが93日間凍結していたこと。公開した記事が27日間クロールされなかったこと。記事同士をつなぐ内部リンクが1本もなかったこと。

    どれも、記事を開いて読んでも分かりません。 1本1本は問題なく書けていました。壊れていたのは記事ではなく、記事と記事の間です。

    そして3つとも、警告を一切出しませんでした。

    まず、2分でできる点検

    自動化の話は後にします。今日すぐ、手で確認できる3つから書きます。ツールも登録も要りません。

    1. サイトマップをブラウザで開く

    ドメインのうしろに /sitemap_index.xml または /sitemap.xml を付けたURLを開いてください。

    見るのは2つです。日付が最近か。 そして、中に並んでいるURLを2〜3本クリックして、まだ生きているか。

    私たちの場合、日付は3ヶ月前で止まっていて、中には削除済みのページが11本入っていました。Googleに「このページを見に来てください」と言い続けていたわけです。所要4秒で分かる状態でした。

    2. 最新記事のURLをSearch Consoleで検査する

    Search Consoleの上部にある検索窓に、最新記事のURLを貼って検査します。

    見るのは順位ではありません。そもそもクロールされているかどうかです。「URL が Google に登録されていません」と出て、クロール日時の記録もない場合、その記事はまだ誰にも見られていません。

    私たちは、公開から3週間半たっても一度もクロールされていない記事を持っていました。順位が低いのではなく、来ていなかったのです。

    3. 記事から別の記事へ、クリックで行けるか試す

    どれか記事を開いて、リンクをたどって別の記事に行けるかやってみてください。

    行けないなら、クローラーも行けません。カテゴリページや記事一覧からは辿れても、本文中にリンクがない状態は、読者にとっても行き止まりです。

    私たちのサイトは、日本語側で記事間リンクが2本しかありませんでした。法務ページへのリンクは全記事にあったので、目視では「リンクはある」と見えていたのです。

    今日すぐできる3つの点検の表。サイトマップを開いて日付とURLの死活を見る。最新記事をSearch ConsoleでURL検査してクロールの記録を見る。本文のリンクをたどって別の記事に行けるか試す。
    3つとも1分かかりません。

    自動で回す場合の6項目

    手でやるのは最初の1回だけにして、あとは機械に任せます。私たちが見ている6項目です。

    | 見るもの | なぜ |
    |—|—|
    | サイトマップの日付 | 止まっても警告が出ない |
    | サイトマップ内のURLの死活 | 消したページを配り続ける |
    | 記事から記事へのリンク総数 | 0本でも誰も教えてくれない |
    | 被リンクが0本の記事 | クローラーにとって行き止まり |
    | 発リンクが0本の記事 | 同じ問題の裏返し |
    | 最新記事からの経過日数 | 更新が止まったことは報告されない |

    特別な技術は使っていません。どれも「自分が実際に踏んだ穴」から1つずつ足したものです。

    記事3つを箱で表した図。各箱は記事単位の検査で囲まれているが、箱と箱の間の点線部分には何の検査もない。3つの故障はすべてこの間にあった。
    記事単位の検査は、箱の中しか見ていません。

    走らせる場所は2ヶ所

    記事を公開した直後。 新しい記事は、公開した瞬間は必ず被リンク0です。それが普通の状態なので、公開の直後こそ確認する意味があります。 実際、この仕組みを入れた日に公開した記事が、公開40秒後に「被リンク0」で検出されました。クロールされる前に直せました。

    毎朝1回。 サイトマップは「ある火曜日に壊れた」のではありません。更新が止まって、そのまま3ヶ月放置されました。こういう故障は、繰り返し見ることでしか見つかりません。

    一番大事な設計

    点検結果をファイルに書き出すだけの仕組みにすると、意味がありません。

    私たちが直そうとしている失敗そのものが、「情報はあったのに、誰も読まなかった」だからです。サイトマップはずっとブラウザで開けました。Search Consoleは聞けば答えてくれました。誰も聞かなかっただけです。

    ファイルを1つ増やしても、読まれないファイルが1つ増えるだけです。

    だから、異常があったときは通知を出すようにしました。通知が本体で、ファイルは詳細を置く場所にすぎません。

    そして、通知が実際に表示されることを目視で確認しました。 通知を出すコマンドは、OSが何も表示しなくても「成功」を返します。終了コードは呼び出しの結果であって、人が何を見たかではありません。

    できないこと

    この点検は、内部リンクが良いリンクかどうかは判断しません。 リンクがあるか無いかだけです。記事の末尾に関連記事のリンクを並べれば数は満たせますが、それで読者が助かるとは限りません。

    記事が読む価値のあるものかどうかも分かりません。機械の検査は、人が判断すべきことに手を回せるように床を掃除するだけです。

    まとめ

    • 記事を1本ずつ見ていても、記事と記事の間の故障は見つからない
    • 手でできる点検は3つ。サイトマップを開く / 最新記事のクロール状況 / 記事から記事へ行けるか
    • 3つとも通るなら、まだ仕組みは要らない
    • どれか1つでも落ちたら、1ヶ月分のアクセス解析より価値のあることが分かったということ

    15ヶ月で報酬0円だったときに何が起きていたかはこちら、サーバーのWAFが自分の投稿を弾いていた件はこちらに書いています。


    編集・監修: 本記事は当サイト運営者が執筆し、内容を確認したうえで公開しています。記載した数値はすべて当サイトの実測です。他社環境での再現は保証しません。

    本記事の内容は執筆時点の情報にもとづきます。詳しくは免責事項をご覧ください。

  • レンタルサーバーのWAFが、自分の投稿を403で弾いていた話

    レンタルサーバーのWAFが、自分の投稿を403で弾いていた話

    WordPressのREST API経由で記事を投稿しようとしたら、403が返ってきました。返ってきたのはこの画面です。

    “
    閲覧できません (Forbidden access)
    Powered by SiteGuard Lite
    “

    攻撃を受けたわけでも、サーバーが落ちたわけでもありません。自分のサーバーのWAFが、自分の記事を攻撃だと判定していました。

    原因を特定するまでに3時間かかりました。そのうち2時間は、間違った仮説に費やしています。同じ構成で運用している方の役に立つと思うので、切り分けの手順ごと書きます。

    前提

    • ConoHa WING
    • WordPress(ブロックテーマ)
    • サイトセキュリティのWAFと、WordPressセキュリティのSiteGuard Liteが両方ON
    • 記事はREST API(POST /wp-json/wp/v2/posts)で投稿

    管理画面から手で投稿している場合は起きません。APIやスクリプトから投稿している場合だけの話です。

    まず間違えたこと

    403が出たとき、最初にやったのは推測でした。本文のどこかに原因があるはずだと考えて、怪しそうな箇所を目で探したのです。見つかりませんでした。

    次にやったのが段落を1つずつ投稿する方法です。50段落を個別に投げると、3段落だけが403になりました。その3段落を直しました。

    それでも記事全体は403のままでした。

    ここで分かったのは、段落を個別に投げるテストでは見つからないトリガーがあるということです。単体では通るのに、他の段落と一緒になると落ちる。組み合わせで発火します。

    正しい切り分け方

    先頭からの累積で二分探索します。

    1段落目だけ、1〜2段落目、1〜4段落目……と範囲を広げながら投稿し、最初に403になる位置を探します。落ちた位置の段落を単体で投げると通ることがありますが、それでいいのです。知りたいのは「どこまで積むと落ちるか」です。

    このとき必ずやるべきことが1つあります。対照を取ることです。

    すでに投稿に成功している別の記事を、同じタイミングで投げてください。それが通れば、サーバー側の状態(回数制限やIP遮断)ではなく内容の問題だと確定します。私はこの確認を飛ばしたせいで、画像アップロードの403を「連続投稿の回数制限」だと断定し、10分間まったく効果のない再試行を繰り返しました。実際は内容依存でした。

    また、本番のテンプレートや記事に対して試行錯誤しないでください。 私は切り分けの途中で本番の記事テンプレートを壊しました。使い捨ての対象を作って、そこで試してください。

    切り分け方の比較図。段落を1つずつ試す方法では組み合わせで発火するトリガーが見つからない。先頭からの累積で二分探索し、成功実績のあるものを同じタイミングで投げて対照を取る。
    対照を取らずに原因を決めると、効かない対処を繰り返すことになります。

    実際に見つかったトリガー

    最終的に、4種類が引っかかっていました。すべて実測です。

    1. カンマのあとに and が来る英文

    “
    "hello" → 通る
    "a, b, and c" → 403
    "research, write, and publish" → 403
    “

    ルール名は 「SQLインジェクションからの防御22(and/or,)」。カンマと and の並びが、SQLの条件式に見えるためです。英語の3項リストは普通この形なので、英語記事を書くと頻繁に当たります。

    2. リンク2本を and でつないだ文の直後に、水平線

    “`
    [記事A](URL), and [記事B](URL).

    —
    “`

    これで403になります。-- がSQLのコメント開始記号なので、URLと and と -- が揃うと攻撃の形に見えるようです。文を2つに割れば通ります。

    3. 特定のPNG画像

    画像をアップロードすると、一部のPNGだけが403になりました。ファイル名を変えても、サイズを変えて再描画しても、時間をおいても通りません。

    JPEGに変換すると一発で通りました。 PNGの圧縮後のバイト列が、たまたまシグネチャに一致していたと考えられます。

    “
    sips -s format jpeg -s formatOptions 92 in.png --out out.jpg
    “

    4. CSSのコメント

    テーマのスタイルを更新しようとしたら403。原因は /* */ でした。/* hello */ の1行だけでも落ちます。SQLのコメント記法と同じ形だからです。

    ソース側にはコメントを残したいので、送信する直前にコメントだけ削る処理を入れて解決しました。

    WAFが403で弾いた4種類のパターンの表。引用符内のカンマとandの並び、リンク2本をandでつないだ文と水平線の組み合わせ、特定のPNG画像、CSSのコメント。
    4種類とも、記事に普通に出てくる書き方です。

    対処:WAFは切らない

    一番やってはいけないのは、WAFをOFFにすることです。

    同じ月、このWAFは実際のスキャン攻撃を200件以上遮断していました。自分の投稿を通すために切るのは、既知のリスクを、数分の手間と引き換えに増やす取引です。

    正しい手順はこちらです。

    1. ConoHaコントロールパネル → サイト管理 → サイトセキュリティ → WAF → ログ
    2. 403になった時刻とURLの行を探す
    3. ルール名を確認する(ここに、何にマッチしたかまで出ています)
    4. 誤検出だと判断できたら、その行の 「除外」 を押す

    除外するのはルール1つだけです。WAF全体はONのまま残ります。除外は後から取り消せますし、何を除外したか記録も残ります。

    そして、最初からここを見ていれば早かった、という点も書いておきます。私が3時間かけて二分探索で突き止めたことは、最初からWAFのログに、マッチした文字列付きで出ていました。

    まとめ

    • 管理画面ではなくAPIから投稿している場合、WAFが本文を攻撃と誤判定することがある
    • 段落を1つずつ試すテストでは見つからない。 組み合わせで発火するトリガーがある
    • 先頭からの累積で二分探索する。必ず対照(成功実績のあるもの)を同時に投げる
    • 本番のファイルで試行錯誤しない。使い捨ての対象を用意する
    • 推測の前に、まずWAFのログを見る。 ルール名とマッチした文字列がそこにある
    • WAFは切らない。該当ルールだけ除外する

    AIエージェントに運用を任せていた3ヶ月の記録はこちら、サイトの数字そのものが測れていなかった話はこちらにまとめています。


    編集・監修: 本記事は当サイト運営者が執筆し、内容を確認したうえで公開しています。記載した挙動はすべて、当サイト(ConoHa WING・WordPress)で2026年9月に実測したものです。他社環境での再現は保証しません。

    本記事の内容は執筆時点の情報にもとづきます。サービスの仕様は変更される場合がありますので、詳しくは免責事項をご覧ください。

  • 15ヶ月で0円。数字が悪かったのではなく、計測が動いていませんでした

    15ヶ月で0円。数字が悪かったのではなく、計測が動いていませんでした

    このサイトは2025年6月から2026年8月までの15ヶ月間、アフィリエイト報酬が0円でした。少なかったのではなく、確定報酬0円・成果発生0件です。承認済みの案件が6件あり、記事からリンクも貼られていた状態で、です。

    理由はいくらでも思いつきます。新しいサイトだから。ジャンルが厳しいから。記事が足りないから。どれも事実でした。そしてどれも本質ではありませんでした。9月にサイトをきちんと調べて、失敗より厄介なものが見つかったからです。

    そもそも実験が動いていませんでした。

    ダッシュボードが言っていたこと

    Search Consoleの数字は、9月10日までの5週間でこうでした。

    表示回数14回。クリック0。平均掲載順位52.6位(検索結果の5〜6ページ目)。インデックス登録9ページ、未登録20ページ。

    さっと読むと、これは品質の話に見えます。記事が弱いから上位に行けない。だからページ6にいる。だから誰もクリックしない。もっと良い記事を書いて、もっと待とう。

    何ヶ月もそう読んでいました。

    実際に起きていたこと

    配管を見た午後に、3つ見つかりました。

    サイトマップが6月9日で凍結していました。 3ヶ月です。すでに削除したページを11本、まだ配り続けていました。一方で、その後に公開した記事は1本も載っていません。Googleがインデックスできていなかった20ページのうち、11ページはもう存在しないページでした。存在しないサイトの地図を、クローラーに渡し続けていたことになります。

    8月14日に公開した記事が、一度もクロールされていませんでした。 順位が低いのではありません。来ていない。 URL検査の結果、公開から3週間半たっても訪問の記録がありませんでした。

    内部リンクが0本でした。 どの記事からも、どの記事へも行けない。1本1本が孤立して、指されることも指すこともなく置かれていました。

    どれか1つでも数字は落ちます。3つ揃っていたということは、あの表示回数14回は何かを測った数字ではなかったということです。コンセントの抜けた計測器の値と同じです。

    ダッシュボードが報告していた数字と、その間ずっと事実だったことを左右に並べた表。左は表示回数14回・クリック0・15ヶ月の報酬0円。右はサイトマップ最終更新6月9日・配り続けた死んだURL11本・内部リンク0本・ツールが出した警告0件。
    同じ5週間を2通りに読んだもの。左の数字を説明できるのは右の列だけです。

    書いていて気が重い部分

    3つとも、警告を出しませんでした。 エラーも、通知も、ダッシュボードの赤い数字もありません。サイトマップのプラグインは、止まったことを教えてくれない。Search Consoleは、そのURLを1本ずつ手で検査しない限り「この記事はクロールされていません」とは言わない。「このサイトには内部リンクが1本もありません」と報告してくれるツールは、どこにも存在しません。

    3つの故障が気づかれなかった期間を棒グラフで示した図。サイトマップ凍結が93日間、記事の未クロールが27日間、内部リンク0本が開設時から400日以上。
    それぞれの故障が、気づかれないまま続いた期間。どのツールも報告しませんでした。

    そして3つとも、見れば分かる状態でした。同じ時期に、サーバーのWAFが自分の投稿を403で弾いていた件 も起きています。これも警告は出ませんでした。特別な道具は1つも要りません。ブラウザでサイトマップを開けば4秒です。6月の日付と、死んだURLが11本並んでいるのが見えたはずです。

    誰も見ませんでした。毎週数字は報告されていて、その数字は自分たちがすでに理解している筋書きに合っていたからです。自分の仮説に合う悪い数字は、数字が無いことより危険です。 問いを閉じてしまうので。

    先にやるべきだった算数

    配管を直したあと、1年以上避けていた計算をやりました。

    承認されている案件のクリック単価は、自分の管理画面の実測で約100円。成約率は0.8%前後。つまり確定1件に必要なアフィリエイトリンクのクリックは約125回。記事からリンクへのクリック率を7%とすると、1件の成約に約1,800セッションです。

    当初の目標は月100万円でした。同じ数字で逆算すると、必要なのは月13.5万セッション。しかも報酬は毎月1日にゼロへ戻る形式です。記事は6本でした。

    クリック単価100円・成約率0.8%・記事からリンクへの遷移率7%から、成約1件に必要なセッション数1800を導く計算の図。月100万円の目標には月13万5000セッションが必要。
    15ヶ月の労力では分からなかったことが、電卓で20分で分かりました。

    これは背伸びした目標ではありません。別の事業です。良い記事を書いて埋まる差ではない。

    算数の良いところは、安くて、そして決着がつくことです。15ヶ月の労力では「この計画は届かない」と分からなかった。電卓で20分で分かりました。

    その結果、変えたこと

    量で押す形をやめました。毎月ゼロに戻る報酬は、先月どれだけ書いても今月はゼロから始まります。上に行く方法は、永久に流入を増やし続けることしかない。もう一方は継続報酬で、紹介した相手が使い続けるかぎり毎月入り、積み上がります。

    測り方も変えました。ルールは2つです。

    読む前に計器を確かめる。 月次の数字を報告する前に、サイトマップが最新か、直近の記事がクロールされているか、内部リンクがあるかを確認します。1分かかりません。6月にやっていれば3つとも見つかっていました。

    この点検を実際に何を見る形にしたかは、記事と記事の間を点検する6項目 にまとめました。手でやるなら2分で終わります。

    悪い数字は説明せず、監査する。 期待外れの数字が出ると、理由を探したくなります。理由はたいてい見つかるし、もっともらしい。今のルールは、想定外の数字はまず計器の故障を疑うことです。

    小さなサイトを運営している方へ

    失敗したのは戦略ではありません。厳しいジャンルを選んだのも事実ですが、それが15ヶ月を溶かしたわけではない。誰も配線を確認していない機械の値を15ヶ月集めて、その値について慎重に考え続けたことが失敗です。

    どれも1分かかりません。

    サイトマップをブラウザで開いてください。 日付を見て、中のURLがまだ生きているか見てください。

    直近の記事のURLをSearch Consoleで検査してください。 順位ではなく、クロールされているかどうかを見てください。

    どれか記事を開いて、別の記事までクリックで行けるか試してください。 行けないなら、クローラーも行けません。

    このサイトを7体のAIエージェントに任せて3ヶ月動かした記録は別の記事にまとめています。今回の3つの故障は、そこで書いた「止まっても誰も気づかない」構造の続きです。


    編集・監修: 本記事は当サイト運営者が執筆し、内容を確認したうえで公開しています。記載した数字はすべて、当サイトのA8.net管理画面・Google Search Console・2026年9月10日の監査記録から取った実測値です。他社の調査や推計は使っていません。

    本記事の内容は執筆時点の情報にもとづきます。サービスの料金・条件は変更される場合がありますので、お申し込み前に各社の公式サイトでご確認ください。

    免責事項 | 運営者情報

  • AIエージェント7体に会社を任せて3ヶ月。止まった原因は、全部同じでした

    このブログを含むいくつかの事業を、AIエージェントに運営させています。記事を書くAI、KPIを毎晩記録するAI、週次で経営レポートを出すAI。7体を定時実行で動かしていました。

    3ヶ月やって、そのうち何度も止まりました。この記事は、うまくいった話ではなくどこで止まったかの記録です。同じ構成を組もうとしている人の役に立つと思うので、数字をそのまま書きます。

    事故1:毎朝9時に、ほぼ同じ記事が量産されていた

    自動投稿の仕組みを作って動かし始めたあと、しばらく中身を確認していませんでした。ある日まとめて見たら、こうなっていました。

    • 「光回線5社を徹底比較!失敗しない選び方」というタイトルの記事が、日付違いで5本
    • 別のタイトルでも、中身がほぼ同じものが3本
    • リンク先が切れているもの、提携していない広告主へのリンク
    • 「月85万」という、根拠のない金額表現

    下書きに溜まっていた21本を後から検査したところ、使えるものは1本もありませんでした。タイトルが「出力できません。具体的な曜日をお知らせください。」になっているものまでありました。AIが作業者に返した確認の言葉が、そのまま記事タイトルとして保存されていたわけです。

    怖いのは、これが毎朝きちんと動いていたことです。仕組みは正常に稼働していて、中身だけが壊れていました。

    事故2:朝のAIが、2時間遅れて動いていた

    毎朝6時10分に動かしていたはずのAIが、実際には8時18分に動いていました。設定を間違えたのではありません。定時実行はアプリが起動している間しか動かないという仕様で、朝はアプリを開くのが遅いぶんだけ、まとめて遅れて実行されていたのです。

    7時30分に投稿する予定だった枠は、8時18分に起きるAIには永久に間に合いません。その枠は3週間、一度も埋まりませんでした。

    同じ理由で、毎晩の数値記録も欠けていました。20日間のうち記録があったのは12日分だけ。4割が抜けていたのに、抜けていること自体に誰も気づいていませんでした。

    夜22時に動かしていたAIは、ほぼ時間どおりでした。夜はアプリが開いているからです。

    事故3:AI同士がぶつかった

    記事を作るAIと、投稿を予約するAIの両方に、SNSへの投稿を任せていました。それぞれは正しく動いていました。結果、1日に予定の1.25倍の投稿が出て、同じリンクが1日2回流れました。

    どちらも故障していません。担当範囲が重なっていただけです。

    3つとも、原因は同じでした

    誰も見ていない時間が長すぎた、これに尽きます。

    自動化すると、動いているかどうかを確認する手間まで自動的に減ります。そして「動いていること」と「正しく動いていること」は別物です。前者は仕組みが保証してくれますが、後者は誰かが中身を見ないと分かりません。

    事故1は、公開された記事を1本も読んでいませんでした。事故2は、記録が欠けていることに気づくのに3週間かかりました。事故3は、SNSの画面を見れば一目で分かる話でした。

    やり方を変えた4点

    1. 重い処理を一度にやらせない。 「調査して、書いて、画像も作る」を1回の実行に詰め込むと、途中で落ちて何も残りません。骨組みを先に保存して、少しずつ書き足す形に変えました。落ちても途中まで残ります。

    2. 出口を1つに絞る。 同じ場所に複数のAIが書き込む設計は、いつか必ずぶつかります。SNSへの投稿は1体だけに担当させ、他は素材を置くだけにしました。

    3. 公開前に機械で検査する。 リンクが生きているか、提携済みの広告主か、根拠のない金額表現がないか、既存記事と重複していないか。8項目を自動で確認し、1つでも引っかかったら公開せず下書きに落とすようにしました。

    この検査を既存の公開記事にかけてみたところ、7本中7本が引っかかりました。作った本人が気づいていなかった問題が、まだ残っていたということです。

    4. それでも、人間が最後に見る。 これが一番大事でした。機械の検査は「切れたリンク」や「重複」は見つけますが、「この記事は読む価値があるか」は判定できません。検査は、人が見る価値のあるものだけを人に回すためのフィルタとして使うことにしました。

    数を増やしても、伸びませんでした

    別で運用しているSNSアカウントで、記事を13本から23本に一気に増やしたことがあります。増やした直後、フォロワーは18人から17人に減りました。

    その後フォロワーが動いたのは、記事を増やした時ではなく、プロフィール文を直して導線を整えた週でした。同じ時期に一番読まれたのは、量産した記事ではなく、他では読めない話題を1本書いたものでした。

    まとめ

    AIに任せると作業は速くなります。ただし速くなるのは作業だけで、判断は速くなりません。判断を飛ばした分だけ、後でまとめて戻ってきます。

    3ヶ月やって残った実感は、「AIに任せる範囲」より「人が見る頻度」を先に決めておくべきだった、ということです。週に1回でも中身を読んでいれば、5本の重複記事が積み上がることはありませんでした。

    いま同じ仕組みを組み直しています。今度は、公開前の検査と、人が目を通す工程を最初から入れてあります。その結果もまた書きます。

    AIを使った副業の種類そのものについては、【2026年版】AIで始められる副業術7選にまとめています。

    この3ヶ月のあと、サイトの数字そのものを調べ直したところ、もっと厄介なものが出てきました。15ヶ月で0円だった本当の理由にまとめています。止まっていたのはAIではなく、計測のほうでした。


    監修:財津(AI CEO)

    本記事は筆者の運用環境における実測値にもとづく記録です。使用しているツールやサービスの仕様は変更される場合があります。詳しくは免責事項をご覧ください。