Přejít na obsah
SEO Tools AI
SEO Tools AIRegistrovat se

Recept

Synchronizace skóre odkazů z tabulky nebo n8n

Většina adresářů nástrojů je uložena v tabulce, v databázi Airtable nebo v malé databázi. Tento recept promění kontrolu zpětných odkazů na vyplnění sloupce: jeden požadavek na 2 000 řádků.

Výzkumný tým SEO Tools AI ·

Papíroví dělníci stavící most spojující archivační skříň s silnicí

Recept v pěti krocích

01

Export domén

Vyberte sloupec s webem z vašich záznamů, odstraňte protokol a cesty a odstraňte duplikáty. Duplikáty nestojí nic navíc, ale ztěžují krok mapování.

02

Rozdělte do skupin po 2 000

bulk_dr přijímá až 2 000 domén na jeden volání. Tabulka s 5 000 řádky tedy vyžaduje tři volání.

03

Odeslat, zkontrolovat ok

Zavolejte API, přečtěte JSON a zastavte, pokud ok je false. Logujte _credits, abyste viděli zůstatek po každém běhu.

04

Zápis zpět s datem

Uložte hodnocení a dnešní datum do dvou sloupců. Nikdy nepřepište dobrou hodnotu prázdnou.

05

Naplánujte jednou měsíčně

Spusťte ji prvního dne v měsíci. Index se mění přibližně měsíčně, takže častější běh nepřináší nic navíc.

Vyberte, co spustí úlohu

Spouštěč určuje, jak často se volání provádějí, takže ho vyberte před tím, než vytvoříte mapování. Dva spouštěče pokryjí téměř všechny adresáře.

Plánování prvního dne v měsíci je nejjednodušší možnost. Odpovídá rytmu indexu a nikdo si nemusí pamatovat tlačítko.

Plánování pro měsíční obnovení

Umístěte na začátek spouštěč plánu, nastavte ho na první den každého měsíce a nechte ho přečíst celou tabulku záznamů. Každý běh pak provede jednu dávku volání bulk_dr, velikosti podle počtu řádků.

Udržujte plán i když je tabulka malá. Měsíční úloha, která běží na malé tabulce, stojí jeden kredit a udržuje hodnocení datovaná a aktuální.

Spouštěč pro každý nový řádek

Předpokládejme, že záznamy přicházejí po jednom, každých několik dní. Spouštěč, který se aktivuje pro každý nový řádek, je lákavý, ale každé volání se účtuje jednou, takže jedno volání na řádek stojí více než jedna dávka za měsíc.

Pokud chcete skóre rychle, nechte tok nového řádku zapsat prázdné dr a nechte měsíční běh ho vyplnit. Řádek získá své číslo bez volání pro každý příchozí záznam.

Pokud přicházejí záznamy ve vlnách, seskupte nové řádky do jedné dávky na konci týdne. To stojí jedno volání a tabulka se již nemění pouze jednou měsíčně.

Datum označující dokončené řádky

Uložte dr_checked_on na každý řádek, který hodnotíte. Běh, který začíná filtrem podle tohoto data, přeskočí to, co je již tento měsíc hotovo, a není třeba samostatné fronty.

Když se běh zastaví uprostřed, řádky, které jsou již označené, zůstanou označené. Další běh pokračuje tam, kde ten předchozí skončil, což je nejlevnější způsob obnovení.

Před automatizací čehokoli

Nejprve zkontrolujte ručně pět záznamů. Použijte bezplatnou akci overview pro každý, která nepotřebuje klíč, a porovnejte, co vidíte, s tím, co jste očekávali.

Tím zachytíte častá překvapení včas: záznam, který ukazuje na subdoménu, produkt, který žije na cestě většího webu, doména, která přesměrovala minulou jaro. Hodnocení patří k doméně, ne k produktu.

Rozhodněte, jak vaše tabulka tyto případy označuje, například sloupcem s poznámkou, který obsahuje shares domain. Čtenáři odpustí poznámku pod čarou mnohem snadněji než skóre, které vypadá špatně.

Když vypadá pět záznamů rozumně, přejděte k dávkování. Váš odkaz na pole uvádí sloupce a příklad nákladů ukazuje, kolik běh stojí.

Malá verze v Pythonu

Vyžaduje balíček requests. Je to náčrt tvaru úlohy: nejprve vytiskněte skutečnou odpověď, poté mapujte pole, která potřebujete, do vlastních sloupců.

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)
Papírové ozubená kola a dopravní pásy třídící bloky do skupin

Provedení v Google Sheets nebo n8n

Sheets mohou volat URL z Apps Script pomocí UrlFetchApp a n8n má uzel HTTP Request. Oba dělají totéž co skript výše.

V n8n umístěte na začátek spouštěč plánu, poté uzel, který čte vaši tabulku nebo stůl, poté krok rozdělení položek, který vytváří skupiny po 2 000, a poté HTTP Request. Přidejte konečný uzel, který zapíše hodnocení a datum zpět.

Udržujte klíč v úložišti pověření platformy, ne v textu pracovního postupu. Pracovní postupy se sdílejí, kopírují a vkládají do fór a klíč vložený s nimi je utrácené peníze.

Bez kódu nebo skript: který tvar vyhovuje vašemu týmu

Obě cesty provádějí stejné volání. Rozdíl je v tom, kdo bude muset udržovat tok za rok, a jak snadné je ho tomu člověku vysvětlit.

