Przejdź do treści

Dane o linkach zwrotnych w formacie JSON: $100 darmowego kredytu, bez karty, logowanie przez Google.

SEOMasters.dev
SEOMasters.devZarejestruj się

Narzędzie do backlinków zwróciło puste wyniki: tabela błędów

Twoje narzędzie jest tak stabilne, jak jego obsługa błędów. Poniżej znajdziesz błędy, które faktycznie występują, ich dokładne przyczyny oraz informacje o tym, czy ponowienie próby ma sens.

Cztery różne typy przemysłowych kłódek wiszących na stojaku reprezentujących różne stany błędów

Zasada pokrywająca większość przypadków

Ponawiaj próby w przypadku błędów sieciowych. Nigdy nie ponawiaj prób przy kodach 401 lub 402. Pierwszy przypadek rozwiązuje się sam w ciągu kilku sekund; drugi wymaga interwencji człowieka, a nadmierne wysyłanie żądań tylko zaśmieca logi.

Każda odpowiedź JSON zawiera pole ok, a odpowiedzi uwierzytelnione zawierają additionally _credits z kosztem wywołania i pozostałym saldem. Sprawdzaj pole ok w ciele odpowiedzi nawet wtedy, gdy status HTTP wygląda poprawnie.

Poniższe czasy ponawiania prób to nasza porada inżynieryjna, a nie udokumentowane limity. Dokumentacja API, którą posiadamy, nie publikuje limitu częstości żądań, więc wyznacz własny próg i utrzymuj go na rozsądnym poziomie.

Dlaczego kodów 401 i 402 nie ponawiamy

Kod 401 oznacza problem z kluczem, a 402 – problem z saldem. Żaden z tych przypadków nie rozwiązuje się sam w odstępie jednej sekundy między próbami, więc ponowienie próby tylko wprowadza szum do logów.

Czekanie również nie rozwiązuje problemu z kodem 402. Saldo pozostaje niezmienione do momentu doładowania go ze strony konta, więc jedyną przydatną reakcją jest wyświetlenie jasnej wiadomości i alertu do osoby odpowiedzialnej za budżet.

Przypadek 401 wymaga sprawdzenia nagłówka lub parametru klucza oraz upewnienia się, że klucz nie został zmieniony. Wielokrotne ponawianie próby z tym samym niepoprawnym kluczem nic nie wnosi.

Nieprawidłowy klucz i puste saldo wyglądają inaczej w Twoim panelu. Ustaw osobne alerty, aby osoba doładowująca konto nie była budzona z powodu literówki w kluczu, a osoba odpowiedzialna za rotację kluczy nie była powiadamiana o problemach z saldem.

Usterki sieci i mechanizm backoff

Przekroczenie limitu czasu lub reset połączenia mogą zostać naprawione automatycznie, dlatego tylko w tych przypadkach warto podjąć kolejną próbę. Odczekaj 1, 2, 4, a następnie 8 sekund, dodaj niewielki jitter i zakończ operację po czwartej próbie.

Podane czasy to nasza rekomendacja, a nie udokumentowany limit. Utrzymaj własny próg, loguj każdą ponowną próbę i ustaw alert, gdy liczba retry wzrośnie, ponieważ rosnąca liczba ponownych prób jest zwykle pierwszym sygnałem problemu po stronie dostawcy.

Utrzymuj limit czasu po swojej stronie jako jawną, nazwaną stałą. Domyślna wartość ukryta w bibliotece, która zmienia się podczas aktualizacji, to częsty powód, dla którego zadanie wykonywane w nocy zaczyna zawodzić tylko na jednej maszynie.

Obserwuj zarówno czas odpowiedzi dostawcy, jak i wskaźnik błędów. Wolna odpowiedź, która nie generuje błędów, może nadal blokować Twoje wątki, a pętla retry pogarsza ten spadek wydajności.

Objaw, przyczyna, reakcja

