コンテンツへスキップ

バックリンクデータをJSON形式で提供:$100の無料クレジット、カード登録不要、Googleアカウントでサインイン。

SEOMasters.dev
SEOMasters.dev新規登録

バックリンク確認で何も返されない場合:エラー表

ツールの信頼性はエラー処理の質にかかっています。以下に、実際に発生する失敗、その正確な原因、そしてリトライが有効かどうかを示します。

さまざまなエラー状態を表すラックに吊るされた4種類の工業用パッドロック

多くのケースに適用されるルール

ネットワーク障害はリトライしてください。401または402にはリトライしないでください。前者は数秒で解決しますが、後者は人間の介入が必要であり、頻繁にリトライするとログが埋まるだけです。

すべてのJSONレスポンスにはokフィールドが含まれており、認証済みリクエストには呼び出しコストと残高を示す_creditsフィールドも追加されます。HTTPステータスが正常に見えても、ボディのokを確認してください。

以下のリトライタイミングはエンジニアリング上のアドバイスであり、文書化された制限ではありません。当APIのドキュメントにはレート制限が公開されていないため、独自の上限を設け、控えめに保ってください。

401と402をリトライしない理由

401はキーの問題、402は残高の問題です。これらは1秒間の間隔でリトライしても解消されず、ログにノイズを追加するだけです。

待機しても402は解消されません。残高はアカウントページからチャージされるまでそのままであり、有効な対応は明確なメッセージと予算担当者へのアラートです。

401の場合はヘッダーやキーパラメータを確認し、キーが置き換えられていないか確認してください。間違ったキーで数回リトライしても何も証明されません。

無効なキーと空の残高はダッシュボードで異なる表示になります。別々のアラートに設定してください。チャージ担当者がキーのタイプミスで目覚めたり、キーローテーション担当者が残高不足で呼び出されたりしないようにします。

ネットワーク障害とバックオフ

タイムアウトや接続リセットは自己解決する可能性があるため、それらだけが再試行する価値があります。1、2、4、8秒待機し、少しジッターを追加し、4回目の試行で停止してください。

これらのタイミングはアドバイスであり、文書化された制限ではありません。独自の上限を設け、すべてのリトライをログに記録し、リトライ率が上昇した場合はアラートを出してください。リトライ率の上昇は通常、アップストリーム問題の最初の兆候です。

タイムアウトは明示的に、名前付き定数として保持してください。ライブラリのアップグレードで変化する暗黙的なデフォルトは、単一のマシンで夜間ジョブが失敗する一般的な原因です。

失敗率だけでなくアップストリームの応答時間も監視してください。失敗しないが低速な応答でもワーカーを占有する可能性があり、リトライループはその遅延を悪化させます。

症状、原因、対応

症状原因リトライ?対応方法
HTTP 401キーの欠落、誤入力、または無効化いいえヘッダーまたはkey=値を確認し、その後アカウントページを確認
HTTP 402クレジットが枯渇しましたいいえアカウントページからUSDT (TRC-20)でチャージしてください。同じキーが再開されます
ok はHTTP 200でtrueではありませんドメインがURLに含まれるなど、パラメータの形式が正しくありませんいいえ入力を検証してください。example.com を送信し、https://example.com/page ではありません
タイムアウトまたは接続リセットネットワークまたはアップストリームの一時的な障害はい、3回から4回ジッター付きで1、2、4、8秒のバックオフ
新規サイトのため結果が空まだインデックスされていません。更新は月1回ですいいえインデックス日付とともに「まだインデックスされていない」を表示
他のツールと数値が異なるインデックスが異なり、DR算出式も異なるなし1つのツール内でトレンドを比較し、DRリファレンスを確認
行数は50,000で制限されるページネーションの上限なしページネーションに関する注記を確認
残高が計画より速く減少するループ内の有料アクション、またはホットパスでの3クレジット呼び出し該当なし_creditsをログに記録し、許可リストアクションを有効化
ヒント: まずcURLでテストすること

コードのせいにする前に、失敗したURLを同じキーでcURLに貼り付けてみてください。cURLで動作すればバグはクライアント側にあります。cURLでも失敗すれば、答えは表にあります。この確認は、ログ検索よりも多くのチケットを解決してきました。

デバッグ実行を順に行う

  1. 1

    curl で再現する

    失敗した URL をアプリから外し、同じキーで手動で実行します。curl が成功すれば、問題はコードにあります。

  2. 2

    無料アクションを試す

    同じドメインでの overview にはキーは不要です。応答があれば、インデックスは正常であり、問題は認証またはクレジットにあります。

  3. 3

    残高を確認する

    402 は明確ですが、無料呼び出しの後に失敗した有料呼び出しは、通常、クレジット不足またはキーのタイプミスを示します。

  4. 4

    入力を確認する

    小文字、スキームなし、パスなし、末尾のドットなし。多くの ok 失敗はここで終わります。

木製の作業台の上で、粗い枝を滑らかな形状にサンディングする手

呼び出し前にドメインを正規化する

失敗した呼び出しの多くはネットワークではなく入力ボックスで始まります。ユーザーはコピーしたものを何でも貼り付け、あなたのコードは API がそれを見る前にそれを単なるドメインに変換する必要があります。

スキームとパスを削除する

