Vai al contenuto
SEO Tools AI
SEO Tools AIRegistrati

Ricetta

Sincronizza i punteggi dei link da un foglio o n8n

La maggior parte delle directory di strumenti vive in un foglio di calcolo, una base Airtable o un piccolo database. Questa ricetta trasforma un controllo dei backlink in un riempimento di colonne: una richiesta per ogni 2.000 righe.

Team di ricerca SEO Tools AI ·

Lavoratori di carta ritagliata che costruiscono un ponte che collega un archivio a una strada

La ricetta in cinque mosse

01

Esporta i domini

Prendi la colonna del sito web delle tue inserzioni, rimuovi il protocollo e i percorsi, ed elimina i duplicati. I duplicati non costano nulla in più, ma rendono confusa la fase di mappatura.

02

Raggruppa in gruppi da 2.000

bulk_dr accetta fino a 2.000 domini per chiamata. Un foglio da 5.000 righe richiede quindi tre chiamate.

03

Invia, verifica ok

Chiama l'API, leggi il JSON e interrompi se ok è falso. Registra _credits in modo da vedere il saldo dopo ogni esecuzione.

04

Scrivi indietro con una data

Memorizza il punteggio e la data odierna in due colonne. Non sovrascrivere mai un buon valore con uno vuoto.

05

Pianifica una volta al mese

Eseguilo il primo del mese. L'indice si aggiorna circa mensilmente, quindi esecuzioni più frequenti non portano vantaggi.

Scegli cosa avvia il lavoro

Il trigger decide con quale frequenza avvengono le chiamate, quindi scegliendolo prima di costruire la mappatura. Due tipi di avvio coprono quasi tutte le directory.

Una pianificazione il primo del mese è l'opzione più semplice. Si adatta al ritmo dell'indice e nessuno deve ricordare di premere un pulsante.

Una pianificazione per l'aggiornamento mensile

Metti un trigger di pianificazione all'inizio, impostalo sul primo giorno di ogni mese e fallo leggere l'intera tabella delle inserzioni. Ogni esecuzione effettuerà quindi un batch di chiamate bulk_dr, dimensionato in base al numero di righe.

Mantieni la pianificazione anche quando la tabella è piccola. Un lavoro mensile che gira su un foglio piccolo costa un credito e mantiene i punteggi datati e aggiornati.

Un trigger su ogni nuova riga

Supponiamo che le inserzioni arrivino una alla volta, ogni pochi giorni. Un trigger che si attiva per ogni nuova riga è allettante, ma ogni chiamata viene fatturata una volta, quindi una chiamata per riga costa più di un batch mensile.

Se vuoi il punteggio rapidamente, lascia che il flusso della nuova riga scriva un dr vuoto e lascia che l'esecuzione mensile lo compili. La riga ottiene il suo numero senza una chiamata per ogni arrivo.

Se le inserzioni arrivano a raffica, raggruppa le nuove righe in un batch alla fine della settimana. Questo costa una chiamata e il foglio non cambia più solo una volta al mese.

Una data che segna le righe completate

Memorizza dr_checked_on su ogni riga che valuti. Un'esecuzione che inizia con un filtro su quella data salta ciò che è già stato fatto questo mese e non serve una coda separata.

Quando un'esecuzione si interrompe a metà, le righe già timbrate restano timbrate. La prossima esecuzione riprende da dove ha lasciato l'ultima, che è il recupero più economico possibile.

Prima di automatizzare qualsiasi cosa

Esegui il controllo manualmente su cinque inserzioni. Usa l'azione gratuita overview per ciascuna, che non richiede una chiave, e confronta ciò che vedi con ciò che ti aspettavi.

Questo cattura le sorprese comuni in anticipo: un'inserzione che punta a un sottodominio, un prodotto che vive su un percorso di un sito più grande, un dominio che ha fatto redirect la scorsa primavera. Un punteggio appartiene a un dominio, non a un prodotto.

