Přejít na obsah
SEOBlogBotRegistrovat se

Průvodce

Audit odkazů po zveřejnění pomocí GitHub Actions nebo běžného cronu

Článek je online a pipeline není dokončena. Tento průvodce přidává plánovaný audit, který zaznamenává data o odkazech pro každý web a upozorní člověka pouze tehdy, když něco vypadá špatně.

Výzkumný tým SEOBlogBot ·

Dřevěná lavnice s kolkem rozvrhu, tokeny kreditů a zvonkem upozornění ve stylu low-poly

Proč audity provádět vůbec po zveřejnění

Brána vidí koncept. Audit vidí, co živý web skutečně dělá. Pluginy přepisují odkazy, editoři vkládají affiliate přesměrování místo čistých URL a migrace CDN může změnit jeden hostitel na jiný. Nic z toho neexistuje ve fázi konceptu, proto je audit po zveřejnění prvním místem, kde se tyto problémy mohou projevit.

Užitečný audit je nudný ze své podstaty. Běží podle plánu, zapíše jeden řádek a zůstane tichý, dokud nevznikne výjimka. Ticho je cílem. Měsíc tichých logů znamená, že práce funguje, ne že je nečinná.

Neexistuje žádné oficiální Google Backlink Checker API pro obecné použití, proto týmy volají třetí stranu s indexem odkazů. Je to náš vlastní crawler. Search Console ukazuje pohled Googlu na vaše vlastní odkazy a audit je doplňuje, nikoli je nahrazuje.

Kde práce běží

Zapište spouštěč. Tři nastavení pokrývají většinu týmů a každé z nich provádí stejná volání. Log je důležitější než spouštěč, protože datum, URL a použité kredity by se tam měly objevit pokaždé.

GitHub Actions pro repozitář

Pokud web sestavujete z repozitáře, plánovaný pracovní postup přidává nejméně tření. Práce žije vedle kódu a klíč je uložen v úložišti tajných klíčů repozitáře. Soubor pracovního postupu níže je minimum, které potřebujete. Udržujte ho v repozitáři, kontrolovaném jako jakýkoli jiný kód, a fixujte verze akcí, na kterých závisíte.

Běžný server s cronem

Týmy, které již udržují stroj pro svou sestavu, mohou naplánovat stejné příkazy tam. Nástroj jako n8n je může spustit prostřednictvím kroku Execute Command, nebo řádek crontab může příkazy spustit přímo. V obou případech by práce měla běžet jako uživatel, který může číst klíč a nic jiného.

Webhook z vašeho CMS

Některá nastavení CMS spustí webhook při zveřejnění článku a tato událost může zahájit audit. Kontrola pak proběhne okamžitě, jakmile je článek veřejný. Stále však mějte plánovaný běh, protože jeden zmeškaný webhook nechá článek nekontrolovaný.

Průvodce v pořadí

01

Spustit při zveřejnění a znovu o 30 dní později

Jeden běh hned po zveřejnění článku zkontroluje odchozí hostitele. Druhý běh o měsíc později načte refdomains pro váš web, protože index se obnovuje přibližně měsíčně a dřívější čtení by nezobrazilo žádné nové údaje.

02

Nejprve zavolejte volný přehled

action=overview vrací hlavní čísla webu zdarma. Uložte je jako základní řádek pro tento běh spolu s datem.

03

Placené seznamy stahujte pouze při změně

Pokud se přehled liší od minulého měsíce, zavolejte refdomains (2 kredity) a anchors (2 kredity) a porovnejte je s uloženými seznamy.

04

Zapište jeden řádek do logu

Datum, URL článku, provedená volání, zůstatek _credits. Stačí obyčejné CSV soubor commitnutý do soukromého repozitáře.

05

Upozornit pouze na výjimky

HTTP 401, HTTP 402, prázdný výsledek pro web, který měl minulý měsíc řádky, nebo pokles hodnocení o 10 bodů nebo více.

