Tabela ważności

Narzędzie do sprawdzania złych linków zwrotnych: porównanie zrzutów w SQLite

Żaden skrypt nie może oznaczyć linku jako toksycznego dla Ciebie. Może jednak wskazać, które domeny odsyłające są nowe, które zniknęły i które wyglądają na podejrzane na tyle, by przejrzeć je ręcznie.

Kamienny vault z glinianymi tabliczkami i mosiężną cyrklą mierzącą punkty danych

Tabela ważności dla nowych domen odsyłających

Nasze własne zasady heurystyczne do kwalifikacji, a nie definicja Google
PoziomSygnałDziałanie
IgnorujNowa domena, DR powyżej 30, kotwica to Twoja marka lub czysty URLZaloguj i przejdź dalej
Spójrz uważnie50 lub więcej nowych domen w tygodniu z jednej domeny najwyższego poziomu (TLD), której nie celowałeśOtwórz dziesięć z nich
Spójrz bardzo uważnieTa sama kotwica dokładnie pasująca do frazy na 20 lub więcej nowych domenachSprawdź chmurę kotwic, znajdź źródło
DziałajSieć wyglądająca na płatną lub zainfekowane strony wskazujące na CiebieDokumentuj; rozważ plik disavow tylko jeśli masz również karę ręczną
PoczekajDomena zniknęła w tym miesiącuSprawdź ponownie po kolejnym miesięcznym odświeżeniu

Dlaczego różnica (diff), a nie jednorazowe skanowanie

Pojedynczy zrzut mówi Ci, co jest obecne. Różnica (diff) mówi Ci, co się zmieniło, a to właśnie tam pojawiają się problemy.

Google mówiło od lat, od premiery Penguin 4.0 we wrześniu 2016 roku oraz ponownie w grudniowej aktualizacji spamu linkowego w 2022 roku, że głównie ignoruje spamowe linki, a nie karze za nie. SpamBrain wykonuje tę pracę. Zalew śmieciów to więc częściej hałas niż zagrożenie, a różnica (diff) oszczędza Ci głównie przed reagowaniem na hałas.

Buduj własną historię. Pakiety nadpisują swoje.

Zbuduj tabelę historii w czterech krokach

Różnica (diff) zadziała tylko wtedy, gdy każde uruchomienie trafi do tej samej tabeli, w tym samym kształcie. Te kroki to zapewniają.

01

Utwórz tabelę raz

Uruchom instrukcję create-if-not-exists z kolumnami, których potrzebujesz: dzień, domena i wynik. Zostaw to w skrypcie, aby nowy komputer mógł odtworzyć tę samą tabelę bez ręcznego kroku.

02

Wstaw jeden wiersz na domenę na dzień

Użyj zparametryzowanego wstawienia i zatwierdź raz na uruchomienie. Pojedyncze zatwierdzenie zapobiega pozostawieniu połowy dnia w pliku w przypadku awarii.

03

Chroń przed drugim uruchomieniem

Usuń wiersze z danego dnia przed wstawieniem lub dodaj klucz unikalny dla dnia i domeny. Ponowne uruchomienie w tym samym dniu zastąpi wtedy wiersze, zamiast je podwajać.

04

Porównaj z poprzednim dniem na dysku

Wybierz najwcześniejszą datę z filtrem max(day), a nie wczorajszą datę. Porównanie pozostanie poprawne, gdy tydzień zostanie pominięty.

diff.py

Dwie tabele byłyby bardziej uporządkowane. Jedna wystarczy do konfiguracji hobbystycznej: wiersz na domenę na datę zrzutu.

python
import json, sqlite3, sys, datetime
db = sqlite3.connect('links.db')
db.execute('create table if not exists snap(day text, dom text, dr int)')
rows = json.load(open(sys.argv[1]))
day = datetime.date.today().isoformat()
db.executemany('insert into snap values (?,?,?)',
               [(day, r.get('domain'), r.get('dr')) for r in rows])
db.commit()
prev = db.execute('select max(day) from snap where day < ?', (day,)).fetchone()[0]
if prev:
    new = db.execute('select dom from snap where day=? except select dom from snap where day=?', (day, prev)).fetchall()
    gone = db.execute('select dom from snap where day=? except select dom from snap where day=?', (prev, day)).fetchall()
    print(len(new), 'new,', len(gone), 'gone')

Rozwiązywanie problemów z różnicą (diff)

