Check my backlink leverde niets op: een foutentabel
Je tool is alleen zo stabiel als zijn foutafhandeling. Hieronder staan de fouten die daadwerkelijk voorkomen, de exacte oorzaak en of een retry zinvol is.

De regel die de meeste gevallen dekt
Probeer netwerkfouten opnieuw. Probeer 401 of 402 nooit opnieuw. De eerste soort lost zichzelf binnen enkele seconden op; de tweede vereist een mens en het blijft hameren vult alleen je logs.
Elk JSON-antwoord bevat een ok veld, en geauthenticeerde antwoorden voegen _credits toe met de kosten van de call en het resterende saldo. Controleer ok in de body, zelfs als de HTTP-status er goed uitziet.
De retry-tijdschema's hieronder zijn ons engineering advies, geen gedocumenteerde limieten. De API-documentatie die we hebben publiceert geen rate limit, dus bouw je eigen plafond en houd het bescheiden.
Waarom 401 en 402 nooit opnieuw worden geprobeerd
Een 401 is een sleutelprobleem en een 402 is een saldo probleem. Geen van beide lost op tussen twee pogingen die een seconde uit elkaar liggen, dus een retry voegt alleen ruis toe aan je logs en niets anders.
Wachten lost een 402 ook niet op. Het saldo blijft waar het is totdat iemand het oplaadt via de accountpagina, dus de enige nuttige reactie is een duidelijke boodschap en een melding aan degene die het budget beheert.
Een 401 verdient een blik op de header of de key parameter, en een controle dat de sleutel niet is vervangen. De verkeerde sleutel een paar keer opnieuw proberen bewijst niets.
Een verkeerde sleutel en een leeg saldo zien er ook anders uit in je dashboard. Zet ze op aparte alerts, zodat de persoon die oplaadt niet wordt gewekt door een typefout in de sleutel, en de persoon die sleutels roteert niet wordt gebeld voor een saldo.
Netwerkfouten en backoff
Een time-out of een verbinding reset kan vanzelf oplossen, dus dat zijn de enige gevallen die het proberen waard zijn. Wacht 1, 2, 4 en daarna 8 seconden, voeg een beetje jitter toe en stop na de vierde poging.
Die tijdschema's zijn ons advies, geen gedocumenteerde limiet. Houd je eigen plafond aan, log elke retry en alerteer wanneer retries toenemen, omdat een stijgend retry percentage meestal het eerste teken is van een probleem in de upstream.
Houd de time-out aan jouw kant expliciet, in een benoemde constante. Een impliciete standaard die verandert met een library upgrade is een veelvoorkomende reden waarom een nightly job op slechts één machine begint te falen.
Volg de upstream responstijd evenals het foutpercentage. Een trage respons die nooit faalt, kan nog steeds je workers vastzetten, en een retry loop maakt die vertraging erger.
Symptoom, oorzaak, respons
| Symptoom | Oorzaak | Opnieuw proberen? | Wat te doen |
|---|---|---|---|
| HTTP 401 | Sleutel ontbreekt, verkeerd getypt of ingetrokken | Nee | Controleer de header of de key= waarde, en daarna de accountpagina |
| HTTP 402 | Credit is opgebruikt | Nee | Laad op in USDT (TRC-20) vanaf de accountpagina; dezelfde sleutel gaat door |
ok is niet waar op HTTP 200 | Foute parameter, zoals een URL waar een domein hoort | Nee | Valideer input; stuur example.com, niet https://example.com/page |
| Time-out of verbinding reset | Netwerk of upstream piek | Ja, 3 tot 4 keer | Backoff 1, 2, 4, 8 seconden met jitter |
| Leeg resultaat voor een nieuwe site | Nog niet in de index; refresh is maandelijks | Nee | Toon "nog niet geïndexeerd" met de indexdatum |
| Getal verschilt van een andere tool | Andere index en een andere DR formule | Nee | Vergelijk trends binnen één tool, zie DR reference |
| Rijen stoppen bij 50.000 | Paginatie plafond | Nee | Zie paging notes |
| Saldo daalt sneller dan gepland | Betaalde actie in een lus, of een 3-credit call op een hot path | n.v.t. | Log _credits, allow-list acties |
Voordat je je code de schuld geeft, plak de mislukte URL in cURL met dezelfde sleutel. Als het daar werkt, is de bug in je client. Als het daar ook faalt, is het antwoord in de tabel. Deze check heeft meer tickets opgelost dan elke log zoekopdracht.
Een debug run, in volgorde
- 1
Reproduceer met curl
Haal de mislukte URL uit je app en voer hem met de hand uit met dezelfde sleutel. Als curl werkt, is je code het probleem.
- 2
Probeer een gratis actie
overviewop hetzelfde domein vereist geen sleutel. Als het antwoordt, is de index in orde en zit het probleem in auth of credit. - 3
Lees het saldo
Een 402 is ondubbelzinnig, maar een mislukte betaalde call na een gratis succes wijst meestal op credit of een typefout in de sleutel.
- 4
Controleer de input
Kleine letters, geen scheme, geen path, geen trailing dot. De meeste
okfouten eindigen hier.

