Sari la conținut
CranSEO
CranSEOÎnregistrare

Un manual lunar pentru un raport despre backlink-uri

Rulează-l o dată pe lună, stochează un instantaneu datat, generează din fișier. Restul paginii prezintă detaliile din spatele acestor trei obiceiuri.

Echipa de cercetare CranSEO ·

Seif deschis cu monede și registre reprezentând metadata și snapshot-urile stocate

Manualul

01

Extrage

Un script programat apelează API-ul și scrie un fișier datat, de exemplu links_2026-10.rds. GitHub Actions sau cronR funcționează ambele.

02

Verifică

Eșuează jobul la HTTP 401 sau HTTP 402 și loghează câmpul de credite. O extragere parțială silențioasă este mai rea decât o oprire zgomotoasă.

03

Congelează

Nu suprascrie niciodată fișierul din luna precedentă. Cu renv și targets, rapoartele vechi pot fi reluate împotriva datelor vechi.

04

Generează

Quarto citește fișierul stocat, nu API-ul. Generarea este astfel gratuită și reproductibilă.

05

Annotează

Adaugă liniile de actualizare datate în grafice, astfel încât o creștere să fie citită în contextul corect.

De ce lunar și nu zilnic

Graficul nostru se reîmprospătează aproximativ o dată pe lună. Un job zilnic returnează aceleași numere.

Rularea mai des nu face un raport mai actual, ci doar mai scump de explicat. Un cititor care vede 30 de puncte identice va presupune că pipeline-ul este defect.

Alege o zi anume în fiecare lună în mod deliberat, ideal o săptămână după ce se stabilizează reîmprospătarea anterioară. Scrie data în numele fișierului, astfel încât programarea în sine să fie documentată.

Alege calendarul mai întâi și lasă raportul să îl urmeze. Un raport care se reconstruiește de fiecare dată când cineva deschide notebook-ul nu are o dată clară deloc, iar asta este greu de apărat într-o revizuire.

An și cheie din alamă ilustrând deciziile de timing și primul rulaj manual

Ce să stochezi pe lângă numere

Jumătate din raport este metadata, așa că stoacheaz-o alături de numere.

Scrie data extragerii, numele acțiunii, parametrii (per, sort, order) și câmpul de credite al răspunsului într-un mic fișier sidecar lângă fiecare instantaneu. După șase luni, când un coleg întreabă de ce octombrie arată diferit de septembrie, acel fișier răspunde în zece secunde în loc de o după-amiază întreagă.

Adaugă commit-ul git al scriptului și versiunile pachetelor din renv. Un raport care nu poate spune ce cod și ce stare a indexului au produs un grafic este o captură de ecran, nu o analiză, indiferent cât de îngrijit arată tibble-ul.

Evenimente Google datate值得 trasate în graficele tale

  1. Penguin 4.0

    Penguin a devenit parte a algoritmului de bază și a funcționat în timp aproape real.

  2. Actualizarea conținutului util

    A început să fie implementată pe 25 august 2022.

  3. Actualizarea de bază din martie 2024

    Anunțată alături de modificările politicii de spam în martie 2024.

  4. Actualizarea de bază din martie 2025

    O altă actualizare largă de bază, implementată în aproximativ două săptămâni.

O structură minimală de targets

Trei targets sunt suficiente când planul rămâne mic.

Un target extrage din API și scrie fișierul datat, unul citește fișierul și construiește tibble-ul, unul generează documentul Quarto. Deoarece doar primul target atinge rețeaua, poți relua pe celelante offline de câte ori dorești și graficul nu se schimbă accidental.

Fixează versiunile pachetelor cu renv, înregistrează informațiile de sesiune în subsolul raportului și păstrează tabelul de praguri de pe pagina de evaluare în bloc în repository alături de cod. Pentru partea de costuri, pagina de buget îți spune cât ar trebui să coste o lună.

Când ceva eșuează, citește mai întâi codul. HTTP 401 înseamnă că cheia este greșită sau lipsește. HTTP 402 înseamnă că s-au epuizat creditele. Orice altceva merită logat în întregime. Analiza detaliată acoperă acele etape, iar exemplul de join este un prim job bun de programat.

Aflarea că un rulaj a mers greșit înainte ca un coleg să o facă

Un raport reproductibil despre backlink-uri care eșuează silențios înșală mai mult decât unul care nu a rulat deloc. Întrebarea reală nu este dacă jobul poate eșua, ci cât de repede află cineva despre asta.

Fă jobul să eșuee zgomotos

Un job programat iese cu un status non-zero când un apel returnează HTTP 401 sau 402, iar programatorul marchează rulajul ca eșuat. Aceasta este cea mai ieftină alertă pe care o ai și nu necesită un serviciu suplimentar.

Extragerile parțiale sunt cazul periculos. Dacă scriptul scrie fișierul după douăzeci din treizeci de chunk-uri, fișierul există și pare bine. Scrie într-un nume temporar și redenumează-l doar la succes.

Trimite un mesaj per eșec

Alege un singur canal pentru eșecuri, cum ar fi un email către proprietarul raportului sau un mesaj în chat-ul echipei. Două canale înseamnă două locuri de verificat și o șansă mai mare ca nimeni să nu se uite la niciunul.