ObjawPrawdopodobna przyczynaNaprawa
Setki „zniknięć” w ciągu jednej nocyOdświeżenie indeksu zamieniło próbkęPorównuj miesięcznie, a nie dziennie
Każda domena wygląda na nowąTabela była pusta lub format day się zmieniłSprawdź select distinct day
Kolumna DR ma wszystkie wartości NULLNazwa pola wiersza różni się od drWydrukuj jeden surowy wiersz i dostosuj
Duplikaty po ponownym uruchomieniuTen sam dzień został wstawiony dwukrotnieNajpierw usuń ten dzień lub dodaj klucz unikalny
Liczba poniżej totalPaginacja zakończyła się wcześniejNapraw pętlę w instrukcji Actions
Ogrodnik obserwujący paprocie za pomocą lupy, aby porównać wzorce wzrostu

Wybór progów na podstawie własnej historii

Próg skopiowany z posta na blogu to zgadnięcie dotyczące czyjejś innej strony. Narzędzie do sprawdzania złych linków jest tak użyteczne, jak jego limity, a Twoja własna historia mówi Ci, jak wygląda norma dla Twojej domeny.

Zacznij od logowania przez kilka miesięcy bez podejmowania działań. Pozwól się ustabilizować. Następnie zapisz typowe wahania tygodniowe. Dopiero potem ustaw limity w tabeli ważności.

Zacznij od punktu odniesienia

Zapisuj liczbę nowych i znikniętych domen w każdym uruchomieniu bez reagowania na nie. Kilka miesięcy cichego logowania daje Ci zakres, który należy do Twojej domeny i nikogo innego.

Gdy punkt odniesienia istnieje, jeden zły tydzień rzuca się w oczy na jego tle, a różnicę możesz wyjaśnić bez zgadywania. W tym właśnie polega sens punktu odniesienia.

Wybierz jeden alarm na sygnał

Każdy sygnał w tabeli otrzymuje jeden próg, jednego właściciela i jedno działanie. Sygnał z trzema alarmami to sygnał, którego nikt nie czyta, a alarmy kończą się ignorowane razem.

Napisz alarm obok jego sygnału w kodzie, aby tabela na tej stronie i skrypt nigdy się nie różniły.

Przejrzyj limity co kwartał

Twoja strona rośnie, a wraz z nią rośnie jej norma. Sprawdzaj limity co trzy miesiące i zapisuj powód obok każdej zmiany, aby historia sama się wyjaśniała później.

Strażnik latarni morskiej skanujący horyzont teleskopem i kotwicą na stole warsztatowym

Czytanie tabeli ważności w praktyce

Tabela to narzędzie do kwalifikacji, a nie wyrok. Każdy wiersz mówi Ci, gdzie szukać, a kolumna działania chroni Cię przed sięganiem po plik disavow w panice.

Pracuj od góry. Większość tygodni kończy się na Ignoruj lub Spójrz. Wiersz Spójrz zaczyna kilka minut czytania, a wiersz Spójrz bardzo uważnie zaczyna dłuższą recenzję kotwic. Nie pomijaj wierszy, ponieważ tydzień był busy. Pominięty wiersz to tydzień, w którym powódka pozostaje niezauważona.

Próbuj przed podjęciem decyzji

Otwórz dziesięć oznaczonych domen i przeczytaj strony. Zalew, który okazuje się być jednym skanerem katalogów, to inny problem niż zalew niepowiązanych blogów, a tylko strony pozwalają je rozróżnić.

Zapisz, co zdecydowałeś

Zachowaj jeden wiersz na decyzję: domena, poziom, co sprawdziłeś i co zrobiłeś. Następna osoba czytająca dziennik, w tym Ty w przyszłości, otrzyma uzasadnienie bez spotkania.

Miesięczne podsumowanie tych wierszy zajmuje mało czasu i stanowi dobry pierwszy szkic przeglądu.

Czego to nie może Ci powiedzieć

Nie może udowodnić, że link Ci szkodzi. Nikt poza Google nie może tego zrobić, a jedyne miejsce, w którym stwierdzona jest kara, to raport kar ręcznych w Search Console.

Nie widzi również linków młodszych niż ostatnie odświeżenie. Po świeższe dowody zapytaj osoby zarządzające stroną odsyłającą lub przeczytaj logi serwera pod kątem referrerów. Nasz notatka o czasie idzie głębiej.

Jeśli chcesz stronę kotwic, anchor_cloud kosztuje 2 kredyty i grupuje tekst według częstotliwości, co jest najszybszym sposobem na wykrycie skupiska dokładnie pasujących fraz.

Linki pojawiające się między odświeżeniami

