Check my backlink returnerade inget: en feltabell
Ditt verktyg är bara lika stabilt som sin felhantering. Nedan följer de fel som faktiskt inträffar, exakta orsaker och huruvida ett försök igen är rimligt.

Regeln som täcker de flesta fall
Försök igen vid nätverksfel. Försök aldrig igen vid 401 eller 402. Den första typen löser sig på några sekunder; den andra kräver en människa, och att slå på den bara fyller dina loggar.
Varje JSON-svar innehåller ett ok-fält, och autentiserade svar lägger till _credits med anropskostnad och återstående balans. Kontrollera ok i bodyn även när HTTP-statusen ser bra ut.
Retry-tiderna nedan är vår ingenjörsrådgivning, inga dokumenterade gränser. API-dokumentationen vi har publicerar ingen rate limit, så bygg din egen takgräns och håll den blygsam.
Varför 401 och 402 aldrig försöks igen
En 401 är ett nyckelfel, och en 402 är ett balansfel. Inget av dessa löses mellan två försök en sekund apart, så ett försök igen skapar bara brus i dina loggar och inget annat.
Att vässa löser inte heller en 402. Balansen stannar där den är tills någon fyller på den från kontosidan, så det enda användbara svaret är ett tydligt meddelande och en varning till den som äger budgeten.
En 401 förtjänar en titt på header eller key-parametern, och en kontroll att nyckeln inte har bytts ut. Att försöka igen med samma felaktiga nyckel några gånger bevisar ingenting.
En dålig nyckel och en tom balans ser också olika ut i ditt dashboard. Placera dem på separata varningar, så att personen som fyller på inte vaknas av en nyckeltypsned, och personen som roterar nycklar inte blir uppringd för en balansfråga.
Nätverksfel och backoff
En timeout eller en connection reset kan lösas av sig själva, så det är de enda fallen som är värda ett nytt försök. Vänta 1, 2, 4 och sedan 8 sekunder, lägg till lite jitter, och sluta efter det fjärde försöket.
Dessa tidtagningar är vår rådgivning, inte en dokumenterad gräns. Håll din egen takgräns, logga varje retry, och varna när retries ökar, eftersom en ökande retry-takt vanligtvis är det första tecknet på ett upstream-problem.
Håll timeout på din sida explicit, i en namngiven konstant. En implicit standard som ändras vid en library-uppdatering är en vanlig anledning till att ett nightly-jobb börjar misslyckas på bara en maskin.
Övervaga upstream-svartiden samt felhastigheten. En långsam respons som aldrig misslyckas kan fortfarande binda upp dina workers, och en retry-loop gör den fördröjningen värre.
Symtom, orsak, svar
| Symtom | Orsak | Försök igen? | Vad man ska göra |
|---|---|---|---|
| HTTP 401 | Nyckel saknas, stavfel eller återkallad | Nej | Kontrollera header eller key=-värdet, sedan kontosidan |
| HTTP 402 | Krediterna är slut | Nej | Fyll på med USDT (TRC-20) från kontosidan; samma nyckel återupptas |
ok är inte sant på HTTP 200 | Felaktig parameter, t.ex. en URL där ett domännamn ska vara | Nej | Validera indata; skicka example.com, inte https://example.com/page |
| Timeout eller connection reset | Nätverks- eller upstream-blink | Ja, 3 till 4 gånger | Backoff 1, 2, 4, 8 sekunder med jitter |
| Tomt resultat för en ny webbplats | Inte indexerad än; uppdatering är månatlig | Nej | Visa "inte indexerad än" med indexeringsdatumet |
| Siffran skiljer sig från ett annat verktyg | Olika index och en annan DR-formel | Nej | Jämför trender inom ett verktyg, se DR reference |
| Rader slutar vid 50 000 | Pagineringstak | Nej | Se paging notes |
| Balansen minskar snabbare än planerat | Betald åtgärd i en loop, eller ett 3-kredit-anrop på en het väg | n/a | Logga _credits, allow-lista åtgärder |
Innan du skyller på din kod, klistra in den misslyckade URL:en i cURL med samma nyckel. Om det fungerar där, är felet i din klient. Om det misslyckas där också, är svaret i tabellen. Denna kontroll har löst fler ärenden än någon loggsökning.
En felsökningskörning, i ordning
- 1
Reproducera med curl
Ta den misslyckade URL:en från din app och kör den manuellt med samma nyckel. Om curl fungerar, är din kod problemet.
- 2
Försök en gratisåtgärd
overviewpå samma domän kräver ingen nyckel. Om det svarar, är indexet i ordning och problemet ligger i auth eller kredit. - 3
Läs balansen
En 402 är entydig, men ett misslyckat betalt anrop efter en gratis framgång pekar vanligtvis mot kredit eller ett stavfel i nyckeln.
- 4
Kontrollera indata
Lågt fall, ingen scheme, ingen path, ingen avslutande punkt. De flesta
ok-misslyckanden slutar här.