Decidi come il tuo foglio segnala questi casi, ad esempio con una colonna di note che legge shares domain. I lettori perdonano molto più facilmente una nota a piè di pagina rispetto a un punteggio che sembra errato.

Quando le cinque sembrano sane, passa al batch. Il tuo riferimento al campo elenca le colonne e l'esempio di costo mostra quanto costa un'esecuzione.

Una piccola versione Python

Richiede il pacchetto requests. È uno schizzo della forma del lavoro: stampa prima una risposta reale, poi mappa i campi necessari nelle tue colonne.

python
import csv, requests

KEY = "sk_live_..."
BASE = "https://seotoolsai.org/api.php"

rows = list(csv.DictReader(open("listings.csv")))
domains = sorted({r["domain"] for r in rows})

for i in range(0, len(domains), 2000):
    chunk = domains[i:i + 2000]
    r = requests.post(BASE, params={"action": "bulk_dr", "key": KEY},
                      data={"domains": ",".join(chunk)}, timeout=60)
    if r.status_code in (401, 402):
        raise SystemExit(f"stop: HTTP {r.status_code}")
    data = r.json()
    if not data.get("ok"):
        raise SystemExit("api said not ok")
    print(data["_credits"])   # cost and remaining balance
    open(f"raw_{i}.json", "w").write(r.text)
Ingranaggi di carta e nastri trasportatori che ordinano blocchi in gruppi

Fare in Google Sheets o n8n

Sheets può chiamare un URL da Apps Script con UrlFetchApp, e n8n ha un nodo HTTP Request. Entrambi fanno la stessa cosa dello script sopra.

In n8n, metti un trigger di pianificazione all'inizio, poi un nodo che legge il tuo foglio o tabella, poi un passaggio di suddivisione degli elementi che costruisce gruppi da 2.000, poi la HTTP Request. Aggiungi un nodo finale che scrive il punteggio e la data indietro.

Mantieni la chiave nell'archivio credenziali della piattaforma, non nel testo del workflow. I workflow vengono condivisi, copiati e incollati nei forum, e una chiave incollata insieme a loro è denaro speso.

No-code o uno script: quale forma si adatta al tuo team

Entrambe le rotte effettuano la stessa chiamata. La differenza è chi dovrà mantenere il flusso tra un anno e quanto è facile spiegarlo a quella persona.

Scegli la forma che puoi ancora leggere dopo una pausa di diversi mesi. Un flusso intelligente ma incompreso è peggio di uno script semplice che tutti possono seguire.

Un flusso che puoi spiegare al prossimo editor

Un breve flusso n8n con quattro nodi etichettati è facile da consegnare: trigger, leggi, batch, scrivi indietro. Nomina ogni nodo in base a ciò che fa, non all'etichetta predefinita.

Evita di impilare molti rami per i casi limite. Ogni ramo è un posto in più in cui un dominio può ottenere il punteggio sbagliato.

Quando uno script guadagna il suo posto

Uno script ha senso quando l'input è una cartella di file CSV, o quando il lavoro richiede logica che un flusso gestisce in modo goffo. Lo schizzo sopra si adatta a quel caso.

Metti lo script nel controllo versione e mantieni la chiave in una variabile d'ambiente. Uno script che legge la chiave da un file nella stessa cartella è una perdita in attesa di un drive condiviso.

Tutorial che saltano la parte difficile

Molti video mostrano un flusso che funziona al primo tentativo con tre righe. Le inserzioni reali hanno spazi vuoti, duplicati e domini strani, ed è lì che il flusso richiede attenzione.

Costruisci il flusso sulle tue cinque righe di test prima. Se un tutorial non sopravvive a quelle, il tutorial non era mai il lavoro completo.

Quando consegni il flusso a qualcun altro, includi le cinque righe di test come campione. La prossima persona può vedere come appare un'esecuzione corretta prima di toccare i dati reali.

Cosa significano gli errori

