コンテンツへスキップ
SEOBlogBot$100無料獲得

意思決定ツリー

公開前のリンクゲート:ブロック、保留、または通過

下書きがリンクするホストに対して1回の一括呼び出しを行い、その後4つの質問によるツリーを実行します。ツリーは、記事を投稿するか、人間による確認を待つか、停止するかを判断します。

SEOBlogBot研究チーム ·

ローポリスタイルの橋の通路沿いに3つの異なる木製のゲート
命名に関する注記

人々は「Ahrefsバックリンクチェッカー」と入力しますが、意味しているのはAhrefsです。以下のゲートは、ドメイン評価の任意のソースと連携して機能します。ここでは独自のbulk_drアクションを使用しています。この分野の実際のツールにはAhrefs、Semrush、Mozが含まれます。Google検索コンソールでは自分のリンクのみが表示されます。

ゲートが注目する点

ゲートは外部リンクのみを読み取ります。ランキング、トラフィック、または検索コンソールのデータは確認せず、アナリティクスデータも必要としません。

スクリプトはレンダリングされたHTMLからすべての<a href>を取得し、各URLをホストに縮小します。重複を除去し、リストを1回の呼び出しでbulk_drに送信します。ビルドから他に何も出力されません。最大2,000ホストに対して1クレジットで済むため、60件の参照がある記事でもコストは1セント未満です。

Markdownではなく、レンダリングされたHTMLで実行してください。ショートコード、埋め込み、プラグインは入力していないリンクを追加することがあります。訪問者が何を見ているかを確認してください。

設置場所

ゲートは可能な限り遅い段階に配置してください。最適な場所は、CMSまたは静的ジェネレーターが最終HTMLを生成した後、スケジューラの手前にある最後のビルドステップです。どこでも同じ一括呼び出しを使用します。

WordPress

ステータス変更を「スケジュール済み」フックにフックし、そのフック内でゲートを実行します。判定が「通過」を返すまで、記事はスケジュール済みのままにする必要があります。フックは1つ、ルールは1つです。

Hugo

hugo buildの後にステップを追加し、publicフォルダから生成されたHTMLを読み取ります。デプロイステップが実行される前に、ホストリストを一括呼び出しに送信します。

Ghost

投稿がスケジュールされたイベントにWebhookをサブスクライブします。ハンドラは投稿のHTMLからリンクを取得し、同じ呼び出しを行います。これにより、Ghostと静的サイトは同じルールを共有します。

ツリー、1つの質問ずつ

01

評価が0、または行がないホストがありますか?

0とは、インデックスにその参照ドメインが含まれていないことを意味します。これは新規サイトでは通常ですが、権威ある情報源として引用する場合は警告です。質問2に進みます。

02

その0のホストは、テキスト内で指定した情報源ですか?

記事がそれを研究、レポート、または公式ページとして言及している場合は、記事を保留にして編集者に送ってください。脚注ツールやブランド言及の場合は通過します。

03

3つ以上のホストが独自の閾値以下にありますか?

履歴から閾値を選択してください(以下のセクション参照)。1つの記事に3つ以上の低いホストがある場合、それは通常、スクレイピングされたリストまたは貼り付けられたAIドラフトを意味します。保留します。

04

同じホストが5回以上リンクされていますか?

単一の外部ドメインへの繰り返しリンクはアフィリエイトパターンのように見えます。最初の言及に減らしてください。スクリプトが判断できない場合は保留します。

庭でハサミを使って低木を剪定する庭師

ツリーがこの順序で質問する理由

質問は、最もコストの低いシグナルから最も判断を要するものへと進みます。各回答は次の質問が判断すべき範囲を狭めるため、人間が確認する下書きの数が減ります。

この順序は編集者の時間を保護します。明確な理由付きの保留は対応に1分かかりますが、曖昧なフラグは週末には無視されがちです。

まずゼロ、次に文脈

ゼロは最もコストの低いシグナルであるため、最初に来ます。単独ではあまり意味をなしません。次の質問で、そのゼロが重要かどうかを判断します。そのため、ツリーはゼロだけでブロックすることはありません。

インデックスに新規のホストを想像してください。評価は0になり、チームの誰もそれを知らないかもしれません。記事がそれを単に言及しているだけなら、答えは通過です。

閾値を数える前に

単一の弱いホストは通常ノイズです。1つの下書きに複数の弱いホストがある場合、それはパターンを形成し、閾値はそのためのものです。何かを数える前に、履歴から閾値を設定してください。そうすれば、数値に意味が生まれます。

繰り返しは最後に

1つのホストへの繰り返しリンクは、品質の問題よりもスタイルの問題です。品質に関する質問が終了した後に最後に質問してください。繰り返し数だけでは、記事の命運を決定することはめったにありません。

パイプラインでの各終了時の処理

終了コードは提案です。独自のCIにマッピングしてください。
終了意味パイプラインアクション確認者
通過ルール発動なし記事がスケジューラに移動誰も確認しない
保留1つのソフトルールが発動ステータスが「レビュー待ち」に設定され、ホストリストのSlackメッセージが送信される編集者
ブロックAPIエラー401/402またはリストの形式不正ジョブが失敗し、記事は下書きのままパイプラインの所有者

編集者が保留時に確認すべき内容

  • 記事のタイトルと、スケジュールで占めようとしていたスロット。
  • フラグ付きの各ホスト、その評価、および発動したルール。
  • ホストが出現する文、そうすれば誰も下書き全体を検索する必要がありません。
  • スクリプトが判断できなかった場合の1行の理由。
  • 記事を公開するか、ライターに戻すための明確な方法。

