Verificator de backlink-uri rele: diferențierea instantaneelor în SQLite
Niciun script nu poate declara un link toxic pentru tine. Poate să îți spună care domenii de referință sunt noi, care au dispărut și care par suficient de ciudate pentru a fi citite manual.
Echipa editorială Linkzoid ·
Tabel de severitate pentru domeniile de referință noi
Reguli practice proprii pentru triaj, nu o definiție Google
Nivel
Semnal
Acțiune
Ignorare
Domeniu nou, DR peste 30, anchor text este marca ta sau un URL gol
Loghează și continuă
Verifică
50 sau mai multe domenii noi într-o săptămână de la un TLD pe care nu l-ai țintit
Deschide zece dintre ele
Verifică atent
Exact același anchor text pe 20 sau mai multe domenii noi
Verifică norul de anchor text, găsește sursa
Acționează
Rețea cu aspect plătit sau pagini compromise care indică către tine
Documentează; ia în considerare un fișier disavow doar dacă ai și o acțiune manuală
Așteaptă
Un domeniu a dispărut în această lună
Reverifică după următoarea actualizare lunară
De ce diferențiere în loc de scanare unică
Un singur instantaneu îți spune ce există. O diferențiere îți spune ce s-a schimbat, iar acolo apar problemele.
Google a spus de ani de zile, încă de la lansarea Penguin 4.0 în septembrie 2016 și din nou în actualizarea spam-ului de link-uri din decembrie 2022, că ignoră majoritatea link-urilor spam în loc să le pedepsească. SpamBrain face această treabă. Așa că un val de gunoi este mai degrabă zgomot decât o amenințare, iar diferențierea te salvează în principal de la a reacționa la zgomot.
Păstrează propria istorie. Suitele își suprascriu pe ale lor.
Construiește tabelul de istorie în patru pași
Diferențierea funcționează doar dacă fiecare execuție ajunge în același tabel, în aceeași formă. Acești pași mențin această stare.
01
Creează tabelul o dată
Rulează o instrucțiune create-if-not-exists cu coloanele de care ai nevoie: ziua, domeniul și scorul. Ține-l în script, astfel încât o mașină nouă să reconstruiească același tabel fără pași manuali.
02
Inserează un rând pe domeniu pe zi
Folosește o inserție parametrizată și comită o dată pe execuție. Un singur commit evită ca un crash să lase jumătate de zi în fișier.
03
Protejează-te împotriva unei a doua execuții
Șterge rândurile zilei înainte de inserare, sau adaugă o cheie unică pe zi și domeniu. O re-execuție în aceeași zi va înlocui rândurile în loc să le dubleze.
04
Compară cu ziua precedentă din fișier
Alege cea mai veche dată anterioară cu un filtru max(day), nu data de ieri. Compararea rămâne corectă când o săptămână a fost omisă.
diff.py
Două tabele ar fi mai curate. Unul este suficient pentru o configurație hobby: un rând pe domeniu pe dată de instantaneu.
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')
Depanarea diferențierii
Simptom
Cauză probabilă
Remediu
Sute de 'disparate' peste noapte
Actualizarea indexului a schimbat eșantionul
Compară lunar, nu zilnic
Fiecare domeniu pare nou
Tabelul era gol sau formatul day s-a schimbat
Verifică select distinct day
Coloana DR este toate NULL
N câmpului rând diferă de dr
Afișează un rând brut și ajustează
Duplicări după o re-execuție
Acea zi a fost inserată de două ori
Șterge acea zi mai întâi, sau adaugă o cheie unică
Un prag copiat dintr-un articol de blog este o presupunere despre site-ul cuiva. Un verificator de backlink-uri rele este util doar în măsura limitelor sale, iar propria ta istorie îți spune cum arată normal pentru domeniul tău.
Începe prin a loga câteva luni fără a acționa asupra nimicului. Lasă-l să se stabilizeze. Apoi notează oscilarea săptămânală tipică. Doar după aceea stabilești limitele în tabelul de severitate.
Începe cu o linie de bază
Înregistrează numărul de noi și dispariții pentru fiecare execuție fără a reacționa la ele. Câteva luni de logare liniștită îți oferă o rază care aparține domeniului tău și nimănui altcuiva.
Odată ce linia de bază există, o singură săptămână proastă iese în evidență față de ea, și poți explica diferența fără a ghici. Acesta este întregul punct al liniei de bază.
Alege un singur alarmă pe semnal
Fiecare semnal din tabel primește un prag, un responsabil și o acțiune. Un semnal cu trei alarme este un semnal pe care nimeni nu îl citește, iar alarmele ajung ignorate împreună.
Scrie alarma lângă semnalul său în cod, astfel încât tabelul de pe această pagină și scriptul să nu difere niciodată.
Revizuiește limitele trimestrial
Site-ul tău crește, și normalul său crește la fel. Reverifică limitele la fiecare trei luni și scrie motivul lângă orice modificare, astfel încât istoria să se explice singură mai târziu.
Citirea tabelului de severitate în practică
Tabelul este un ajutor de triaj, nu o judecată. Fiecare rând îți spune unde să te uiți, iar coloana de acțiune te împiedică să apeși pe un fișier disavow în panică.
Lucrează de sus. Majoritatea săptămânilor se termină la Ignorare sau Verificare. Un rând de Verificare începe câteva minute de citire, iar un rând de Verificare atentă începe o revizuire mai lungă a anchor textelor. Nu omite rândurile pentru că a fost o săptămână aglomerată. Un rând omis este săptămâna în care valul trece neobservat.
Eșantionează înainte de a decide
Deschide zece dintre domeniile marcate și citește paginile. Un val care se dovedește a fi un singur scraper de directoare este o problemă diferită de un val de bloguri neînrudite, și doar paginile le disting.
Înregistrează ce ai decis
Păstrează o linie pe decizie: domeniul, nivelul, ce ai verificat și ce ai făcut. Următoarea persoană care citește jurnalul, inclusiv viitorul tău, primește raționamentul fără o ședință.
Un sumar lunar al acestor linii ia puțin timp și face un prim draft bun pentru o revizuire.
Ce nu poate spune acest lucru
Nu poate dovedi că un link te afectează. Nimeni în afara Google nu poate, iar raportul de acțiuni manuale din Search Console este singurul loc unde este menționată o penalizare.
De asemenea, nu poate vedea link-uri mai noi decât ultima actualizare. Pentru dovezi mai proaspete, întreabă persoanele care administrează site-ul care face link-ul, sau citește jurnalele serverului pentru refereri. Notarea noastră despre timing intră în mai multe detalii.
Dacă vrei partea de anchor text, anchor_cloud costă 2 credite și grupează textul în funcție de frecvență, ceea ce este cel mai rapid mod de a identifica un aglomerat de match-uri exacte.
Link-uri care apar între actualizări
Orice mai nou decât ultima actualizare lipsește din ambele părți ale diferențierii. Un link care apare și dispare în interiorul unei ferestre de actualizare nu apare deloc, motiv pentru care comparația ar trebui să ruleze lunar.
Anchor texturi care ți se par greșite
O diferențiere vede domeniul, nu propoziția din jurul link-ului. Două anchor texturi identice pe două pagini diferite pot însemna lucruri foarte diferite, așa că păstrează verificarea anchor textului ca un pas manual separat.
Opțiuni de stocare pentru o configurație hobby
SQLite este cea mai simplă bază de date care răspunde totuși unei întrebări de diferențiere cu un singur query. Trăiește într-un singur fișier, astfel încât se potrivește în repo sau într-un folder de backup fără un server.
Fișierele JSON datate funcționează și ele. Este mai lent de interogat, dar mai ușor de deschis într-un editor de text când ceva pare greșit. În ambele cazuri, copiază stocarea într-un al doilea loc înainte de orice curățare și păstrează copia pentru un trimestru întreg înainte de a șterge orice.
Când un singur fișier este suficient
Un tabel cu o coloană de zi acoperă un singur site timp de ani. Fișierul rămâne mic, iar interogările de pe această pagină nu necesită ajustări.
Când să treci la un server
Odată ce mai multe persoane scriu în aceeași istorie, un fișier pe o singură mașină devine gâtul de sticlă. În acel punct, o bază de date gestionată este alegerea onestă, iar schema rămâne aceeași.
Până atunci, un fișier în repo este cel mai simplu lucru care supraviețuiește unei schimbări de laptop.
Conectarea diferențierii la o job săptămânal
Rulează diff.py chiar după pasul de instantaneu. Afișează numărătoarea și ieși cu un cod non-zero când new depășește o limită pe care ai ales-o, de exemplu 200 într-o săptămână pentru un site mic. Jobul devine roșu, iar GitHub te trimite un email. Simplu.
Alege limita din propria ta istorie. După două luni știi dacă 15 domenii noi pe săptămână este normal sau un spike, și orice număr fix copiat dintr-un articol de blog este o presupunere.
Săptămânile liniștite sunt norma.
Întrebări despre link-uri rele, răspunsite clar
Există un verificator de backlink-uri rele fiabil?
Niciun instrument nu poate eticheta un link ca fiind dăunător cu certitudine, deoarece doar Google știe cum tratează fiecare unul. Un script poate scoate la iveală modele care merită citite: inundații bruște, anchor texturi exacte repetate, TLD-uri ciudate. Tu iei decizia după deschiderea paginilor.
Ar trebui să disavuez ceea ce marchează diferențierea?
Rareori. Google a spus că ignoră în mare măsură link-urile spam, iar un fișier disavow este destinat cazurilor precum o acțiune manuală sau o dezordine de link-uri plătite pe care ai creat-o tu. Documentează mai întâi și verifică Search Console înainte de a trimite ceva.
De câte ori ar trebui să îl rulez?
Instantaneu săptămânal, revizuire lunară. Indexul se reactualizează aproximativ o dată pe lună, așa că o diferențiere zilnică compară în mare parte un tabel cu el însuși. O revizuire lunară se potrivește cu datele și menține zgomodul jos.
Ce coloane ar trebui să păstreze tabelul?
Păstrează ziua, domeniul, DR și o coloană de sursă. Adaugă anchor textul doar dacă extragi și anchor texturi. Mai multe coloane par complete, dar fiecare câmp suplimentar este unul care poate deriva între execuții.
Pot diferenția două suite una față de cealaltă?
Poți compara numărătoarea lor pentru același site, dar cele două rezultate nu se vor potrivi. Rulează diferențierea în interiorul unei singure surse și compară direcția schimbării între surse, aceeași regulă care se aplică peste tot pe acest site.
Ce se întâmplă dacă un domeniu pleacă și apoi se întoarce luna viitoare?
Apare ca disparut și apoi ca nou, ceea ce este zgomot. Numără revenirile separat sau compară trei luni odată, astfel încât un domeniu care dispare pentru o actualizare să nu declanșeze o revizuire.