Normalisera domänen innan anropet
De flesta misslyckade anrop börjar i inmatningsrutan, inte i nätverket. Användare klistrar in vad de har kopierat, och din kod måste omvandla det till en bar domän innan API:et ser det.
Ta bort scheme och path
Ta bort scheme, alla paths och query string. En klistrad artikeladress blir till sin värd, och bara värden skickas upstream.
Gör värd till gemener också. Håll rensningen i en funktion, så att samma regel körs i formuläret, i batch-jobbet och i testerna.
Testa rensningen med fem eller sex verkliga klistrade indatap, inklusive en med en avslutande slash och en med en query string. Dessa fall avslöjar buggar som ett rent exempel aldrig visar.
Bestäm en gång vad du ska göra med www.
Välj en regel för www. och applicera den i en enda funktion, så att samma webbplats aldrig slås upp under två stavningar.
Skriv ner regeln bredvid funktionen. Nästa utvecklare som stöter på en vilseledande www kommer då att hitta beslutet, inte en andra åsikt.
Vilken regel du än väljer, håll den i en fil och skriv ett test för den. Testet är dokumentationen av beslutet, och det är kort.
Avvisa vad som inte kan vara en domän
Neka indatap med mellanslag eller tomma etiketter, och visa ett kort meddelande i formuläret. En avvisad sträng kostar ingenting, medan en dålig kostar ett misslyckat anrop och en förvirrad användare.
Avslutande punkter är det udda fallet. Ta bort en i slutet av värden och behandla allt annat som ogiltigt.
Visa avvisningen bredvid fältet, inte som en toast som försvinner. En användare som kan se vad som var fel kan fixa det i ett försök.
Skriv aldrig ut ett rått upstream-fel i gränssnittet. Mappa 401 och 402 till ett generiskt "tjänst otillgänglig" och skicka detaljen till din egen logg och en varning. Besökare kan inte fylla på din balans, och meddelandet får ditt verktyg att se trasigt ut.

Tomma resultat och indexålder
När någon skriver in "check my backlink" i ditt formulär och får inget, är ett tomt svar inte alltid ett fel. Det betyder ofta att domänen är ny, för liten eller helt enkelt inte indexerad än, och skärmen bör säga vilket.
En helt ny webbplats
En webbplats som lanserades förra veckan kan ha inga hänvisande domäner i indexet. Visa "inte indexerad än" tillsammans med indexeringsdatumet, och erbjuda det gratis overview-anropet som en korskontroll.
Cacha inte det tomma svaret för länge. Några timmar är tillräckligt, och nästa ombyggnad kan ta in webbplatsen.
Berätta för besökaren när indexet senast byggdes om, med vanliga ord. Ett datum bredvid ett tomt svar förklarar gapet bättre än ett längre meddelande gör.
En enradig notering i ditt eget UI räcker här. Ingen förväntar sig ett live-index, och en enkel mening bredvid indexeringsdatumet läses som ärlig.
En siffra som skiljer sig från ett annat verktyg
Olika crawlers ser olika delar av webben. Läs DR-siffran som en position inom ett verktyg, och peka läsare till DR reference för formeln.
En kort notering under siffran sparar mer supporttid än någon mängd ursäkter i efterhand.
Om två avläsningar skiljer sig, jämför först antalet hänvisande domäner. DR-formeln är enkel, så de flesta oenigheter handlar om antalet.
Rader som slutar vid 50 000
När en lista slutar vid taket är svaret korrekt för vad API:et tillåter. Märk avskärningen och länka till paging notes istället för att försöka en djupare sida.
Djupare sidor bortom den punkten är inte en retry. De är en annan fråga, och att behandla dem som en är hur en loop körs i timmar.
Håll avskärningen synlig i exporten också, så att en kalkylblad som öppnas om en månad fortfarande visar att listan var begränsad.
Att visa radantalet bredvid tabellen gör en avskärning till en synlig fakta. En läsare som ser 50 000 rader vet att be om en smalare fråga.
Innan retry-koden skickas
- 401 och 402 försöks aldrig igen
- Timeouts försöks igen med backoff och ett fast antal försök
- Varje svar kontrolleras för
ok, oavsett HTTP-status - Indata normaliseras innan anropet, inte efter att det misslyckats
- Upstream-fel skickas till din egen logg, och besökare ser ett generiskt meddelande
- Ett tomt resultat visar indexeringsdatumet istället för en tom skärm
Relaterade frågor
- Kan mina användare skriva in vilken URL som helst i rutan?
- Låt dem, normalisera den sedan själv. Ta bort scheme, path, query string och
www.om du väljer att göra det, gör värd till gemener, och anropa sedan API:et. Upstream förväntar sig en bar domän, så oren indatap är den vanligaste orsaken till ett misslyckat anrop. - Ska jag cacha misslyckanden?
- Cacha ett tomt "inte indexerat" resultat i några timmar, eftersom indexet bara ändras månatligt. Cacha aldrig en 401 eller 402 för länge. Dessa löses i ögonblicket när nyckeln eller balansen fixas, och ett cachat fel skulle dölja fixen.
- Räknas gratisåtgärder mot något?
- De kostar inga krediter. De fyra gratis är
domain,overview,statsochsuggest. Cacha dem ändå, eftersom att vara artig kostar ingenting och håller din egen latens låg.