Mesajul ar trebui să numească targetul care a eșuat, codul de status și ora. Tot restul aparține în log.

Verifică dacă outputul este plauzibil

Un rulaj poate reuși și totuși să fie greșit. Compară numărul de rânduri cu cel din luna precedentă și marchează o scădere dincolo de un prag ales în avans.

Verificarea poate fi la fel de simplă ca un interval așteptat. Scopul este să observi un instantaneu semi-gol înainte ca un grafic să ajungă la un client.

Numează un singur proprietar pentru raport

Numează un singur proprietar pentru raport. O alertă fără proprietar este citită de toți și acționată de nimeni.

Proprietarul nu trebuie neapărat să remedieze jobul. Proprietarul trebuie să decidă dacă un raport întârziat este acceptabil și să spună acest lucru în raportul însuși.

Scrie numele proprietarului în antetul manualului și actualizează-l când proprietarul se schimbă. Un manual cu un fost proprietar este un pericol tăcut.

Întrebări despre rularea lunară

Poate cron să ruleze jobul pentru mine?

Da. O intrare cron sau un job CI programat rulează scriptul într-o zi aleasă de tine, iar scriptul scrie fișierul datat. Orice funcționează atâta timp cât cheia provine din depozitul de secrete și statusul de ieșire este onest.

De ce nu să-l rulez zilnic?

Un rulaj zilnic returnează aceleași numere, deoarece graficul de link-uri se reîmprospătează aproximativ o dată pe lună. Doar face raportul să pară defect pentru un cititor care vede treizeci de puncte identice.

Ce se întâmplă dacă cheia nu mai funcționează sau soldul se epuizează la mijlocul lunii?

O cheie greșită sau lipsită returnează HTTP 401, iar un sold gol returnează HTTP 402. Rulajul se oprește la oricare dintre aceste coduri și le numește. Remediază cheia sau reîncarcă din pagina de cont, apoi rulează din nou. Fișierul anterior rămâne neschimbat.

Am nevoie de un server pentru a-l programa?

Nu neapărat. Un runner CI găzduit, cum ar fi GitHub Actions, rulează scriptul la un interval de timp fără mașina ta. cronR poate seta o intrare cron locală dacă vrei jobul pe propriul calculator.

Unde ar trebui să trăiască fișierele snapshot?

Într-un folder din care citește raportul, cu luna în numele fișierului și fără suprascrieri. Ține folderul sub controlul versiunii doar dacă fișierele sunt suficient de mici pentru repository-ul tău și folosește stocarea pe care echipa ta o înțelege deja în rest.

Ce intră în fișierul sidecar?

Data extragerii, numele acțiunii, parametrii cum ar fi per, sort și order, și câmpul de credite al răspunsului. Scriptul ar trebui să scrie aceste valori el însuși, astfel încât nimic să nu depindă de memorie.

Lanț de ancora și inel de fier simbolizând programarea lunară reproductibilă

Alegerea zilei și rularea primului job manual

Momentul și primul rulaj decid dacă programarea se menține. Ambele sunt ușor de greșit în prima lună și ambele sunt ieftine de corectat.

Două decizii, scrise o dată, salvează cele mai multe argumente mai târziu. Prima este ziua. A doua este unde rulează timerul. Ambele aparțin în manual, nu în capul cuiva.

Alege o zi și scrie-o

O zi fixă în lună, cum ar fi prima zi lucrătoare după ce se stabilizează reîmprospătarea, este mai ușor de explicat decât o presupunere de la începutul lunii.

Pune ziua în fișierul de programare însuși, astfel încât timingul să fie parte din cod și nu o aminteală în calendarul cuiva.

Rulează primul job manual

Primul rulaj programat ar trebui să fie unul manual. Rulează scriptul tu însuți, citește logul, compară fișierul cu cel anterior și abia apoi preda timerul.

Primul rulaj testează și depozitul de secrete. O cheie care funcționează pe mașina ta dar lipsește în CI este un motiv comun pentru prima eșec programat.

Păstrează sidecar-ul onest

Fișierul sidecar înregistrează ce a făcut rulajul. Dacă o persoană îl scrie manual, se abate de la rulaj. Fă scriptul să îl scrie și lasă oamenii doar să îl citească.

Un sidecar atins de script este o notă, nu un record, iar raportul ar trebui să citeze recordul.

Compară sidecar-ul cu fișierul o dată pe lună. Dacă numerele din cele două nu coincid, rulajul a eșuat într-un mod pe care scriptul nu l-a observat.

Unde trăiește timerul

Un runner găzduit și o intrare cron locală eșuează în moduri diferite. Un runner găzduit poate fi pus în pauză de setările sale proprii, iar o intrare cron locală se oprește când mașina este în sleep. Verifică pe care ai ales-o și testează timerul o dată cu un interval scurt înainte de cel real.

Indiferent ce alegi, scrie timerul în repository alături de script, astfel încât următoarea persoană să știe unde trăiește jobul.

Fișier de rulaj pentru prima lună

  • Cheie prezentă în depozitul de secrete CI, nu în repository
  • Sold peste cheltuielile așteptate (vezi pagina de buget)
  • Fișier snapshot scris cu luna în nume
  • Fișierul lunii precedente neschimbat
  • Raport generat din fișiere, cu liniile de actualitate trasate