Ein Backlink-Check bei der Veröffentlichung, Schritt für Schritt
Ein Webhook, ein HTTP-Aufruf, eine Entscheidung. Dieses Runbook führt ein Headless-CMS-Team durch den Hook, die Aufrufe und die Fehlerfälle.
Contentin-Research-Team ·
Entscheiden Sie, was die Gate-Funktion tun darf
Ein Backlink-Check innerhalb eines Release-Workflows ist eine kleine Aufgabe. Halten Sie sie klein. Der schwierige Teil besteht darin zu entscheiden, was die Antwort verändern darf, da ein monatlich aktualisiertes Link-Graphen eine Seite nicht eigenständig sperren kann.
Wir empfehlen, dass das Gate warnt, protokolliert und den Build fortsetzen lässt. Standards können sich ändern. Harte Sperren gehören zu Dingen, die Sie kontrollieren, wie z. B. fehlerhaftes Markup oder ein fehlendes Canonical-Tag. Linkdaten sind ein Signal, und Signale können sich ändern.
Schreiben Sie es auf. Tun Sie das, bevor Sie mit der Programmierung beginnen. Eine einzeilige Richtlinie wie „Editor warnen, Eintrag markieren, Deployment niemals stoppen“ spart lange Diskussionen um 18 Uhr am Release-Tag. Sie sagt auch dem nächsten Entwickler, welche Fehler beabsichtigt waren und welche Bugs, was wichtiger ist, als es klingt. Überprüfen Sie sie einmal pro Quartal.
Sechs Schritte vom Klick auf „Veröffentlichen“ bis zur gespeicherten Notiz
1
Wählen Sie den Trigger
Abonnieren Sie das Publish-Ereignis Ihres CMS. Contentful, Sanity und Strapi können eine URL aufrufen, die Ihnen gehört, wenn ein Eintrag veröffentlicht wird, und Storyblok sowie Payload bieten ebenfalls Webhooks oder Hooks an. Filtern Sie nach den Content-Typen, die Outbound- oder Canonical-URLs enthalten.
2
Reduzieren Sie die URL auf eine Domain
Die API erwartet eine Domain in q, daher muss https://www.example.com/blog/post?x=1 zuerst zu example.com reduziert werden. Entscheiden Sie einmalig, wie Sie mit www umgehen, und testen Sie eine echte Domain mit der kostenlosen domain-Aktion, bevor Sie mit der Entwicklung beginnen.
3
Rufen Sie zuerst die kostenlose Aktion auf
overview kostet nichts. Wenn die Antwort dünn ausfällt, ist die Domain möglicherweise neu oder unserem Index einfach noch nicht bekannt. Das ist kein Beweis für etwas Schlechtes.
4
Geben Sie Credits nur aus, wenn eine Regel auslöst
Wenn Ihre Regel sagt, schauen Sie genauer hin, rufen Sie backlinks mit per=100 auf. Das kostet 2 Credits, unabhängig von der Anzahl der Zeilen, also fordern Sie eine sinnvolle Seite mit Zeilen an, statt zehn kleine Seiten.
5
Schreiben Sie eine Notiz, nicht das rohe JSON
Speichern Sie ein kurzes Urteil in einem eigenen Feld sowie das Datum der Überprüfung. Rohe Antworten blähen Einträge auf und altern schlecht, da sich der Index monatlich verändert.
6
Sanftes Fehlschlagen
HTTP 401 bedeutet, dass der Key fehlt oder falsch ist, also informieren Sie einen Menschen. HTTP 402 bedeutet, dass die Credits aufgebraucht sind. Jeder andere Fehler: Protokollieren Sie ihn, überspringen Sie die Überprüfung und lassen Sie die Veröffentlichung durchlaufen.
Wo der Key gespeichert ist und was ein 402 bewirken soll
Jeder bezahlte Aufruf enthält Ihren Key, entweder in der Query-String oder in einem Bearer-Header. Bevorzugen Sie den Header. Ein Query-String kann in Server-Logs und Proxy-Traces landen, ein Header bleibt in der Regel außerhalb davon.
Speichern Sie den Key als Geheimnis in Ihrer Hosting-Plattform, niemals im Eintrag selbst. Editoren können jedes Feld lesen, das sie öffnen können, aber die Umgebung einer Funktion ist normalerweise nur für die Personen sichtbar, die Deployments verwalten.
Wo sollte der Key gespeichert sein?
Ein geleckter Key kann das Guthaben auf Ihrem Konto verbrauchen, also behandeln Sie ihn wie ein Passwort. Halten Sie ihn aus dem Repository und aus dem CMS heraus, und rotieren Sie ihn, wenn eine Protokolldatei ihn jemals im Klartext zeigt.
Markieren Sie Ihre Logs mit dem Namen des Hooks. Die Ausgaben lassen sich dann leicht einer Funktion zuordnen, auch wenn mehrere Hooks dasselbe Konto teilen.
Kann ein No-Code-Tool den Aufruf tätigen?
Ja, wenn das Tool einen Schritt für einfache HTTP-Anfragen hat. Viele Automatisierungs-Tools können eine GET-Anfrage mit einem Query-String senden und das JSON zurücklesen, sodass die kostenlose Overview-Aktion überhaupt keinen Code benötigt.
Beginnen Sie nur mit den kostenlosen Aktionen. Ein Flow, der bei jeder Draft-Speicherung auslöst, kann Credits schneller verbrauchen, als ein Editor bemerkt, fügen Sie also einen bezahlten Schritt hinzu, sobald die kostenlosen Aufrufe eine Weile ruhig gelaufen sind.
Was sollte ein 402 auslösen?
Ein 402 bedeutet, dass das Guthaben leer ist. Es sagt nichts über die Seite aus. Überspringen Sie die bezahlte Überprüfung, protokollieren Sie das Ereignis und senden Sie eine Benachrichtigung an die Person, die das Konto auflädt, lassen Sie dann die Veröffentlichung durchlaufen.
Legen Sie einen Guthaben-Alarm deutlich über Null fest, damit die Warnung eintrifft, während noch Zeit zum Aufladen bleibt. Eine Retry-Schleife hilft hier nicht, da jeder Aufruf auf die gleiche Weise fehlschlägt, bis jemand Guthaben hinzufügt. Die Kostentabelle enthält die Zahlen.
Testen Sie die beiden Aufrufe über die Kommandozeile
Führen Sie diese einmal gegen eine Domain aus, die Sie kennen, bevor der Hook dies für Sie tut. Lesen Sie das Feld _credits in der zweiten Antwort.
bash
# free, no key
curl -s "https://contentin.app/api.php?action=overview&q=example.com"
# 2 credits, key in a header
curl -s -H "Authorization: Bearer sk_live_..." \
"https://contentin.app/api.php?action=backlinks&q=example.com&per=100"
Welche Domain geht in den q-Parameter
Die API erwartet eine nackte Domain in q, daher muss eine vollständige URL zuerst reduziert werden. Schreiben Sie diese Reduktion einmalig in einer Funktion. Testen Sie sie dann an echten URLs.
Relative Links und fehlende Schemata sind die Fälle, die einen Hook normalerweise zum Scheitern bringen. Eine Reduktion, die bei sauberen Beispielen funktioniert, kann bei den unordentlichen URLs, die ein Editor um 17 Uhr einfügt, dennoch fehlschlagen.
Ändert www die Antwort?
Das könnte es, und der ehrliche Weg, dies herauszufinden, ist, es zu fragen. Führen Sie die kostenlose Domain-Aktion für beide Formen einer bekannten Site aus und vergleichen Sie die beiden Antworten nebeneinander.
Welche Regel Sie auch immer auswählen, schreiben Sie sie in einen Code-Comment, damit der nächste Entwickler nicht raten muss. Ein Comment kostet nichts und spart später lange Diskussionen.
Was ist mit Weiterleitungen und Subdomains?
Senden Sie den Host, auf den Ihre Leser tatsächlich landen, nicht den Link, den ein Editor vor Jahren eingefügt hat. Wenn dieser Link weiterleitet, reduzieren Sie die Endadresse und ignorieren Sie den Zwischenschritt.
Ein Blog auf einer eigenen Subdomain ist eine Einschätzungssache. Entscheiden Sie im Voraus, ob es allein oder zusammen mit der übergeordneten Domain geprüft wird, und notieren Sie diese Entscheidung neben der Regel.
Pre-Release-Checkliste für den Hook
Der Hook löst nur bei der Veröffentlichung aus, nicht bei jeder Draft-Speicherung
Die URL wird vor dem Aufruf auf eine nackte Domain reduziert
Kostenlose Aktionen laufen zuerst, Credits werden nur bei einer Markierung ausgegeben
Ein 401 und ein 402 haben jeweils eine eigene Warnung und eine eigene Nachricht
Ein Timeout ist festgelegt, sodass eine langsame API niemals einen Editor blockiert
Die gespeicherte Notiz enthält ein Datum, damit niemand sie für Live-Daten hält
Ein Eintrag, der zweimal veröffentlicht wird, wird nicht zweimal abgerechnet (siehe Mythenliste)
Jemand hat die Kostentabelle für Ihr monatliches Volumen gelesen
Was protokolliert wird und was nicht im Eintrag landet
Eine Protokollzeile für jede übersprungene Überprüfung ist die günstigste Audit-Trail, die Sie erstellen können. Notieren Sie die Eintrag-ID, die gesendete Domain, den Statuscode und ob ein bezahlter Schritt ausgeführt wurde. Das reicht in der Regel.
Die gespeicherte Notiz bleibt kurz und datiert, wie die oben genannten Schritte vorgeben. Vollständige Antworten gehören in Ihre eigenen Logs, wenn sie überhaupt irgendwo hingehören, da sie groß sind und schnell altern.
Welche Felder gehören in eine Protokollzeile?
Beginnen Sie mit der Eintrag-ID und der Publish-Version. Ein wiederholter Webhook erscheint dann als dasselbe Paar zweimal, was genau das ist, was Sie sehen möchten.
Fügen Sie die Domain, den Aktionnamen, den Statuscode und den Zeitpunkt des Aufrufs hinzu. Lassen Sie den Key selbst weg, da ein Log, das ihn enthält, ein zweiter Ort wird, an dem Geheimnisse gespeichert sind.
Wie lange sollte eine gespeicherte Notiz leben?
So lange wie der Eintrag, es sei denn, eine neuere Überprüfung ersetzt sie. Wichtig ist, dass ein Leser erkennen kann, wie alt die Notiz ist, da eine Notiz von vor Monaten wie Live-Daten wirkt.
Der Score-Feld-Leitfaden zeigt die vier Felder, die wir für diese Notiz vorschlagen, einschließlich des Datums.
Testen Sie den Hook im Staging vor dem Launch
Führen Sie diese vier Checks durch, bevor sich jemand auf den Hook verlässt.
1
Spielen Sie eine vergangene Veröffentlichung nach
Triggern Sie den Hook mit einer Kopie eines bereits veröffentlichten Eintrags. Vergleichen Sie die gespeicherte Notiz mit Ihren Erwartungen und bestätigen Sie, dass derselbe Eintrag nicht zweimal abgerechnet wurde.
2
Testen Sie eine kürzlich registrierte Domain
Verwenden Sie eine Partnerdomain, die für Sie neu ist. Eine leere oder dünne Antwort sollte als unbekannt gespeichert werden, nicht als Fehler, und die Notiz sollte dies in klaren Worten sagen.
3
Erzwingen Sie absichtlich ein 402
Führen Sie den Hook mit einem Key auf einem Testkonto aus, dessen Guthaben Sie geleert haben. Bestätigen Sie, dass der Skip, die Protokollzeile und die Warnung ausgelöst werden und dass die Veröffentlichung den Build dennoch erreicht.
4
Lesen Sie die Nachricht, die der Editor sieht
Bitten Sie jemanden außerhalb des Teams, den Fehlertext laut vorzulesen. Wenn er nicht sagen kann, was als Nächstes zu tun ist, schreiben Sie die Nachricht vor dem Launch-Tag um. Der Post-Mortem zeigt, was eine vage Nachricht einem erfundenen Team gekostet hat.
Was der Hook nicht sehen kann
Unser Index aktualisiert sich etwa einmal im Monat. Ein nach der letzten Aktualisierung hinzugefügter Link wird nicht angezeigt, und ein seitdem entfernter Link kann noch erscheinen. Für den Nachweis am selben Tag verwenden Sie den Links-Bericht in der Google Search Console.