Normaliseer het domein voordat je de call doet
De meeste mislukte calls beginnen in de input box, niet in het netwerk. Gebruikers plakken wat ze hebben gekopieerd, en je code moet dat omzetten in een plat domein voordat de API het ziet.
Verwijder het scheme en de path
Verwijder het scheme, elke path en de query string. Een geplakte artikel adres wordt zijn host, en alleen de host gaat upstream.
Maak de host ook lowercase. Houd de cleaning in één functie, zodat dezelfde regel loopt in het formulier, in de batch job en in de tests.
Test de cleaning met vijf of zes echte geplakte inputs, waaronder één met een trailing slash en één met een query string. Die gevallen onthullen de bugs die een schoon voorbeeld nooit laat zien.
Bepaal één keer wat je met www. doet.
Kies één regel voor www. en pas deze toe in één functie, zodat dezelfde site nooit onder twee schrijfwijzen wordt opgezocht.
Schrijf de regel neer naast de functie. De volgende developer die een stray www tegenkomt, vindt dan de beslissing, niet een tweede mening.
Welke regel je ook kiest, houd hem in één bestand en schrijf er één test voor. De test is het record van de beslissing, en het is kort.
Wijs af wat geen domein kan zijn
Wijs input af met spaties of lege labels, en toon een korte boodschap in het formulier. Een afgewezen string kost niets, terwijl een slechte een mislukte call en een verwarde gebruiker kost.
Trailing dots zijn het vreemde geval. Verwijder één aan het einde van de host en behandel alles anders als ongeldig.
Toon de afwijzing naast het veld, niet als een toast die verdwijnt. Een gebruiker die kan zien wat er mis was, lost het in één keer op.
Print nooit een ruwe upstream fout in de interface. Map 401 en 402 naar een generieke "service unavailable" en stuur de details naar je eigen log en een alert. Bezoekers kunnen je saldo niet oplossen, en de boodschap laat je tool kapot lijken.

Lege resultaten en de index leeftijd
Wanneer iemand 'check my backlink' in je formulier typt en niets krijgt, is een leeg antwoord niet altijd een fout. Het betekent vaak dat het domein nieuw is, te klein of gewoon nog niet in de index, en het scherm moet zeggen welke.
Een gloednieuwe site
Een site die vorige week is gelanceerd, kan geen verwijzende domeinen in de index hebben. Toon 'nog niet geïndexeerd' samen met de indexdatum, en bied de gratis overview call aan als cross-check.
Cache dat lege antwoord niet te lang. Een paar uur is genoeg, en de volgende rebuild kan de site erin brengen.
Vertel de bezoeker wanneer de index voor het laatst is herbouwd, in gewone woorden. Een datum naast een leeg antwoord verklaart de kloof beter dan een langere boodschap.
Een eenregelige noot in je eigen UI is hier genoeg. Niemand verwacht een live index, en een gewone zin naast de indexdatum leest als eerlijk.
Een getal dat niet overeenkomt met een andere tool
Verschillende crawlers zien verschillende delen van het web. Lees de DR figuur als een positie binnen één tool, en wijs lezers naar de DR reference voor de formule.
Een korte noot onder het getal bespaart meer support tijd dan welke verontschuldiging ook achteraf.
Als twee metingen verschillen, vergelijk dan eerst de telling van verwijzende domeinen. De DR formule is eenvoudig, dus de meeste meningsverschillen komen neer op de telling.
Rijen die stoppen bij 50.000
Wanneer een lijst stopt bij het plafond, is het antwoord correct voor wat de API toestaat. Label de cutoff en link de paging notes in plaats van te proberen een dieper pagina.
Diepere pagina's voorbij dat punt zijn geen retry. Ze zijn een andere query, en ze als één te behandelen is hoe een lus uren kan draaien.
Houd de cutoff zichtbaar in de export ook, zodat een spreadsheet die een maand later wordt geopend nog steeds laat zien dat de lijst was afgekapt.
Het tonen van het aantal rijen naast de tabel maakt een cutoff tot een zichtbaar feit. Een lezer die 50.000 rijen ziet, weet een smalere vraag te stellen.
Voordat de retry code shipping gaat
- 401 en 402 worden nooit opnieuw geprobeerd
- Time-outs retryen met backoff en een vast aantal pogingen
- Elk antwoord wordt gecontroleerd op
ok, ongeacht de HTTP status - Input wordt genormaliseerd voordat de call wordt gedaan, niet nadat deze faalt
- Upstream fouten gaan naar je eigen log, en bezoekers zien een generieke boodschap
- Een leeg resultaat toont de indexdatum in plaats van een leeg scherm
Gerelateerde vragen
- Kunnen mijn gebruikers elke URL in de box typen?
- Laat ze, normaliseer het dan zelf. Verwijder het scheme, de path, query string en
www.als je kiest om te, lowercase de host, en roep pas de API aan. De upstream verwacht een plat domein, dus ongereinigde input is de meest voorkomende oorzaak van een mislukte call. - Moet ik fouten cache?
- Cache een leeg "niet geïndexeerd" resultaat voor een paar uur, omdat de index alleen maandelijks verandert. Cache een 401 of 402 nooit lang. Die lossen op zodra de sleutel of het saldo is opgelost, en een geforceerde fout zou de oplossing verbergen.
- Tellen gratis acties mee?
- Ze kosten geen credits. De vier gratis zijn
domain,overview,statsensuggest. Cache ze toch, omdat beleefdheid niets kost en je eigen latency laag houdt.