Mosazné váhy vyvažující jednu velkou rostlinu proti dvěma menším identickým rostlinám

Jaké weby auditoval

Začněte doménou, která článek hostuje. Poté proveďte stejný audit proti dvěma nebo třem konkurenčním webům, proti kterým chcete benchmarkovat. Použijte compare. To vyžaduje až 20 domén za 1 kredit, takže kontrola konkurence stojí téměř nic.

Vynechte dlouhý ocas. Každý další web přidává šum do logu, který musí člověk číst. Benchmark dvaceti nesouvisejících domén vám o vašem vlastním webu řekne velmi málo.

Udržení klíče mimo logy

Plánovaná práce čte svůj klíč při každém běhu, takže nikdy nepotřebuje krok přihlášení. Chraňte pouze samotný klíč. Má tři zřejmé úniky: commit, vytištěné prostředí a URL, kterou zaznamenává proxy. Uzavřete každou z nich.

Použijte úložiště tajných klíčů, ne soubor v repozitáři

Vložte klíč do úložiště tajných klíčů vašeho CI providera nebo do environmentálního souboru, který může číst pouze uživatel práce. Nikdy ho necommitujte. Krok, který vypisuje své prostředí, ho vytiskne, takže takový krok nepoužívejte.

Pošlete klíč v hlavičce

Hlavička Bearer drží klíč mimo většinu přístupových logů, protože URL se zaznamenávají a hlavičky obvykle ne. Forma query-string také funguje, ale zanechá kopii v každé proxy, která vidí požadavek.

Omezte, kdo může úložiště číst

Dejte právo číst lidem, kteří práci udržují, a nikomu jinému. Seznam revidujte, když se práce přejímá.

Klíč, který může číst mnoho lidí, je klíč, který jednou skončí vložený do chatu.

Ověřte odpověď před jejím zapsáním

Odpověď, která dorazila, ještě není odpověď, kterou můžete použít. Použijte vždy stejný pořadí. Zapište pouze to, co projde, a zalogujte zbytek. Zamítnutá odpověď je důkaz a další člověk, který bude ladit práci, ji bude chtít vidět.

Nejprve zkontrolujte status a ok

Přečtěte si kód HTTP statusu, poté pole ok v těle. 200 s ok nastaveným na false je stále selhání volání a log by to měl uvést.

Parsovat JSON před jakýmkoli zápisem

Potvrďte, že tělo je platný JSON, než něco rozbalíte, sparsujete nebo připojíte. Může dojít ke zkrácenému stažení na nestabilním runneru. Rozbitý soubor zapsaný do logu vypadá v pořádku, doklid ho někdo neotevře.

Prázdný seznam považujte za otázku

Prázdný výsledek pro web, který měl minulý měsíc řádky, je otázka, ne fakt. Zkontrolujte pravopis domény, včetně úvodního www., než kdokoli dostane upozornění.

Soubor pracovního postupu k začátku

Uložte klíč jako tajný klíč repozitáře s názvem SBB_KEY. Cron expression běží prvního každého měsíce v 06:00 UTC.

yaml
name: monthly-link-audit
on:
  schedule:
    - cron: '0 6 1 * *'
  workflow_dispatch: {}
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Overview (free)
        run: |
          curl -fsS "https://seoblogbot.com/api.php?action=overview&q=example.com" > overview.json
      - name: Refdomains (2 credits)
        env:
          SBB_KEY: ${{ secrets.SBB_KEY }}
        run: |
          curl -fsS -H "Authorization: Bearer $SBB_KEY" \
            "https://seoblogbot.com/api.php?action=refdomains&q=example.com&per=500" > refdomains.json
      - name: Log credits
        run: jq -r '._credits' refdomains.json >> credits.log

Co se pokazí a co log ukazuje

