再現可能なバックリンクレポートのための月次ランブック
月1回実行し、日付付きのスナップショットを保存し、ファイルからレンダリングする。ページの残りの部分では、これら3つの習慣の背景にある詳細を説明します。
CranSEOリサーチチーム ·

ランブック
プル
スケジュールされたスクリプトがAPIを呼び出し、日付付きのファイル(例:links_2026-10.rds)を書き込みます。GitHub ActionsやcronRのどちらでも使用可能です。
チェック
HTTP 401またはHTTP 402の場合、ジョブを失敗させ、creditsフィールドをログに記録します。静かな部分的なプルは、大きな停止よりも悪影響です。
フリーズ
前月のファイルを上書きしない。renvとtargetsを使用すれば、古いレポートも古いデータに対して再実行可能である。
レンダリング
QuartoはAPIではなく保存されたファイルを読み取ります。レンダリングはその後無料かつ反復可能になります。
注釈
チャートに日付付きのアップデート行を追加し、急増が適切な文脈で読み取られるようにする。
なぜ日次ではなく月次なのか
当社のグラフは月1回程度更新されます。日次ジョブは同じ数値を返します。
より頻繁に実行してもレポートが最新になるわけではなく、説明のコストが増えるだけです。30個の同一ポイントを目にする読者は、パイプラインに問題があると判断します。
毎月意図的に1日を選び、理想的には前回の更新が落ち着いてから1週間後に設定する。ファイル名に日付を書き込み、スケジュール自体を文書化する。
まずカレンダーを選び、レポートに従わせる。ノートブックを開くたびに再構築されるレポートには明確な日付がなく、レビューで説明するのが難しくなる。

数値以外に何を保存するか
レポートの半分はメタデータであるため、数値と一緒に保存する。
プル日、アクション名、パラメータ(per、sort、order)、およびレスポンスのcreditsフィールドを、各スナップショットの隣にある小さなサイドカーファイルに書き込む。6ヶ月後、同僚が10月が9月と異なる理由を尋ねたとき、そのファイルが午後ではなく10秒で答えを出す。
スクリプトのgitコミットとrenvからのパッケージバージョンを追加する。どのコードとどのインデックス状態がチャートを生み出したかを示せないレポートは、tibbleがどれだけ整っていても、分析ではなくスクリーンショットに過ぎない。
チャートに描画する価値のある日付付きのGoogleイベント
ペンギン4.0
ペンギンはコアアルゴリズムの一部となり、ほぼリアルタイムで機能するようになった。
有益なコンテンツアップデート
2022年8月25日にロールアウトを開始。
2024年3月コアアップデート
2024年3月にスパムポリシーの変更と同時に発表された。
2025年3月コアアップデート
約2週間にわたって展開されたさらなる広範なコアアップデート。
最小限のtargetsレイアウト
計画が小さい場合、3つのターゲットで十分である。
1つのターゲットはAPIからプルして日付付きファイルを書き込み、1つはファイルを読み取ってtibbleを構築し、1つはQuartoドキュメントをレンダリングする。最初のターゲットのみがネットワークにアクセスするため、他のターゲットはオフラインで何度でも再実行でき、チャートが偶然変更されることはない。
renvでパッケージバージョンを固定し、レポートのフッターにセッション情報を記録し、バルクスコアリングページからの閾値テーブルをコードの隣にあるリポジトリに保持する。費用面については、予算ページが月あたりのコストを示している。
何か失敗した場合は、まずコードを読む。HTTP 401はキーが間違っているか不足していることを意味する。HTTP 402はクレジットが枯渇したことを意味する。それ以外はすべて完全にログに記録する価値がある。テardownはそれらのステージをカバーしており、結合例はスケジュールする最初のジョブとして適している。
同僚よりも先に実行の失敗を知る
静かに失敗する再現可能なバックリンクレポートは、実行されなかったレポートよりも誤解を招く。真の問題はジョブが失敗するかどうかではなく、誰がそれをどれくらい早く知るかである。
ジョブを大きく失敗させる
スケジュールされたジョブは、呼び出しがHTTP 401または402を返した場合、非ゼロのステータスで終了し、スケジューラは実行を失敗としてマークする。これが最も安価なアラートであり、追加のサービスは必要ない。
部分的なプルは危険なケースである。スクリプトが30チャンク中20チャンク後にファイルを書き込む場合、ファイルは存在し、正常に見える。一時ファイルに書き込み、成功時のみリネームする。
失敗ごとに1通のメッセージを送信
失敗用のチャンネルを1つ選ぶ(例:レポート所有者へのメールまたはチームチャットへのメッセージ)。2つのチャンネルは2つの確認場所を生み出し、どちらも見逃される可能性が高まる。
メッセージには失敗したターゲット、ステータスコード、時刻を含める。それ以外はログに記録する。
出力が妥当か確認する
実行は成功しても、結果が間違っている可能性がある。行数を前月と比較し、事前に設定した閾値を超える減少をフラグ付けする。
チェックは予想される範囲であるだけでよい。目標は、チャートがクライアントに届く前に半分空のスナップショットに気づくことである。
レポートの所有者を1人指定する
レポートの所有者を1人指定する。所有者のないアラートは全員が読み、誰も行動しない。
所有者はジョブを修正する必要はない。所有者は、遅延したレポートが許容可能かどうかを判断し、レポート自体にそれを明記する必要がある。
所有者の名前をランブックのヘッダーに書き込み、所有者が変更されたら更新する。元々の所有者がいるランブックは静かな危険である。
月次実行に関する質問
cronでジョブを実行できますか?
はい。cronエントリまたはスケジュールされたCIジョブは、あなたが選んだ日にスクリプトを実行し、スクリプトは日付付きファイルを書き込みます。キーがシークレットストアから取得され、終了ステータスが誠実であれば、どちらでも機能します。
なぜ毎日実行しないのか?
バックリンクグラフは月1回程度更新されるため、日次実行は同じ数値を返します。30個の同一ポイントを目にする読者にはレポートが壊れているように見えます。
キーが機能しなくなったり、月中に残高が枯渇したりしたらどうするか?
不正または不足しているキーはHTTP 401を返し、空の残高はHTTP 402を返します。いずれかのコードで実行は停止し、それを明示します。キーを修正するかアカウントページからチャージバックし、再実行する。以前のファイルは影響を受けない。
スケジュールするためにサーバーが必要か?
必ずしも必要ではない。GitHub Actionsなどのホスト型CIランナーは、あなたのマシンなしでタイマーでスクリプトを実行する。cronRは、自分のコンピュータでジョブを実行したい場合にローカルのcronエントリを設定できる。
スナップショットファイルはどこに置くべきか?
レポートが読み取るフォルダに、ファイル名に月を含め、上書きしない形で配置する。ファイルがリポジトリに収まるサイズであればバージョン管理下に置くが、それ以外の場合はチームがすでに信頼しているストレージを使用する。
サイドカーファイルには何を入れるか?
プル日、アクション名、perやsort、orderなどのパラメータ、およびレスポンスのcreditsフィールド。スクリプトがこれらの値を自ら書き込むべきであり、メモリに依存しないようにする。

