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 ·

La ricetta in cinque mosse
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.
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.
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.
Scrivi indietro con una data
Memorizza il punteggio e la data odierna in due colonne. Non sovrascrivere mai un buon valore con uno vuoto.
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.
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)
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
| Segnale | Significato | Cosa fa il lavoro |
|---|---|---|
| HTTP 401 | Chiave mancante o errata | Interrompi, avvisa un umano |
| HTTP 402 | I crediti sono esauriti | Interrompi, mantieni i vecchi punteggi, ricarica |
ok è falso | La chiamata non è andata a buon fine | Registra il corpo, riprova alla prossima esecuzione |
| Risultato vuoto per un dominio | Non presente nell'indice | Lascia la cella vuota |

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.