Comportamento dell'API e cosa dovrebbe fare un lavoro di sincronizzazione.
SegnaleSignificatoCosa fa il lavoro
HTTP 401Chiave mancante o errataInterrompi, avvisa un umano
HTTP 402I crediti sono esauritiInterrompi, mantieni i vecchi punteggi, ricarica
ok è falsoLa chiamata non è andata a buon fineRegistra il corpo, riprova alla prossima esecuzione
Risultato vuoto per un dominioNon presente nell'indiceLascia la cella vuota
Giardiniere di carta che raddrizza il fusto di una pianta storta in un giardino

Mantieni il foglio pulito tra le esecuzioni

Un lavoro di sincronizzazione è buono quanto il foglio a cui scrive. Alcune abitudini fermano i danni lenti che si accumulano tra un'esecuzione e la successiva.

La maggior parte dei problemi inizia con una modifica innocua: una colonna inserita sopra il punteggio, o una riga copiata che cambia silenziosamente un dominio.

Mantieni le risposte grezze in una scheda separata

Memorizza ogni risposta grezza nella sua scheda separata, o come JSON Lines con una risposta per riga. Questa copia ti permette di ricostruire le colonne visibili senza una seconda chiamata a pagamento.

Una scheda grezza risponde anche alla domanda che un editor pone sei mesi dopo: cosa ha restituito l'API in quella data.

Nomina ogni scheda grezza con la data del batch, in modo che le copie si ordinino in ordine quando scorri indietro tra di esse.

Blocca la riga dell'intestazione

Blocca la riga dell'intestazione e non inserire mai una colonna sopra il punteggio. Una mappatura che punta alla colonna F leggerà i dati sbagliati dopo un'inserzione, e lo farà senza alcun errore.

Nomina le colonne nella mappatura, non per posizione. Un nome sopravvive a un riordinamento, una posizione no.

Conta le righe prima e dopo

Scrivi il conteggio delle righe nel log prima dell'esecuzione e di nuovo dopo. I due numeri dovrebbero differire solo per le righe che intendevi aggiungere, e un divario ti dice che è successo qualcosa di sbagliato.

Ordina il foglio per la colonna del punteggio una volta al mese e guarda le righe in cima e in fondo. Valori strani lì indicano solitamente un dominio mappato all'inserzione sbagliata.

Testa prima su una copia

Duplica il foglio ed esegui il flusso contro la copia prima di toccare quella reale. Una copia costa zero per essere creata.

Una mappatura errata scritta sopra i punteggi live è difficile da annullare, perché i vecchi valori sono spariti. Mantieni la copia fino a quando la prima onesta partita di esecuzioni corrisponde a ciò che ti aspettavi.

Elimina la copia solo dopo che la seconda esecuzione programmata l'ha corrisposta. Due esecuzioni pulite di fila sono un segnale migliore di una sola.

Prima della prima esecuzione live

  • La chiave risiede nell'archivio credenziali della piattaforma o in una variabile d'ambiente, non nel testo del workflow.
  • Una chiamata gratuita overview è stata verificata manualmente contro un'inserzione che conosci.
  • L'esecuzione è stata testata su una copia del foglio, e la copia corrispondeva a ciò che ti aspettavi.
  • Il lavoro scrive la data accanto a ogni punteggio che tocca.
  • Gli stati 401 e 402 fermano il lavoro e inviano un messaggio a una persona.

Domande sulla sincronizzazione

Come evito di pagare due volte se il lavoro si interrompe a metà?

Scrivi la data accanto a ogni punteggio mentre procedi, e fai saltare alla prossima esecuzione le righe già timbrate questo mese. Chunk da 2.000 significano che un crash costa al massimo un credito, quindi il rischio è minimo, ma l'abitudine mantiene il foglio ordinato.

Un non programmatore può configurarlo?

Per lo più sì. Un nodo HTTP Request in n8n o Make richiede solo un URL, una chiave e un elenco. La parte complicata è trasformare la risposta in colonne, quindi fai una chiamata di test e guarda il JSON prima di costruire la mappatura.