日の選択と手動での初回ジョブ実行
タイミングと初回実行は、スケジュールが維持されるかどうかを決定する。どちらも最初の月に間違えやすく、正しく実行するのは安価である。
2つの決定を1回書き留めることで、後の議論の大部分を回避できる。1つ目は日付、2つ目はタイマーの実行場所である。両者はランブックに書き、誰かの頭脳に留めないこと。
1日を選び、書き留める
更新が落ち着いた後の最初の営業日など、月の固定された日は、月初の推測よりも説明しやすい。
スケジュールファイル自体に日付を配置し、タイミングを誰かのカレンダーの記憶ではなくコードの一部にする。
初回ジョブを手動で実行する
最初のスケジュール実行は手動で行うべきである。スクリプトを自分で実行し、ログを読み、ファイルを前回のものと比較し、その後でタイマーを渡す。
初回実行はまた、シークレットストアもテストする。あなたのマシンでは機能するがCIでは不足しているキーは、最初のスケジュール失敗の一般的な理由である。
サイドカーを誠実に保つ
サイドカーファイルは実行の内容を記録する。人が手動で書き込むと、実行から乖離する。スクリプトに書き込ませ、人は読むだけにさせる。
スクリプトが触れたことのないサイドカーはメモであり、記録ではない。レポートは記録を引用すべきである。
サイドカーとファイルを月1回比較する。2つの数値が一致しない場合、スクリプトが気づかない方法で実行が失敗したことを意味する。
タイマーの場所
ホスト型ランナーとローカルクロンエントリは異なる方法で失敗する。ホスト型ランナーは独自の設定によって一時停止される可能性があり、ローカルクロンエントリはマシンがスリープ状態になると停止する。どちらを選択したかを確認し、実際のスケジュールの前に短いスケジュールでタイマーを1回テストする。
どちらを選択しても、タイマーをスクリプトの隣にあるリポジトリに書き留め、次の人がジョブの場所を知るようにする。
月初の実行シート
- CIシークレットストアにキーが存在し、リポジトリにはない
- 残高が予想される支出を上回っている(予算ページ参照)
- ファイル名に月を含むスナップショットファイルが書き込まれた
- 前月のファイルが untouched(未変更)
- ファイルからレポートがレンダリングされ、アップデート行が描画された