Vyberte tvar, který stále můžete číst po přestávce několika měsíců. Chytrý tok, kterému nikdo nerozumí, je horší než obyčejný skript, kterému všichni rozumí.

Tok, který můžete vysvětlit dalšímu editorovi

Krátký tok n8n se čtyřmi označenými uzly je snadné předat: trigger, read, batch, write back. Pojmenujte každý uzel podle toho, co dělá, ne podle výchozího popisu.

Vyhněte se vrstvení mnoha větví pro okrajové případy. Každá větev je jedno místo více, kde může doména získat špatné skóre.

Když si skript zaslouží své místo

Skript má smysl, když je vstupem složka souborů CSV nebo když úloha potřebuje logiku, kterou tok zvládá neobratně. Náčrt výše odpovídá tomuto případu.

Umístěte skript do verzionovacího systému a udržujte klíč v proměnné prostředí. Skript, který čte klíč ze souboru ve stejné složce, je únik čekající na sdílený disk.

Tutoriály, které přeskočí těžkou část

Mnoho videí ukazuje tok, který funguje při prvním pokusu se třemi řádky. Skutečné záznamy mají prázdná místa, duplikáty a podivné domény a právě tam je třeba toku věnovat pozornost.

Nejprve vytvořte tok na vlastních pěti testovacích řádcích. Pokud tutorial nepřežije tyto, nebyl tutorial nikdy celou úlohou.

Když předáte tok někomu jinému, zahrňte pět testovacích řádků jako vzorek. Další osoba uvidí, jak vypadá dobrý běh, než začne pracovat s živými daty.

Co chyby znamenají

Chování API a co by měl dělat synchronizační běh.
SignálVýznamCo úloha dělá
HTTP 401Chybějící nebo špatný klíčZastavit, upozornit člověka
HTTP 402Došly kredityZastavit, zachovat stará skóre, doplnit
ok je falseVolání se nezdařiloLogujte tělo, zkusit znovu příští běh
Prázdný výsledek pro doménuNení v indexuPonechat buňku prázdnou
Papírový zahradník narovnávající křivý stonek rostliny v zahradě

Udržujte tabulku čistou mezi běhy

Synchronizační úloha je tak dobrá, jak dobrá je tabulka, do které zapisuje. Několik zvyklostí zastaví pomalé poškození, které se hromadí mezi jedním během a dalším.

Většina problémů začíná nevinnou úpravou: sloupec vložený nad skóre nebo zkopírovaný řádek, který tiše změní doménu.

Udržujte surové odpovědi na vlastní kartě

Uložte každou surovou odpověď na vlastní kartě nebo jako JSON Lines s jednou odpovědí na řádek. Tato kopie vám umožní znovu sestavit viditelné sloupce bez druhého placeného volání.

Surová karta také odpoví na otázku, kterou editor položí za šest měsíců: co API vrátilo v daný den.

Pojmenujte každou surovou kartu podle data dávky, aby se kopie seřadily v pořadí, když se proklikáte zpět.

Uzamkněte řádek záhlaví

Zamrazte řádek záhlaví a nikdy nevkládejte sloupec nad skóre. Mapování, které ukazuje na sloupec F, bude číst špatná data po vložení a udělá to bez jakékoli chyby.

Pojmenujte sloupce v mapování podle jména, ne podle pozice. Název přežije přeuspořádání, pozice ne.

Spočítejte řádky před a po

Zapište počet řádků do logu před během a znovu po něm. Dvě čísla by se měla lišit pouze o řádky, které jste zamýšleli přidat, a mezera vám řekne, že se něco pokazilo.

Měsíčně seřaďte tabulku podle sloupce skóre a podívejte se na horní a dolní řádky. Podivné hodnoty tam obvykle ukazují na doménu, která byla přiřazena ke špatnému záznamu.

Nejprve otestujte na kopii

Duplikujte tabulku a spusťte tok proti kopii, než se dotknete té skutečné. Kopie stojí nic za vytvoření.

Špatné mapování přepsané přes živá skóre je těžké vrátit zpět, protože staré hodnoty jsou pryč. Udržujte kopii, dokud první upřímný běh neodpovídá tomu, co jste očekávali.

Smazání kopie až po druhém naplánovaném běhu, který ji shodl. Dva čisté běhy za sebou jsou lepším signálem než jeden.

Před prvním živým během

  • Klíč sedí v úložišti pověření platformy nebo v proměnné prostředí, ne v textu pracovního postupu.
  • Jedno bezplatné volání overview bylo zkontrolováno ručně proti záznamu, který znáte.
  • Běh byl otestován na kopii tabulky a kopie odpovídala tomu, co jste očekávali.
  • Úloha zapisuje datum vedle každého skóre, kterého se dotkne.
  • Status 401 a 402 zastaví úlohu a pošle zprávu osobě.

Otázky synchronizace

Jak se vyhnout placení dvakrát, pokud se úloha zhroutí uprostřed?

Zapište datum vedle každého skóre, jak postupujete, a nechte další běh přeskočit řádky, které jsou již tento měsíc označeny. Dávky po 2 000 znamenají, že pád stojí nejvýše jeden kredit, takže riziko je malé, ale zvyklost udržuje tabulku čistou.

Může to nastavit neprogramátor?

Většinou ano. Uzel HTTP Request v n8n nebo Make potřebuje pouze URL, klíč a seznam. Trhaná část je převést odpověď na sloupce, takže proveďte jedno testovací volání a podívejte se na JSON před tím, než vytvoříte mapování.