他から借りずに閾値を選ぶ

自分の履歴から始めます。満足している30件の公開済み記事を取り上げ、それらの外部リンクホストをbulk_drに1回通します。評価をソートし、10パーセンタイルを見ます。

そのパーセンタイルは理にかなった最初の閾値です。なぜなら、それはすでに受け入れている最も弱い10%をフラグにするからです。私たちの評価は0から100の対数スケールであり、AhrefsのDRとMozのDAは別のスケールです。フォーラムの閾値は移行できません。

サンプルとして30件の記事をリポジトリに保持し、日付を併記してください。これにより、サンプルが変更されたときに閾値を再計算できます。

閾値を四半期ごとにレビューしてください。リンクグラフは成長し、インデックスは約1ヶ月ごとに更新されます。春に8だったホストが、更新後に15になるかもしれません。用語集は、これらの数字の背景にある用語を説明しています。

30行のゲート

shellとjqでのスケッチ。言語は差し替えても、構造は同じです。

bash
HOSTS=$(grep -o 'href="https\?://[^/"]*' post.html | sed 's|.*//||' | sort -u | paste -sd, -)
RES=$(curl -s -H "Authorization: Bearer $SBB_KEY" \
  "https://seoblogbot.com/api.php?action=bulk_dr&domains=$HOSTS")

case $(echo "$RES" | jq -r '.ok') in
  true) ;;
  *) echo "BLOCK: api error"; exit 2 ;;
esac

# inspect the response once and adapt the jq path to its shape
echo "$RES" | jq '.'
作業台に並べられたハンマー、レンチ、ドライバー

ゲート呼び出しが失敗した場合

すべてのエラーが下書きに対する判断ではありません。失敗した呼び出しはジョブの問題であり、以下の3つのHTTPケースには3つの異なる対応が必要です。これらの対応を起動前に文書化してください。誰も夜中にその場で推測すべきではありません。

401はセットアップの問題です

401は、キーが不足しているか間違っていることを意味します。これを記事に対する判断ではなく、壊れたジョブとして扱ってください。記事は下書きのままにし、パイプラインの所有者にメッセージを送ります。

402は予算の問題です

402はクレジットが枯渇したことを意味し、再試行では解決しません。ジョブを停止し、人間にアラートを送ります。アカウントページからチャージし、失敗したバッチを再度実行してください。

形式不正な返信はバグです

JSONが解析できないか、okがfalseの場合、生レスポンスをログに書き込んで停止します。欠落しているフィールドを推測しないでください。推測された評価により、保留すべき記事が通過する可能性があります。

投稿ID、HTTPステータス、時刻を付けて各失敗をログに記録し、同じ障害が静かに繰り返されないようにしてください。

呼び出しだけでなく、結果も確認する

成功したレスポンスは、呼び出しが成功したことを意味します。記事が正しいステータスでスケジュールされたことを証明するものではありません。読み戻してください。ゲートがスケジュール済みを設定した後、ジョブが完了したとカウントする前に、ステータスと公開時刻を確認してください。

そうでないと、ゲートは紙面上は通過しても、CMSが変更を静かにドロップする可能性があります。その読み戻しを同じジョブに書き込んでください。このチェックは安価です。ステータスが一致しない場合は、 loudlyに失敗させてください。

読み戻しは、どのステップがずれたかを示します。ステータスが間違っている場合、ゲートが最終ビルドの前に実行された可能性があります。次のリリースの前に把握してください。

読み戻しの結果を、ゲートの判定の隣にログに保持してください。これら2つを組み合わせることで、その日にゲートとCMSが合意していたかどうかを示すことができます。

ゲートを追加する前にチームが尋ねる質問

Ahrefsバックリンクチェッカーは、このゲートと同じですか?

いいえ。人々はAhrefsを意味してそのフレーズを入力します。このゲートは、APIを通じてリンクデータを読み取り、ブラウザタブではなくパイプライン内で実行するスクリプトです。

ゲートは公開を遅らせますか?

追加コストは、下書きごとにAPIへの1往復です。それが遅すぎると判断する前に、自分のネットワークで測定してください。答えはビルドセットアップに依存するためです。

1日目に閾値をどう選べばよいですか?

上記のセクションの30件のサンプルを使用してください。それまで、判定を記録しステータスを変更しないログ専用モードでゲートを実行してください。

ゲートは編集者を置き換えますか?

いいえ。下書きを通過、保留、ブロックに分類し、編集者が確認する数を減らします。保留がその記事にとって何を意味するかは、人間がまだ決定します。

最終稿ではない下書きでゲートを実行できますか?

可能です。ただし、判定はその時点のリンクのみを記述します。最終HTMLで再度実行してください。後の編集でリンクが追加または削除される可能性があるためです。

ゼロは常に情報源が劣悪であることを意味しますか?

いいえ。ゼロとは、インデックスにそのホストの参照ドメインが含まれていないことを意味します。新規サイトでは通常であり、記事がそのホストを権威ある情報源として提示した場合にのみ警告になります。

私たちの立場

ブロックよりも多く保留する

簡単にブロックするゲートは、3人目のイライラした編集者に切り捨てられます。ブロックはインフラの破綻に留め、ルールのヒットは明確な理由付きの保留にしてください。

  • appealsに1分かかるように、判定とともにホストリストをログに記録してください。
  • 公開後監査を第2のレイヤーとして実行してください。
  • この機能が追加されるきっかけとなった失敗の事後検証を読んでください。