PříznakPravděpodobná příčinaPrvní krok
HTTP 401Chybějící nebo otočený tajný klíčVytvořte tajný klíč znovu, spusťte workflow_dispatch
HTTP 402Došly kredityDoplňte z účtu, spusťte znovu
Prázdné řádky pro známý webObnova indexu probíhá nebo překlep v doméněZkuste znovu o den později; zkontrolujte www.
Hodnocení se posunulo o několik bodůMěsíční obnovaNedělat nic; sledovat trend
Hodnocení kleslo o 10+Ztracené odkazy nebo velká změna při obnověNačíst refdomains a provést diff
Cron na běžném serveru

Stejné příkazy spuštěné z řádku crontab. Udržujte klíč v environmentálním souboru, který může číst pouze uživatel práce, a logujte do souboru, který rotujete.

Kamenná váha s jednou těžkou zátěží a jednou prázdnou misou v pastelovém osvětlení

Náklady a kde je číst

Měsíční audit pro jeden web stojí 4 kredity, když stáhnete oba seznamy, což je $0.0004. Volání přehledu je zdarma. Měsíc bez změny tedy stojí nic navíc.

Pokud váš tým publikuje deset článků denně napříč několika weby, audit je stále jednou měsíční prací na web, nikoli jednou prací na článek. To udržuje počet malý a log čitelný.

Při přidání druhého webu zkopírujte práci, nikoli ji rozšiřujte. Jeden pracovní postup na doménu udržuje log na web a usnadňuje zpětné sledování selhání na jeho majitele.

Vyšší náklady jsou obvykle minuty vašeho CI providera, nikoli naše kredity. Tabulka nákladů dává obě položky vedle sebe, takže můžete rozhodnout, kterou upravit první.

Požádejte o první běh, aby vytiskl _credits. Důvěřujte odpovědi spíše než jakékoli tabulce. Průvodce branou pokrývá kontrolu na straně konceptu, která před touto jednou přichází.

Plán GitHub běží v UTC, takže start v 06:00 dopadne v různé místní hodině pro každý tým. Zapište časové pásmo do průvodce, aby nikoho nepřekvapil log.

Otázky k běhu auditu

Většina těchto otázek pochází od týmů, které právě naplánovaly práci poprvé.

Je to google backlink checker API?

Je to audit postavený na našem vlastním API, ne produkt Googlu. Google nezveřejňuje obecné backlink API, takže čísla pocházejí z našeho vlastního crawlera a našeho vlastního indexu.

Může audit běžet s každou sestavou?

Může, ale měsíční stažení refdomains nepotřebuje běžet při každé sestavě. Spusťte volný přehled při každém zveřejnění a placená stažení jednou měsíčně.

Stále potřebuji audit, pokud mám bránu?

Ano, pokud publikujete přes pluginy nebo CDN. Brána vidí váš koncept a audit vidí živou stránku. Každá z nich zachytí selhání, které ta druhá nevidí.

Co když práce selže uprostřed?

Zapište výsledek každého kroku do vlastního souboru, takže selhání stahování ponechá přehled nepoškozený. Spusťte znovu od selhaného kroku, nikoli od začátku, což se vyhne placení za stejné stažení dvakrát.

Kolik kreditů bych měl rozpočítat na každý web?

Rozpočítejte 4 kredity na web za měsíc za dvě placená stažení plus cokoliv, co vaše brana utratí za koncepty. Volný přehled k tomu nic nepřidává a log vám řekne skutečný celkový součet.

Proč se dva běhy několik dní od sebe liší?

Index se obnovuje přibližně jednou měsíčně, takže změny z dne na den jsou obvykle šum. Porovnejte snímek tohoto měsíce s minulým měsícem, než otevřete incident.

Podpis průvodce

  • Tajný klíč existuje a pracovní postup jednou ručně běžel.
  • Soubor logu zaznamenává datum, URL, volání a _credits.
  • Někdo vlastní kanál upozornění.
  • Práva považuje měsíční data za měsíční.
  • Selhání samotného auditu vyvolá člověka.