ObjawPrzyczynaRetry?Co zrobić
HTTP 401Klucz nieznaleziony, wpisany błędnie lub unieważnionyNieSprawdź nagłówek lub wartość key=, a następnie stronę konta
HTTP 402Kredyt został wyczerpanyNieDoładuj w USDT (TRC-20) ze strony konta; klucz zostaje wznowiony
ok nie jest prawdą przy statusie HTTP 200Nieprawidłowy parametr, np. URL zamiast domenyNieZweryfikuj dane wejściowe; podaj example.com, a nie https://example.com/page
Przekroczenie czasu oczekiwania lub zerwanie połączeniaChwila awarii sieci lub serwera upstreamTak, 3 do 4 razyZastosuj backoff: 1, 2, 4, 8 sekund z jitterem
Pusty wynik dla nowej witrynyJeszcze nie zaindeksowana; odświeżanie następuje raz w miesiącuNieWyświetl komunikat „jeszcze nie zaindeksowana” wraz z datą indeksowania
Liczba różni się od wyniku innego narzędziaInny indeks i inna formuła DRNiePorównuj trendy w ramach jednego narzędzia, zobacz odniesienie do DR
Wiersze kończą się na 50 000Limit paginacjiNieZobacz uwagi dotyczące paginacji
Saldo spada szybciej niż planowanoPłatna akcja w pętli lub wywołanie kosztujące 3 kredyty w krytycznej ścieżcen/aLoguj _credits, zdefiniuj listę dozwolonych akcji
Wskazówka: najpierw przetestuj za pomocą cURL

Zanim obwinisz swój kod, wklej niepoprawny URL do cURL z tym samym kluczem. Jeśli tam zadziała, błąd jest po stronie Twojego klienta. Jeśli nie zadziała, odpowiedź znajdziesz w tabeli. To sprawdzenie rozwiązało więcej zgłoszeń niż jakiekolwiek przeszukiwanie logów.

Uruchomienie debugowania, krok po kroku

  1. 1

    Odtworzenie błędu za pomocą curl

    Wyjmij niepoprawny URL z aplikacji i uruchom go ręcznie z tym samym kluczem. Jeśli curl zadziała, problem jest w Twoim kodzie.

  2. 2

    Wypróbuj darmową akcję

    overview na tej samej domenie nie wymaga klucza. Jeśli zwraca wynik, indeks jest poprawny, a problem leży w autoryzacji lub kredytach.

  3. 3

    Sprawdź saldo

    Błąd 402 jest jednoznaczny, ale niepowodzenie płatnego wywołania po udanej darmowej operacji zwykle wskazuje na brak kredytów lub literówkę w kluczu.

  4. 4

    Sprawdź dane wejściowe

    Małe litery, bez schematu, bez ścieżki, bez kropki na końcu. Większość niepowodzeń ok kończy się właśnie tutaj.

Ręce szlifujące szorstką gałąź na gładki kształt na drewnianym stole roboczym

Znormalizuj domenę przed wywołaniem

Większość nieudanych wywołań zaczyna się w polu danych wejściowych, a nie w sieci. Użytkownicy wklejają wszystko, co skopiowali, a Twój kod musi zamienić to na samą domenę zanim API ją zobaczy.

Usuń schemat i ścieżkę

Usuń schemat, dowolną ścieżkę i ciąg zapytania. Wklejony adres artykułu zamienia się na jego hosta, a tylko host jest przesyłany dalej.

Zamień host na małe litery. Zachowaj czyszczenie w jednej funkcji, aby ta sama reguła działała w formularzu, w zadaniu wsadowym i w testach.

Przetestuj czyszczenie na pięciu lub sześciu rzeczywistych danych wejściowych, w tym jednym z ukośnikiem na końcu i jednym z ciągiem zapytania. Te przypadki ujawniają błędy, których nie pokaże czysty przykład.

Zdecyduj raz, co zrobić z www.

Wybierz jedną regułę dla www. i zastosuj ją w jednej funkcji, aby ta sama strona nigdy nie była wyszukiwana pod dwoma różnymi zapisami.

Zapisz regułę obok funkcji. Następny programista, który napotka przypadkowe www, znajdzie decyzję, a nie drugą opinię.

Niezależnie od wybranej reguły, trzymaj ją w jednym pliku i napisz do niej jeden test. Test jest zapisem decyzji i jest krótki.

Odrzuć to, co nie może być domeną

Odrzuć dane z spacjami lub pustymi etykietami i pokaż krótkią wiadomość w formularzu. Odrzucony ciąg nic nie kosztuje, podczas gdy błędny kosztuje nieudane wywołanie i zdezorientowanego użytkownika.

Kropki na końcu to wyjątkowy przypadek. Usuń jedną kropkę na końcu hosta i traktuj wszystko inne jako nieprawidłowe.

Pokaż odrzucenie obok pola, a nie jako znikający komunikat toast. Użytkownik, który widzi, co było nie tak, naprawi to w jednej próbie.

Co pokazać użytkownikowi

