Vérification de mon backlink a retourné rien : un tableau d'erreurs
Votre outil n'est aussi fiable que sa gestion des erreurs. Ci-dessous, les défaillances qui se produisent réellement, leur cause exacte et s'il est judicieux de relancer.

La règle qui couvre la plupart des cas
Relancez les erreurs réseau. Ne relancez jamais un 401 ou un 402. Le premier se résout de lui-même en quelques secondes ; le second nécessite une intervention humaine, et le surcharger ne remplit que vos logs.
Chaque réponse JSON comporte un champ ok, et celles qui sont authentifiées ajoutent _credits avec le coût de l'appel et le solde restant. Vérifiez ok dans le corps de la réponse même si le statut HTTP semble correct.
Les délais de relance ci-dessous sont nos conseils d'ingénierie, pas des limites documentées. La documentation de l'API que nous détenons ne publie pas de limite de débit, donc établissez votre propre plafond et gardez-le modeste.
Pourquoi les 401 et 402 ne sont jamais relancés
Un 401 est un problème de clé, et un 402 est un problème de solde. Aucun des deux ne se résout entre deux tentatives espacées d'une seconde, donc une relance ajoute du bruit dans vos logs et rien d'autre.
Attendre ne résout pas non plus un 402. Le solde reste tel quel jusqu'à ce que quelqu'un le recharge depuis la page du compte, donc la seule réaction utile est un message clair et une alerte à la personne qui gère le budget.
Un 401 mérite un examen de l'en-tête ou du paramètre clé, et une vérification que la clé n'a pas été remplacée. Relancer la même clé erronée plusieurs fois ne prouve rien.
Une clé invalide et un solde vide se présentent également différemment dans votre tableau de bord. Mettez-les sur des alertes séparées, afin que la personne qui recharge ne soit pas réveillée pour une faute de frappe sur la clé, et que celle qui rotate les clés ne soit pas alertée pour un problème de solde.
Erreurs réseau et backoff
Un timeout ou une réinitialisation de connexion peuvent se résoudre d'eux-mêmes, ce sont donc les seuls cas méritant une nouvelle tentative. Attendez 1, 2, 4 puis 8 secondes, ajoutez un peu de jitter, et arrêtez après la quatrième tentative.
Ces délais sont nos conseils, pas une limite documentée. Gardez votre propre plafond, loggez chaque relance, et alertez lorsque le nombre de relances augmente, car un taux de relance croissant est généralement le premier signe d'un problème en amont.
Gardez le timeout de votre côté explicite, dans une constante nommée. Une valeur par défaut implicite qui change avec une mise à jour de bibliothèque est une raison courante pour laquelle un job nocturne commence à échouer sur une seule machine.
Surveillez également le temps de réponse en amont ainsi que le taux d'échec. Une réponse lente qui ne rate jamais peut toujours bloquer vos workers, et une boucle de relance aggrave ce ralentissement.
Symptôme, cause, réponse
| Symptôme | Cause | Relancer ? | Que faire |
|---|---|---|---|
| HTTP 401 | Clé manquante, mal tapée ou révoquée | Non | Vérifiez l'en-tête ou la valeur key=, puis la page du compte |
| HTTP 402 | Les crédits sont épuisés | Non | Rechargez en USDT (TRC-20) depuis la page du compte ; la même clé reprend |
ok n'est pas vrai sur HTTP 200 | Mauvais paramètre, par exemple une URL là où un domaine est attendu | Non | Validez l'entrée ; envoyez example.com, pas https://example.com/page |
| Timeout ou réinitialisation de connexion | Piqûre de réseau ou en amont | Oui, 3 à 4 fois | Backoff 1, 2, 4, 8 secondes avec jitter |
| Résultat vide pour un nouveau site | Pas encore dans l'index ; actualisation mensuelle | Non | Affichez "pas encore indexé" avec la date d'indexation |
| Le nombre diffère d'un autre outil | Index différent et formule DR différente | Non | Comparez les tendances au sein d'un seul outil, voir référence DR |
| Les lignes s'arrêtent à 50 000 | Plafond de pagination | Non | Voir notes sur la pagination |
| Le solde baisse plus vite que prévu | Action payée en boucle, ou appel de 3 crédits sur un chemin critique | n/a | Loggez _credits, autorisez les actions |
Avant de blâmer votre code, collez l'URL défaillante dans cURL avec la même clé. Si cela fonctionne là-bas, le bug est dans votre client. Si cela échoue aussi là-bas, la réponse est dans le tableau. Cette vérification a résolu plus de tickets que n'importe quelle recherche dans les logs.
Une exécution de débogage, dans l'ordre
- 1
Reproduire avec curl
Prenez l'URL défaillante hors de votre application et exécutez-la à la main avec la même clé. Si curl fonctionne, votre code est le problème.
- 2
Essayez une action gratuite
overviewsur le même domaine ne nécessite pas de clé. Si cela répond, l'index est correct et le problème réside dans l'authentification ou le crédit. - 3
Lire le solde
Un 402 est sans ambiguïté, mais un appel payé qui échoue après un succès gratuit pointe généralement vers le crédit ou une faute de frappe dans la clé.
- 4
Vérifiez l'entrée
Minuscule, sans schéma, sans chemin, sans point final. La plupart des échecs
okse terminent ici.