Wszystko, co młodsze niż ostatnie odświeżenie, brakuje po obu stronach różnicy (diff). Link, który pojawia się i znika wewnątrz jednego okna odświeżenia, w ogóle się nie pokazuje, dlatego porównanie powinno być przeprowadzane miesięcznie.

Kotwice, które wydają Ci się nieprawidłowe

Różnica (diff) widzi domenę, nie zdanie wokół linku. Dwie identyczne kotwice na dwóch różnych stronach mogą oznaczać bardzo różne rzeczy, więc traktuj sprawdzanie kotwic jako osobny krok ręczny.

Wybory dotyczące przechowywania dla konfiguracji hobbystycznej

SQLite to najprostsza baza danych, która nadal odpowiada na pytanie różnicy (diff) jednym zapytaniem. Żyje w jednym pliku, więc mieści się w repozytorium lub folderze kopii zapasowej bez serwera.

Pliki JSON z datą też działają. Wolniej się je zapytuje, ale łatwiej otworzyć w edytorze tekstu, gdy coś wygląda źle. W każdym razie skopiuj magazyn do drugiego miejsca przed jakimkolwiek czyszczeniem i zachowaj kopię przez pełny kwartał przed usunięciem czegokolwiek.

Kiedy jeden plik wystarczy

Jedna tabela z kolumną dnia obejmuje pojedynczą stronę przez lata. Plik pozostaje mały, a zapytania na tej stronie nie wymagają dostrajania.

Kiedy przenieść się do serwera

Gdy kilka osób zapisuje do tej samej historii, plik na jednej maszynie staje się wąskim gardłem. W tym momencie zarządzana baza danych jest uczciwym wyborem, a schemat pozostaje ten sam.

Do tego czasu plik w repozytorium to najprostsza rzecz, która przetrwa zmianę laptopa.

Podłączenie różnicy (diff) do zadania tygodniowego

Uruchom diff.py tuż po kroku zrzutu. Wypisz liczby i zakończ kodem niezerowym, gdy new przekroczy limit, który wybrałeś, powiedzmy 200 w tygodniu dla małej strony. Zadanie stanie się czerwone, a GitHub wyśle Ci e-mail. Proste.

Wybierz limit na podstawie własnej historii. Po dwóch miesiącach wiesz, czy 15 nowych domen w tygodniu to norma, czy spike, a dowolna stała liczba skopiowana z posta na blogu to zgadywanie.

Ciche tygodnie to norma.

Pytania o złe linki, odpowiedziane prosto

Czy istnieje niezawodne narzędzie do sprawdzania złych linków zwrotnych?
Żadne narzędzie nie może z pewnością oznaczyć linku jako szkodnego, ponieważ tylko Google wie, jak traktuje każdy z nich. Skrypt może ujawnić wzorce warte przeczytanie: nagłe zalewy, powtarzające się dokładnie pasujące kotwice, dziwne domeny TLD. Ty podejmujesz decyzję po otwarciu stron.
Czy powinienem disavowować to, co oznaczy różnica (diff)?
Rzadko. Google powiedziało, że w dużej mierze ignoruje linki spamowe, a plik disavow jest przeznaczony na przypadki takie jak kara ręczna lub bałagan z linkami płatnymi, który sam stworzyłeś. Najpierw zdokumentuj, a następnie sprawdź Search Console przed przesłaniem czegokolwiek.
Jak często powinienem go uruchamiać?
Zrzut co tydzień, przegląd miesięczny. Indeks odświeża się około raz w miesiącu, więc dzienna różnica (diff) porównuje głównie tabelę samą ze sobą. Przegląd miesięczny pasuje do danych i zmniejsza hałas.
Które kolumny powinna zachować tabela?
Zachowaj dzień, domenę, DR i kolumnę źródła. Dodaj kotwicę tylko jeśli pobierasz też kotwice. Więcej kolumn wydaje się dokładnych, ale każde dodatkowe pole to kolejne, które może ulec rozjechaniu między uruchomieniami.
Czy mogę porównać ze sobą dwa pakiety?
Możesz porównać ich liczby dla tej samej strony, ale wyniki nie będą się zgadzać. Uruchom różnicę (diff) w ramach jednego źródła i porównaj kierunek zmian między źródłami, ta sama zasada, która obowiązuje wszędzie na tej stronie.
Co jeśli domena odejdzie, a następnie wróci w następnym miesiącu?
Pokaże się jako zniknięta, a następnie jako nowa, co jest hałasem. Licz powroty osobno lub porównuj trzy miesiące naraz, aby domena, która wypada na jedno odświeżenie, nie wywołała przeglądu.