Nigdy nie wyświetlaj surowego błędu upstream w interfejsie. Przemapuj 401 i 402 na ogólne "usługa niedostępna" i wyślij szczegóły do własnego logu i alertu. Odwiedzający nie naprawią Twojego salda, a komunikat sprawi, że Twoje narzędzie będzie wyglądać na zepsute.

Mały pączek rośliny wyłaniający się z suchej ziemi z ręką ogrodnika w pobliżu

Puste wyniki i wiek indeksu

Gdy ktoś wpisze check my backlink w formularzu i otrzyma pusty wynik, pusta odpowiedź nie zawsze jest błędem. Często oznacza to, że domena jest nowa, zbyt mała lub po prostu nie jest jeszcze w indeksie, a ekran powinien to wyjaśniać.

Całkowicie nowa strona

Strona uruchomiona w zeszłym tygodniu może nie mieć domen odsyłających w indeksie. Pokaż 'nie zaindeksowano jeszcze' wraz z datą indeksu i zaoferuj darmowe wywołanie overview jako kontrolę.

Nie buforuj tego pustego wyniku przez długi czas. Kilka godzin wystarczy, a kolejne przebudowanie może dodać stronę do indeksu.

Poinformuj odwiedzającego, kiedy indeks był ostatnio przebudowany, prostymi słowami. Data obok pustego wyniku wyjaśnia lukę lepiej niż dłuższa wiadomość.

Wystarczy jednowierszowa notatka w Twoim UI. Nikt nie oczekuje żywego indeksu, a zwykłe zdanie obok daty indeksu brzmi uczciwie.

Liczba, która nie zgadza się z innym narzędziem

Różne crawle widzą różne fragmenty sieci. Traktuj wynik DR jako pozycję w ramach jednego narzędzia i wskaż czytelnikom tłumaczenie pola DR dla formuły.

Krótka notatka pod liczbą oszczędzi więcej czasu wsparcia niż jakiekolwiek przeprosiny po fakcie.

Jeśli dwa odczyty się różnią, porównaj najpierw liczbę domen odsyłających. Formuła DR jest prosta, więc większość rozbieżności sprowadza się do tej liczby.

Wiersze zatrzymujące się na 50 000

Gdy lista zatrzymuje się na limicie, odpowiedź jest poprawna dla tego, co pozwala API. Oznacz punkt odcięcia i podlinkuj notatki o paginacji zamiast próbować głębszej strony.

Głębsze strony po tym punkcie nie są ponowną próbą. Są to inne zapytanie, a traktowanie ich jako jednego to sposób, w jaki pętla może działać godzinami.

Zachowaj widoczność punktu odcięcia również w eksporcie, aby arkusz otwarty miesiąc później nadal pokazywał, że lista była ograniczona.

Pokazanie liczby wierszy obok tabeli zamienia punkt odcięcia w widoczny fakt. Czytelnik, który widzi 50 000 wierszy, wie, że powinien zadać węższe pytanie.

Przed wysłaniem kodu ponownych prób

  • 401 i 402 nie są ponawiane
  • Przekroczenia czasu oczekiwania są ponawiane z wykładniczym opóźnieniem i stałą liczbą prób
  • Każda odpowiedź jest sprawdzana pod kątem ok, niezależnie od statusu HTTP
  • Dane wejściowe są normalizowane przed wywołaniem, a nie po jego niepowodzeniu
  • Błędy upstream trafiają do Twojego własnego logu, a odwiedzający widzą ogólny komunikat
  • Pusty wynik pokazuje datę indeksu zamiast pustego ekranu

Powiązane pytania

Czy moi użytkownicy mogą wpisać dowolny URL do pola?
Pozwól im, a następnie znormalizuj go samodzielnie. Usuń schemat, ścieżkę, ciąg zapytania i www. jeśli wybierzesz, zamień host na małe litery, a dopiero potem wywołaj API. Upstream oczekuje samej domeny, więc nieoczyszczone dane wejściowe są najczęstszą przyczyną nieudanego wywołania.
Czy powinienem buforować błędy?
Buforuj pusty wynik "nie zaindeksowano" przez kilka godzin, ponieważ indeks zmienia się tylko raz w miesiącu. Nigdy nie buforuj 401 lub 402 przez długi czas. Te błędy znikają natychmiast po naprawieniu klucza lub salda, a zbuforowany błąd mógłby ukryć naprawę.
Czy darmowe akcje liczą się do czegoś?
Nie kosztują kredytów. Cztery darmowe to domain, overview, stats i suggest. Nadal je buforuj, ponieważ bycie upróżnym nic nie kosztuje i utrzymuje niskie opóźnienia własne.