監視の時系列を確認する

架空のページとHTTP結果を、保存済みペアの監視と同じ解析・通知ルールで処理した例です。実在サイトの取得、アカウントへの保存、実際の通知送信は行いません。

間隔は実行予定であり、連続した稼働率の測定ではありません。インデックス登録や順位は測定していません。

記入済み記録は例としてのみ使用してください。空の記録には実際の参照元と宛先、UTCの観測時刻、証拠、担当者、再確認結果を記入し、不明な事実は空欄にします。このインシデント表は監視用インポートファイルではありません。インポートには説明されたsourceUrlとtargetUrl列名を使用します。

M01 · 正常なリンクの文言が変わる

hrefと宛先は有効なまま、アンカーだけが変わります。アンカーの期待値がなければ2回目も正常で変更通知が発生し、同じ結果の繰り返しでは新しい通知は出ません。

掲載条件と文言を比較し、変更を受け入れるか記録します。

観測 1

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
通知なし
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
リンク情報が変更されました
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Updated guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Updated guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [
      "anchor"
    ],
    "warning": false,
    "recovered": false,
    "changed": true,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": "trackedChanged"
  }
}

観測 3

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
通知なし
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Updated guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Updated guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": null
  }
}

M02 · 403の後にタイムアウト

どちらもリンクの存在を確認できません。UNREACHABLEと宛先200が共通するため、原因が違っても2回目に通知し得ます。後で読めるリンクが得られると回復になります。

参照元のアクセスを調べて再確認します。この要求だけで削除を断定しません。

観測 1

リンクの結果
掲載ページにアクセスできません · 調査が必要
証拠が示すこと
通知なし
連続する問題の観測数
1
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 403,
    "targetStatus": 200,
    "html": ""
  },
  "result": {
    "status": "UNREACHABLE",
    "sourceStatus": 403,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": null,
    "observedRel": null,
    "matchCount": 0,
    "errorCode": "HTTP_403",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "UNREACHABLE:200",
    "failures": 1,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
掲載ページにアクセスできません · 調査が必要
証拠が示すこと
繰り返し発生する問題を確認
連続する問題の観測数
2
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": null,
    "targetStatus": 200,
    "html": "",
    "sourceError": "PAGE_TIMEOUT"
  },
  "result": {
    "status": "UNREACHABLE",
    "sourceStatus": null,
    "targetStatus": 200,
    "sourceFinalUrl": null,
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": null,
    "observedRel": null,
    "matchCount": 0,
    "errorCode": "PAGE_TIMEOUT",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "UNREACHABLE:200",
    "failures": 2,
    "changes": [],
    "warning": true,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": "UNREACHABLE:200",
    "notification": "trackedAttention"
  }
}

観測 3

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
リンクが復旧しました
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [
      "status"
    ],
    "warning": false,
    "recovered": true,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": "trackedRecovered"
  }
}

M03 · 読めたHTMLにリンクがない

読めた2回の応答に期待したhrefがありません。2回目に警告し、静的リンクが戻ると回復通知になります。

復旧依頼の前にHTMLと完全な期待URLを確認します。転送と描画は別に調べます。

観測 1

リンクの結果
HTMLに見つかりません · 調査が必要
証拠が示すこと
通知なし
連続する問題の観測数
1
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><p>No target link in this fixture.</p></main>"
  },
  "result": {
    "status": "NOT_FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": null,
    "observedRel": null,
    "matchCount": 0,
    "errorCode": "NOT_FOUND_IN_HTML",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "NOT_FOUND:200",
    "failures": 1,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
HTMLに見つかりません · 調査が必要
証拠が示すこと
繰り返し発生する問題を確認
連続する問題の観測数
2
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><p>No target link in this fixture.</p></main>"
  },
  "result": {
    "status": "NOT_FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": null,
    "observedRel": null,
    "matchCount": 0,
    "errorCode": "NOT_FOUND_IN_HTML",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "NOT_FOUND:200",
    "failures": 2,
    "changes": [],
    "warning": true,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": "NOT_FOUND:200",
    "notification": "trackedAttention"
  }
}

観測 3

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
リンクが復旧しました
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [
      "status"
    ],
    "warning": false,
    "recovered": true,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": "trackedRecovered"
  }
}

M04 · リンクはあるが宛先が壊れている

アンカーは毎回あります。宛先404が2回続くと問題として通知し、宛先200で正常に戻ります。

宛先の管理者に割り当てます。参照元リンクの置き換えが自動的に正解になるわけではありません。

観測 1

