Rezept
Link-Scores aus einer Tabelle oder n8n synchronisieren
Die meisten Tool-Verzeichnisse liegen in einer Tabelle, einer Airtable-Basis oder einer kleinen Datenbank. Dieses Rezept verwandelt eine Backlink-Prüfung in das Ausfüllen einer Spalte: eine Anfrage pro 2.000 Zeilen.
SEO Tools AI Forschungsteam ·

Das Rezept in fünf Schritten
Exportieren Sie die Domains
Nehmen Sie die Spalte mit den Websites Ihrer Einträge, entfernen Sie Protokoll und Pfade und löschen Sie Duplikate. Duplikate kosten nichts extra, machen aber den Mapping-Schritt unübersichtlich.
In Gruppen zu je 2.000 aufteilen
bulk_dr akzeptiert bis zu 2.000 Domains pro Aufruf. Ein Blatt mit 5.000 Zeilen erfordert daher drei Aufrufe.
Senden, auf OK prüfen
Rufen Sie die API auf, lesen Sie das JSON und stoppen Sie, wenn ok falsch ist. Protokollieren Sie _credits, damit Sie den Kontostand nach jedem Lauf sehen.
Mit einem Datum zurückschreiben
Speichern Sie die Bewertung und das heutige Datum in zwei Spalten. Überschreiben Sie einen guten Wert niemals durch einen leeren.
Einmal im Monat planen
Führen Sie es am ersten des Monats aus. Der Index ändrt sich etwa monatlich, häufigeres Ausführen bringt nichts.
Wählen Sie den Start des Jobs
Der Trigger entscheidet darüber, wie oft die Aufrufe erfolgen, also wählen Sie ihn, bevor Sie das Mapping aufbauen. Zwei Startmethoden decken fast jedes Verzeichnis ab.
Ein Zeitplan für den ersten des Monats ist die einfachste Option. Er passt zum Rhythmus des Index, und niemand muss sich an einen Knopf erinnern.
Ein Zeitplan für die monatliche Aktualisierung
Setzen Sie einen Schedule-Trigger an den Anfang, legen Sie ihn auf den ersten Tag jedes Monats fest und lassen Sie ihn die gesamte Listing-Tabelle lesen. Jeder Lauf erzeugt dann einen Batch von bulk_dr-Aufrufen, der der Zeilenanzahl entspricht.
Behalten Sie den Zeitplan auch bei kleinen Tabellen bei. Ein monatlicher Job, der auf einem kleinen Blatt ausgeführt wird, kostet ein Credit und hält die Scores mit Datum aktuell.
Ein Trigger bei jeder neuen Zeile
Angenommen, Einträge kommen einzeln, alle paar Tage. Ein Trigger, der bei jeder neuen Zeile feuert, ist verlockend, aber jeder Aufruf wird einzeln abgerechnet, daher kostet ein Aufruf pro Zeile mehr als ein Batch für den Monat.
Wenn Sie den Score schnell benötigen, lassen Sie den New-Row-Flow ein leeres dr schreiben und den monatlichen Lauf diesen Wert auffüllen. Die Zeile erhält ihre Zahl ohne Aufruf bei jeder Ankunft.
Wenn Einträge in Wellen ankommen, fassen Sie die neuen Zeilen am Ende der Woche zu einem Batch zusammen. Das kostet einen Aufruf, und das Blatt ändert sich nicht nur einmal im Monat.
Ein Datum, das fertige Zeilen markiert
Speichern Sie dr_checked_on in jeder Zeile, die Sie bewerten. Ein Lauf, der mit einem Filter nach diesem Datum beginnt, überspringt, was diesen Monat bereits erledigt ist, und es wird keine separate Warteschlange benötigt.
Wenn ein Lauf mitten drin stoppt, bleiben die bereits gestempelten Zeilen gestempelt. Der nächste Lauf setzt dort an, wo der letzte aufgehört hat – das ist die günstigste Wiederherstellung.
Bevor Sie automatisieren
Führen Sie die Prüfung zunächst manuell an fünf Einträgen durch. Nutzen Sie die kostenlose Aktion overview für jeden, die keinen Key benötigt, und vergleichen Sie das Ergebnis mit Ihren Erwartungen.
So fangen Sie häufige Überraschungen früh ab: Ein Eintrag, der auf eine Subdomain verweist, ein Produkt, das sich in einem Pfad einer größeren Website befindet, eine Domain, die letzten Frühling umgeleitet wurde. Eine Bewertung gehört zu einer Domain, nicht zu einem Produkt.
Entscheiden Sie, wie Ihre Tabelle diese Fälle markiert, z. B. mit einer Notizspalte, die shares domain lautet. Leser verzeihen einen Fußnote viel eher als eine scheinbar falsche Bewertung.
Wenn die fünf Einträge plausibel aussehen, gehen Sie zum Batch über. Ihre Feldreferenz listet die Spalten auf, und das Kostenbeispiel zeigt, was ein Lauf kostet.
Eine kleine Python-Version
Benötigt das Paket requests. Es ist ein Entwurf für die Struktur des Jobs: Drucken Sie zunächst eine echte Antwort aus, ordnen Sie dann die benötigten Felder Ihren eigenen Spalten zu.
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)
In Google Sheets oder n8n umsetzen
Sheets können eine URL über Apps Script mit UrlFetchApp aufrufen, und n8n verfügt über einen HTTP Request Node. Beide erledigen das Gleiche wie das obige Skript.
Legen Sie in n8n einen Schedule-Trigger an den Anfang, dann einen Node, der Ihr Sheet oder Ihre Tabelle liest, dann einen Schritt zum Aufteilen von Items, der Gruppen zu je 2.000 bildet, dann den HTTP Request. Fügen Sie einen finalen Node hinzu, der die Bewertung und das Datum zurückschreibt.
Bewahren Sie den Key im Credential-Store der Plattform auf, nicht im Workflow-Text. Workflows werden geteilt, kopiert und in Foren eingefügt, und ein Key, der mitkopiert wird, ist ausgegebene Geldmenge.
No-Code oder Skript: Welche Form passt zu Ihrem Team
Beide Wege führen zum selben Aufruf. Der Unterschied liegt darin, wer den Ablauf in einem Jahr warten muss und wie einfach es ist, ihn dieser Person zu erklären.
Wählen Sie die Form, die Sie auch nach einer Pause von mehreren Monaten noch lesen können. Ein cleverer Ablauf, den niemand versteht, ist schlechter als ein einfaches Skript, das jeder nachvollziehen kann.
Ein Ablauf, den Sie dem nächsten Bearbeiter erklären können
Ein kurzer n8n-Flow mit vier beschrifteten Nodes ist leicht zu übergeben: Trigger, lesen, Batch, zurückschreiben. Benennen Sie jeden Node nach seiner Funktion, nicht nach der Standardbezeichnung.
Vermeiden Sie das Stapeln vieler Zweige für Randfälle. Jeder Zweig ist ein weiterer Ort, an dem eine Domain den falschen Score erhalten kann.
Wenn ein Skript seinen Platz verdient
Ein Skript macht Sinn, wenn die Eingabe ein Ordner mit CSV-Dateien ist oder wenn der Job Logik benötigt, die ein Flow umständlich handhabt. Der obige Entwurf passt zu diesem Fall.
Legen Sie das Skript in die Versionskontrolle und bewahren Sie den Key in einer Umgebungsvariable auf. Ein Skript, das den Key aus einer Datei im selben Ordner liest, ist eine Leckage, die auf eine Freigabe wartet.
Tutorials, die den harten Teil auslassen
Viele Videos zeigen einen Flow, der beim ersten Versuch mit drei Zeilen funktioniert. Echte Einträge haben Leerstellen, Duplikate und ungewöhnliche Domains, und genau dort muss der Flow angepasst werden.
Bauen Sie den Flow zunächst mit Ihren eigenen fünf Testzeilen auf. Wenn ein Tutorial diese nicht übersteht, war es nie der ganze Job.
Wenn Sie den Flow an jemand anderen übergeben, fügen Sie die fünf Testzeilen als Beispiel bei. Die nächste Person kann sehen, wie ein guter Lauf aussieht, bevor sie Live-Daten berührt.
Was die Fehler bedeuten
| Signal | Bedeutung | Was der Job tut |
|---|---|---|
| HTTP 401 | Fehlender oder falscher Key | Stoppen, einen Menschen alarmieren |
| HTTP 402 | Credits aufgebraucht | Stoppen, alte Scores behalten, nachladen |
ok ist falsch | Der Aufruf war nicht erfolgreich | Body protokollieren, beim nächsten Lauf wiederholen |
| Leeres Ergebnis für eine Domain | Nicht im Index | Zelle leer lassen |

