Zum Inhalt springen
SEO Tools AI
SEO Tools AIRegistrieren

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 ·

Paper cut-out workers building a bridge connecting a filing cabinet to a road

Das Rezept in fünf Schritten

01

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.

02

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.

03

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.

04

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.

05

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.

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)
Paper gears and conveyor belts sorting blocks into groups

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

Verhalten der API und was ein Sync-Job tun sollte.
SignalBedeutungWas der Job tut
HTTP 401Fehlender oder falscher KeyStoppen, einen Menschen alarmieren
HTTP 402Credits aufgebrauchtStoppen, alte Scores behalten, nachladen
ok ist falschDer Aufruf war nicht erfolgreichBody protokollieren, beim nächsten Lauf wiederholen
Leeres Ergebnis für eine DomainNicht im IndexZelle leer lassen
Paper gardener straightening a crooked plant stem in a garden

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.