スキーム、パス、クエリ文字列を削除します。貼り付けられた記事のアドレスはホストになり、ホストのみがアップストリームに送信されます。

ホストも小文字にします。クリーニングを1つの関数に保持し、フォーム、バッチジョブ、テストのすべてで同じルールが実行されるようにします。

実際の貼り付け入力5〜6個でクリーニングをテストします。末尾のスラッシュとクエリ文字列を含むものが含まれます。これらのケースは、クリーンな例では決して示されないバグを浮き彫りにします。

www. の処理方法を1回だけ決める

www. のルールを1つ選び、1つの関数で適用します。そうすれば、同じサイトが2つの異なるスペルで検索されることはありません。

関数の横にルールを書き留めます。次に迷った www に遭遇する開発者は、2番目の意見ではなく、その決定を見つけることができます。

どのルールを選んでも、それを1つのファイルに保持し、そのためのテストを1つ書きます。テストは決定の記録であり、短いです。

ドメインになりえないものを拒否する

スペースや空のラベルを含む入力を拒否し、フォームに短いメッセージを表示します。拒否された文字列はコストがかかりませんが、悪い入力は失敗した呼び出しと混乱したユーザーを引き起こします。

末尾のドットは例外です。ホストの末尾の1つを削除し、それ以外は無効として扱います。

拒否をトーストではなく、フィールドの横に表示します。ユーザーが何が悪かったかを見れば、1回の試行で修正できます。

ユーザーに表示する内容

インターフェースに生のアップストリームエラーを出力しないでください。401 と 402 を汎用の「サービス利用不可」にマッピングし、詳細を独自のログとアラートに送信します。訪問者はあなたの残高を修正できず、メッセージはあなたのツールが壊れているように見えます。

乾燥した土壌から芽生えた小さな植物の芽と、その近くにあるガーデナーの手

空の結果とインデックスの古さ

誰かがフォームに「check my backlink」と入力して何も得られない場合、空の答えが必ずしもエラーであるとは限りません。それはしばしば、ドメインが新しい、小さすぎる、または単にインデックスに含まれていないことを意味し、画面にはそれを示すべきです。

新しいサイト

先週立ち上げられたサイトは、インデックスに参照元ドメインがない場合があります。「まだインデックス化されていない」とインデックス日付と共に表示し、クロスチェックとして無料の overview 呼び出しを提供します。

その空の回答を長時間キャッシュしないでください。数時間程度で十分です。次の再ビルドでサイトがインデックスされる可能性があります。

インデックスが最後に再構築された日時を、分かりやすい言葉で訪問者に伝えてください。空の回答の横に日付を表示する方が、長いメッセージよりもギャップを明確に説明できます。

独自のUIに1行の注記を添えるだけで十分です。ライブインデックスを期待する人はおらず、インデックス日付の横に簡潔な文章を置くことは誠実さとして受け取られます。

他のツールと一致しない数値

異なるクローラーはウェブの異なる断片を把握します。DRの数値は1つのツールの内での位置として捉え、計算式についてはDRの用語集を参照してください。

数値の下の短い注記は、事後の謝罪よりもサポート時間を大幅に節約します。

2つの数値に差がある場合は、まず参照ドメインの数を比較してください。DRの計算式は単純なので、ほとんどの不一致は数値の違いに起因します。

50,000で制限される行

リストが上限に達した場合、その回答はAPIが許可する範囲内で正しいものです。より深いページを試すのではなく、カットオフをラベル付けし、ページネーションと50kの制限に関する注記にリンクしてください。

その先にあるより深いページは再試行ではありません。それらは異なるクエリであり、それを1つとして扱うことが、何時間もループが実行される原因となります。

エクスポート時にもカットオフを可視化してください。1ヶ月後にスプレッドシートを開いた際にも、リストが制限されていたことが分かるようにします。

テーブルの横に行数を表示することで、カットオフを可視な事実に変えます。50,000行という数字を見た読者は、より限定されたクエリを要求すべきだと理解します。

再試行コードのリリース前

  • 401と402は再試行されません
  • タイムアウトはバックオフと固定数の試行で再試行されます
  • HTTPステータスに関係なく、すべてのレスポンスがokについてチェックされます
  • 入力は失敗した後ではなく、呼び出しの前に正規化されます
  • アップストリームのエラーは独自のログに記録され、訪問者には汎用的なメッセージが表示されます
  • 空の結果では、空白の画面の代わりにインデックス日付が表示されます

関連する質問

ユーザーはボックスに任意のURLを入力できますか?
入力させ、その後自分で正規化してください。スキーム、パス、クエリ文字列、および必要に応じてwww.を削除し、ホストを小文字に変換してからAPIを呼び出します。アップストリームは裸のドメインを期待するため、クリーンでない入力が呼び出し失敗の最も一般的な原因です。
失敗をキャッシュすべきですか?
インデックスは月次でしか変更されないため、「未インデックス」の空の結果を数時間キャッシュしてください。401または402を長時間キャッシュしないでください。それらはキーや残高が修正された瞬間にクリアされるため、キャッシュされたエラーは修正を隠してしまいます。
無料アクションは何かの制限に影響しますか?
クレジットは消費されません。4つの無料アクションはdomain、overview、stats、suggestです。それでもキャッシュしてください。丁寧な対応にはコストがかからず、自身のレイテンシも低く抑えられます。