リンクの結果
リンクあり · 調査が必要
証拠が示すこと
通知なし
連続する問題の観測数
1
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 404,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 404,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": "HTTP_404"
  },
  "transition": {
    "healthy": false,
    "signature": "FOUND:404",
    "failures": 1,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
リンクあり · 調査が必要
証拠が示すこと
繰り返し発生する問題を確認
連続する問題の観測数
2
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 404,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 404,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": "HTTP_404"
  },
  "transition": {
    "healthy": false,
    "signature": "FOUND:404",
    "failures": 2,
    "changes": [],
    "warning": true,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": "FOUND:404",
    "notification": "trackedAttention"
  }
}

観測 3

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
リンクが復旧しました
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [
      "destination"
    ],
    "warning": false,
    "recovered": true,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": "trackedRecovered"
  }
}

M05 · relの期待値が間違っていた

sponsoredのリンクがfollowの期待値と2回矛盾します。期待値をsponsoredへ直してもページは変わらず、通知状態だけがリセットされます。

条件の訂正を記録し、有料関係の属性を維持します。設定変更を掲載側の修復とは呼びません。

観測 1

リンクの結果
期待する属性と異なります · 調査が必要
証拠が示すこと
通知なし
連続する問題の観測数
1
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": "follow"
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\" rel=\"sponsored\">Guide</a></main>",
    "rel": "follow"
  },
  "result": {
    "status": "ATTRIBUTES_CHANGED",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": "sponsored",
    "matchCount": 1,
    "errorCode": "EXPECTATION_MISMATCH",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "ATTRIBUTES_CHANGED:200",
    "failures": 1,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
期待する属性と異なります · 調査が必要
証拠が示すこと
繰り返し発生する問題を確認
連続する問題の観測数
2
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": "follow"
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\" rel=\"sponsored\">Guide</a></main>",
    "rel": "follow"
  },
  "result": {
    "status": "ATTRIBUTES_CHANGED",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": "sponsored",
    "matchCount": 1,
    "errorCode": "EXPECTATION_MISMATCH",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "ATTRIBUTES_CHANGED:200",
    "failures": 2,
    "changes": [],
    "warning": true,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": "ATTRIBUTES_CHANGED:200",
    "notification": "trackedAttention"
  }
}

観測 3

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
通知なし
連続する問題の観測数
0
次回の予定間隔(時間)
24

確認前に期待値を編集しています。通知カウンターのリセットは、サイトが修復された証拠ではありません。

{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": "sponsored"
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\" rel=\"sponsored\">Guide</a></main>",
    "rel": "sponsored",
    "reset": true
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": "sponsored",
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [
      "status"
    ],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": null
  }
}

M06 · JavaScriptがリンクを追加する

入力されたスクリプトはブラウザーでアンカーを追加します。静的解析はスクリプト内の文字列を無視し、両方の観測でリンクを見つけません。

描画後の表示とサーバーHTMLを比較します。通知はブラウザー上の欠落を証明しません。

観測 1

リンクの結果
HTMLに見つかりません · 調査が必要
証拠が示すこと
通知なし
連続する問題の観測数
1
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main id=\"root\"></main><script>document.getElementById(\"root\").innerHTML=\"<main><a href=\\\"https://brand.example.org/guide\\\">Guide</a></main>\";</script>"
  },
  "result": {
    "status": "NOT_FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": null,
    "observedRel": null,
    "matchCount": 0,
    "errorCode": "NOT_FOUND_IN_HTML",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "NOT_FOUND:200",
    "failures": 1,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
HTMLに見つかりません · 調査が必要
証拠が示すこと
繰り返し発生する問題を確認
連続する問題の観測数
2
次回の予定間隔(時間)
1
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main id=\"root\"></main><script>document.getElementById(\"root\").innerHTML=\"<main><a href=\\\"https://brand.example.org/guide\\\">Guide</a></main>\";</script>"
  },
  "result": {
    "status": "NOT_FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": null,
    "observedRel": null,
    "matchCount": 0,
    "errorCode": "NOT_FOUND_IN_HTML",
    "targetErrorCode": null
  },
  "transition": {
    "healthy": false,
    "signature": "NOT_FOUND:200",
    "failures": 2,
    "changes": [],
    "warning": true,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 3600000,
    "alertedSignature": "NOT_FOUND:200",
    "notification": "trackedAttention"
  }
}

M07 · 最終的な宛先が移動する

元のhrefは同じまま、別の最終URLを経由して正常な宛先に到達します。2回目はリンク消失ではなく変更の通知です。

置き換え先の内容と転送経路を確認します。最終URLはGoogleが選んだ正規URLを示すものではありません。

観測 1

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
通知なし
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": null
  }
}