Normalisez le domaine avant l'appel
La plupart des appels échoués commencent dans la boîte de saisie, pas dans le réseau. Les utilisateurs collent ce qu'ils ont copié, et votre code doit transformer cela en un domaine nu avant que l'API ne le voie.
Supprimez le schéma et le chemin
Supprimez le schéma, tout chemin et la chaîne de requête. Une adresse d'article collée devient son hôte, et seul l'hôte va en amont.
Mettez également l'hôte en minuscule. Gardez le nettoyage dans une seule fonction, afin que la même règle s'applique dans le formulaire, dans le job par lots et dans les tests.
Testez le nettoyage avec cinq ou six entrées collées réelles, y compris une avec un slash final et une avec une chaîne de requête. Ces cas révèlent les bugs qu'un exemple propre ne montre jamais.
Décidez une fois quoi faire avec www.
Choisissez une règle pour www. et appliquez-la dans une seule fonction, afin qu'un même site ne soit jamais recherché sous deux orthographes.
Écrivez la règle à côté de la fonction. Le prochain développeur qui rencontrera un www errant trouvera alors la décision, pas un deuxième avis.
Quelle que soit la règle que vous choisissez, gardez-la dans un seul fichier et écrivez un seul test pour elle. Le test est la trace de la décision, et il est court.
Rejetez ce qui ne peut pas être un domaine
Refusez les entrées avec des espaces ou des étiquettes vides, et affichez un message court dans le formulaire. Une chaîne rejetée ne coûte rien, tandis qu'une mauvaise coûte un appel échoué et un utilisateur confus.
Les points finaux sont le cas étrange. Supprimez un point à la fin de l'hôte et traitez tout le reste comme invalide.
Affichez le rejet à côté du champ, pas comme une notification toast qui disparaît. Un utilisateur qui voit ce qui ne va pas le corrige en un essai.
N'imprimez jamais une erreur brute en amont dans l'interface. Mappez les 401 et 402 à un "service indisponible" générique et envoyez le détail à votre propre log et à une alerte. Les visiteurs ne peuvent pas réparer votre solde, et le message donne l'impression que votre outil est cassé.

Résultats vides et âge de l'index
Lorsque quelqu'un saisit "vérifiez mon backlink" dans votre formulaire et ne reçoit rien, une réponse vide n'est pas toujours une erreur. Cela signifie souvent que le domaine est nouveau, trop petit ou simplement pas encore dans l'index, et l'écran devrait le dire.
Un site tout nouveau
Un site lancé la semaine dernière peut n'avoir aucun domaine référençant dans l'index. Affichez "pas encore indexé" avec la date d'indexation, et proposez l'appel gratuit overview comme contre-vérification.
Ne mettez pas cette réponse vide en cache pendant longtemps. Quelques heures suffisent, et la prochaine reconstruction peut inclure le site.
Indiquez au visiteur quand l'index a été reconstruit pour la dernière fois, en mots simples. Une date à côté d'un résultat vide explique mieux l'écart qu'un message plus long.
Une note d'une ligne dans votre propre interface suffit ici. Personne ne s'attend à un index en temps réel, et une phrase simple à côté de la date d'indexation se lit comme honnête.
Un nombre qui diffère d'un autre outil
Différents crawlers voient différentes parties du web. Lisez le chiffre DR comme une position au sein d'un seul outil, et dirigez les lecteurs vers la référence DR pour la formule.
Une courte note sous le chiffre fait gagner plus de temps de support que n'importe quelle excuse après coup.
Si deux lectures diffèrent, comparez d'abord les comptes de domaines référençant. La formule DR est simple, donc la plupart des désaccords se résument au compte.
Les lignes qui s'arrêtent à 50 000
Lorsqu'une liste s'arrête au plafond, la réponse est correcte pour ce que l'API permet. Étiquetez le seuil et liez les notes sur la pagination au lieu d'essayer une page plus profonde.
Les pages plus profondes au-delà de ce point ne sont pas une relance. Ce sont une requête différente, et les traiter comme une seule est la façon dont une boucle tourne pendant des heures.
Gardez le seuil visible dans l'export également, afin qu'une feuille de calcul ouverte un mois plus tard montre toujours que la liste était limitée.
Afficher le nombre de lignes à côté du tableau transforme un seuil en un fait visible. Un lecteur qui voit 50 000 lignes sait qu'il doit poser une question plus précise.
Avant que le code de relance ne soit livré
- Les 401 et 402 ne sont jamais relancés
- Les timeouts se relaacent avec un backoff et un nombre fixe de tentatives
- Chaque réponse est vérifiée pour
ok, quel que soit le statut HTTP - L'entrée est normalisée avant l'appel, pas après son échec
- Les erreurs en amont vont à votre propre log, et les visiteurs voient un message générique
- Un résultat vide affiche la date d'indexation au lieu d'un écran vide
Questions connexes
- Mes utilisateurs peuvent-ils taper n'importe quelle URL dans la boîte ?
- Laissez-les faire, puis normalisez-la vous-même. Supprimez le schéma, le chemin, la chaîne de requête et
www.si vous choisissez de le faire, mettez l'hôte en minuscule, et seulement ensuite appelez l'API. L'en amont attend un domaine nu, donc une entrée non nettoyée est la cause la plus courante d'un appel échoué. - Devrais-je mettre en cache les échecs ?
- Mettez en cache un résultat vide "pas indexé" pendant quelques heures, car l'index ne change que mensuellement. Ne mettez jamais en cache un 401 ou un 402 pendant longtemps. Ceux-ci se résolvent dès que la clé ou le solde est corrigé, et une erreur mise en cache masquerait la correction.
- Les actions gratuites comptent-elles contre quelque chose ?
- Elles ne coûtent aucun crédit. Les quatre gratuites sont
domain,overview,statsetsuggest. Mettez-les quand même en cache, car être poli ne coûte rien et maintient votre propre latence faible.