Halten Sie das Sheet zwischen den Läufen sauber
Ein Sync-Job ist nur so gut wie das Sheet, in das er schreibt. Einige Gewohnheiten verhindern den langsamen Schaden, der sich zwischen einem und dem nächsten Lauf aufbaut.
Die meisten Probleme beginnen mit einer unscheinbaren Bearbeitung: Eine Spalte wurde oberhalb des Scores eingefügt, oder eine kopierte Zeile hat leise eine Domain geändert.
Bewahren Sie Rohantworten in ihrer eigenen Tabelle auf
Speichern Sie jede Rohantwort in einer eigenen Tabelle oder als JSON Lines mit einer Antwort pro Zeile. Diese Kopie ermöglicht es Ihnen, die sichtbaren Spalten ohne einen zweiten bezahlten Aufruf wieder aufzubauen.
Eine Roh-Tabelle beantwortet auch die Frage, die ein Bearbeiter sechs Monate später stellt: Was hat die API an diesem Datum zurückgegeben.
Nennen Sie jede Roh-Tabelle nach ihrem Batch-Datum, damit die Kopien beim Zurückscrollen in der richtigen Reihenfolge sortiert sind.
Sperren Sie die Kopfzeile
Frieren Sie die Kopfzeile ein und fügen Sie niemals eine Spalte oberhalb des Scores ein. Ein Mapping, das auf Spalte F verweist, liest nach einem Einfügen die falschen Daten, und das ohne Fehlermeldung.
Benennen Sie die Spalten im Mapping nach Namen, nicht nach Position. Ein Name überlebt eine Neuordnung, eine Position nicht.
Zählen Sie die Zeilen vor und nach
Schreiben Sie die Zeilenanzahl in das Protokoll vor dem Lauf und erneut danach. Die beiden Zahlen sollten sich nur um die Zeilen unterscheiden, die Sie hinzufügen wollten, und eine Lücke zeigt an, dass etwas schiefgelaufen ist.
Sortieren Sie das Sheet einmal im Monat nach der Score-Spalte und schauen Sie sich die ersten und letzten Zeilen an. Ungewöhnliche Werte dort deuten meist auf eine Domain hin, die einem falschen Eintrag zugeordnet wurde.
Zuerst an einer Kopie testen
Duplizieren Sie das Sheet und führen Sie den Flow gegen die Kopie aus, bevor Sie das Original berühren. Eine Kopie kostet nichts in der Herstellung.
Ein falsches Mapping, das Live-Scores überschreibt, ist schwer rückgängig zu machen, weil die alten Werte weg sind. Behalten Sie die Kopie, bis der erste ehrliche Lauf mit Ihren Erwartungen übereinstimmt.
Löschen Sie die Kopie erst nach dem zweiten geplanten Lauf, wenn er mit ihr übereinstimmt. Zwei saubere Läufe in Folge sind ein besseres Signal als einer.
Vor dem ersten Live-Lauf
- Der Key liegt im Credential-Store der Plattform oder in einer Umgebungsvariable, nicht im Workflow-Text.
- Ein kostenloser
overview-Aufruf wurde manuell an einem bekannten Eintrag geprüft. - Der Lauf wurde an einer Kopie des Sheets getestet, und die Kopie entsprach Ihren Erwartungen.
- Der Job schreibt das Datum neben jeden Score, den er berührt.
- Status 401 und 402 stoppen den Job und senden eine Nachricht an eine Person.
Sync-Fragen
Wie vermeide ich eine Doppelzahlung, wenn der Job mitten drin abstürzt?
Schreiben Sie das Datum neben jeden Score, während Sie arbeiten, und lassen Sie den nächsten Lauf Zeilen überspringen, die diesen Monat bereits gestempelt sind. Chunks zu 2.000 bedeuten, dass ein Absturz höchstens ein Credit kostet, das Risiko ist also gering, aber die Gewohnheit hält das Sheet sauber.
Kann ein Nicht-Programmierer das einrichten?
Meistens ja. Ein HTTP Request Node in n8n oder Make benötigt nur eine URL, einen Key und eine Liste. Der knifflige Teil ist das Umwandeln der Antwort in Spalten, also testen Sie einen Aufruf und schauen Sie sich das JSON an, bevor Sie das Mapping aufbauen.