観測 2

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
リンク情報が変更されました
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>",
    "targetFinal": "https://brand.example.org/new-guide"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/new-guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [
      "targetRedirect"
    ],
    "warning": false,
    "recovered": false,
    "changed": true,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": "trackedChanged"
  }
}

観測 3

リンクの結果
リンクあり · 今回の確認では正常
証拠が示すこと
通知なし
連続する問題の観測数
0
次回の予定間隔(時間)
24
{
  "expected": {
    "sourceUrl": "https://publisher.example.org/article",
    "targetUrl": "https://brand.example.org/guide",
    "expectedAnchor": "",
    "expectedRel": ""
  },
  "input": {
    "sourceStatus": 200,
    "targetStatus": 200,
    "html": "<main><a href=\"https://brand.example.org/guide\">Guide</a></main>",
    "targetFinal": "https://brand.example.org/new-guide"
  },
  "result": {
    "status": "FOUND",
    "sourceStatus": 200,
    "targetStatus": 200,
    "sourceFinalUrl": "https://publisher.example.org/article",
    "targetFinalUrl": "https://brand.example.org/new-guide",
    "observedAnchor": "Guide",
    "observedRel": null,
    "matchCount": 1,
    "errorCode": null,
    "targetErrorCode": null
  },
  "transition": {
    "healthy": true,
    "signature": null,
    "failures": 0,
    "changes": [],
    "warning": false,
    "recovered": false,
    "changed": false,
    "nextDelayMs": 86400000,
    "alertedSignature": null,
    "notification": null
  }
}

ワークシートの手順

監視の時系列を確認する

架空のページとHTTP結果を、保存済みペアの監視と同じ解析・通知ルールで処理した例です。実在サイトの取得、アカウントへの保存、実際の通知送信は行いません。

記入済み記録は例としてのみ使用してください。空の記録には実際の参照元と宛先、UTCの観測時刻、証拠、担当者、再確認結果を記入し、不明な事実は空欄にします。このインシデント表は監視用インポートファイルではありません。インポートには説明されたsourceUrlとtargetUrl列名を使用します。

間隔は実行予定であり、連続した稼働率の測定ではありません。インデックス登録や順位は測定していません。

サーバーのHTMLのみを確認します。JavaScriptのリンク、アクセス拒否、一時的な障害は手動確認が必要な場合があります。インデックス登録や順位は測定しません。

正常なリンクは毎日、問題がある場合は1時間後に再確認します。同じ問題が2回続くとアカウント内に通知。履歴は90日間保存されます。

1アカウント50組まで。追加と期待値の変更を含め、確認リクエストは1日100件まで。手動確認は5分間隔です。

M01 · 正常なリンクの文言が変わる

hrefと宛先は有効なまま、アンカーだけが変わります。アンカーの期待値がなければ2回目も正常で変更通知が発生し、同じ結果の繰り返しでは新しい通知は出ません。

掲載条件と文言を比較し、変更を受け入れるか記録します。

M02 · 403の後にタイムアウト

どちらもリンクの存在を確認できません。UNREACHABLEと宛先200が共通するため、原因が違っても2回目に通知し得ます。後で読めるリンクが得られると回復になります。

参照元のアクセスを調べて再確認します。この要求だけで削除を断定しません。

M03 · 読めたHTMLにリンクがない

読めた2回の応答に期待したhrefがありません。2回目に警告し、静的リンクが戻ると回復通知になります。

復旧依頼の前にHTMLと完全な期待URLを確認します。転送と描画は別に調べます。

M04 · リンクはあるが宛先が壊れている

アンカーは毎回あります。宛先404が2回続くと問題として通知し、宛先200で正常に戻ります。

宛先の管理者に割り当てます。参照元リンクの置き換えが自動的に正解になるわけではありません。

M05 · relの期待値が間違っていた

sponsoredのリンクがfollowの期待値と2回矛盾します。期待値をsponsoredへ直してもページは変わらず、通知状態だけがリセットされます。

条件の訂正を記録し、有料関係の属性を維持します。設定変更を掲載側の修復とは呼びません。

M06 · JavaScriptがリンクを追加する

入力されたスクリプトはブラウザーでアンカーを追加します。静的解析はスクリプト内の文字列を無視し、両方の観測でリンクを見つけません。

描画後の表示とサーバーHTMLを比較します。通知はブラウザー上の欠落を証明しません。

M07 · 最終的な宛先が移動する

元のhrefは同じまま、別の最終URLを経由して正常な宛先に到達します。2回目はリンク消失ではなく変更の通知です。

置き換え先の内容と転送経路を確認します。最終URLはGoogleが選んだ正規URLを示すものではありません。