Hoppa till innehåll
SEOBlogBotSkapa konto

Beslutsträd

Länkporten innan publicering: blockera, håll eller godkänn

Ett enda bulk-anrop mot värdarna som ett utkast länkar till, följt av ett fyra-frågors-träd. Trädet bestämmer om inlägget publiceras, väntar på en person eller stoppas.

SEOBlogBot forskningsgrupp ·

Tre olika träportar längs en broväg i low-poly-stil
Namngivningsnotering

Människor skriver "a href backlink checker" när de menar Ahrefs. Porten nedan fungerar med vilken källa som helst för ett domänbetyg, och här använder vi vår egen bulk_dr-åtgärd. Verkliga verktyg på detta område inkluderar Ahrefs, Semrush och Moz; Google Search Console visar endast dina egna länkar.

Vad porten tittar på

Porten läser endast utgående länkar. Den tittar inte på rankningar, trafik eller Search Console-data, och den behöver aldrig din analys.

Ett skript hämtar varje <a href> från den renderade HTML-koden och reducerar varje URL till dess värd. Den tar bort dubbletter och skickar listan till bulk_dr i ett enda anrop. Inget annat lämnar ditt bygg. Det är en kredit för upp till 2 000 värdar, så även ett inlägg med sextio referenser kostar en bråkdel av en cent.

Kör det på den renderade HTML-koden, inte på Markdown. Shortcodes, inbäddningar och plugins lägger till länkar som du aldrig skrev. Kontrollera vad besökare ser.

Var det körs

Placera porten så sent som möjligt. Den bästa platsen är det sista byggsteget innan schemaläggaren, efter att CMS:t eller statisk generator har producerat den slutgiltiga HTML-koden. Samma bulk-anrop överallt.

WordPress

Koppla statusändringen till Schemalagd och kör porten inom den hooken. Inlägget bör bara förbli schemalagt efter att domen kommer tillbaka PASS. En hook, en regel.

Hugo

Lägg till ett steg efter hugo build som läser den genererade HTML-koden från public-mappen. Skicka värdlistan till bulk-anropet innan deploy-steget körs.

Ghost

Prenumerera på en webhook för post-scheduled-händelsen. Handläggaren hämtar länkarna från inläggets HTML och gör samma anrop, så att Ghost och de statiska sidorna delar en regel.

Trädet, en fråga i taget

01

Kommer någon värd tillbaka med betyg 0 eller ingen rad?

Ett nolltal betyder att vårt index inte har några hänvisande domäner för det. Det är normalt för en helt ny webbplats och en varning för allt du citerar som auktoritet. Gå till fråga 2.

02

Är noll-värdaren en källa du namngav i texten?

Om inlägget kallar det för en studie, en rapport eller en officiell sida, HÅLL inlägget och skicka det till en redaktör. Om det är en fotnotverktyg eller ett varumärkesnämnande, GODKÄNN.

03

Sitter tre eller fler värdar under ditt eget golv?

Välj golvet från din historik (se avsnittet nedan). Tre eller fler svaga värdar i ett inlägg betyder vanligtvis en skrapad lista eller ett klistrat AI-utkast. HÅLL.

04

Länkas samma värd mer än fem gånger?

Upprepade länkar till ett enda externt domän ser ut som ett affiliate-mönster. Minska dem till den första nämnningen. Om skriptet inte kan bestämma, HÅLL.

Trädgårdsmästare som klipper en buske med sax i en trädgård

Varför trädet frågar i denna ordning

Frågorna går från den billigaste signalen till den mest omdömeskrävande. Varje svar begränsar vad nästa fråga måste bestämma, så att en person läser färre utkast.

Ordningen skyddar också en redaktörs tid. En HOLD med en tydlig anledning tar en minut att agera på, medan en vag flagga ignoreras i slutet av veckan.

Noll först, sedan kontext

En nolla är den billigaste signalen, så den kommer först. I sig själv berättar den lite. Nästa fråga avgör om nollan betyder något, vilket är varför trädet aldrig blockerar på en nolla i sig.

Tänk på en värd som är ny i index. Den får noll, och ingen i teamet har hört talas om den. Om inlägget bara citerar det i förbigående, är svaret GODKÄNN.

Golv före räknings

En enda svag värd är vanligtvis brus. Flera svaga värdar i ett utkast bildar ett mönster, och ett mönster är vad ett golv är för. Ställ in golvet från din historik innan du räknar något, så att räknningen har en mening.

Upprepningar kommer sist

Upprepade länkar till en värd är en stilfråga snarare än en kvalitetsfråga. Fråga den sist, efter att kvalitetsfrågorna har körts. En upprepningsräkning i sig bör sällan bestämma ett inlegs öde.

Vad varje utgång gör i pipeline

Utgångskoder är ett förslag; mappa dem till ditt eget CI.
UtgångBetydelsePipeline-åtgärdVem tittar
GODKÄNNIngen regel avfyradesInlägget flyttas till schemaläggarenIngen
HÅLLEn mjuk regel avfyradesStatus satt till Väntar på granskning, Slack-meddelande med värdlistanEn redaktör
BLOCKERAAPI-fel 401/402 eller felaktig listaJobbet misslyckas, inlägget förblir utkastDen som äger pipeline

Vad en redaktör bör se på en HOLD

  • Inläggets titel och den plats det skulle ha tagit i schemat.
  • Varje flaggad värd med dess betyg och den regel som avfyrades.
  • Meningen där värden förekommer, så att ingen söker hela utkastet.
  • En enradig anledning när skriptet inte kunde bestämma.
  • Ett tydligt sätt att släppa inlägget eller skicka det tillbaka till författaren.

Att välja golvet utan att låna ett

Börja med din egen historik. Ta trettio publicerade inlägg som du är nöjd med och kör deras utgående värdar genom bulk_dr en gång. Sortera betygen, och titta sedan på tionde percentilen.

Den percentilen är en rimlig första golv, eftersom den flaggar de svagaste tiondelarna av vad du redan accepterar. Vårt betyg är en logaritmisk skala från 0 till 100, och Ahrefs DR och Moz DA förblir separata skalor. Forumtröskelvärden överförs inte.

Behåll trettio-inläggsprovet i ditt repository, med datumet bredvid det, så att golvet kan beräknas om när provet ändras.

Granska golvet varje kvartal. Länkgrafiken växer, och indexet uppdateras ungefär en gång i månaden. En värd som fick 8 på våren kan läsa 15 efter en uppdatering. Glossary förklarar begreppen bakom dessa nummer.

Porten på trettio rader

En skiss i skal och jq. Byt ut ditt språk; formen förblir densamma.

bash
HOSTS=$(grep -o 'href="https\?://[^/"]*' post.html | sed 's|.*//||' | sort -u | paste -sd, -)
RES=$(curl -s -H "Authorization: Bearer $SBB_KEY" \
  "https://seoblogbot.com/api.php?action=bulk_dr&domains=$HOSTS")

case $(echo "$RES" | jq -r '.ok') in
  true) ;;
  *) echo "BLOCK: api error"; exit 2 ;;
esac

# inspect the response once and adapt the jq path to its shape
echo "$RES" | jq '.'
Hammar, skiftnyckel och skruvmejsel arrangerade på en verkstadsbänk

När ett portanrop misslyckas

Inte varje fel är en dom över utkastet. Ett misslyckat anrop är ett problem i jobbet, och de tre HTTP-fallen nedan behöver tre olika svar. Skriv ner dessa svar innan lansering. Ingen bör improvisera ett på natten.

En 401 är ett installationsproblem

En 401 betyder att nyckeln saknas eller är fel. Behandla det som ett trasigt jobb, inte som en dom över inlägget. Inlägget förblir i utkast, och ägaren av pipeline får meddelandet.

En 402 är ett budgetproblem

En 402 betyder att krediten tog slut, och att försöka igen kan inte fixa det. Stoppa jobbet och varna en person. Fyll på från kontosidan, och kör sedan det misslyckade batchen igen.

En felaktig svar är en bugg

Om JSON:t inte kan parsas eller ok är false, skriv det råa svaret till loggen och stanna. Gissa inte vid saknade fält. En gissat betyg kan godkänna ett inlägg som borde ha hållits.

Logga varje misslyckande med post-ID:t, HTTP-statusen och tiden, så att samma fel inte kan upprepa sig tyst.

Att kontrollera utfallet, inte bara anropet

Ett lyckat svar betyder att anropet fungerade. Det bevisar inte att inlägget är schemalagt med rätt status. Läs det tillbaka. Efter att porten har satt Schemalagd, bekräfta statusen och publiceringstiden innan jobbet räknas som klart.

Annars kan en port gå igenom på papperet medan CMS:t tyst släpper ändringen. Skriv den här återläsningen i samma jobb. Den här kontrollen är billig. Låt det misslyckas högljutt när statusen inte matchar.

Återläsningen visar också vilket steg som har drivit. Om statusen är fel, kan porten ha körts innan det slutliga byggandet. Känn det innan nästa release.

Behåll återläsningsresultatet i loggen bredvid portdomen. De två tillsammans visar om porten och CMS:t höll med om en given dag.

Frågor teamen ställer innan de lägger till en port

Är en a href-baklänkskontroll samma sak som denna port?

Nej. Människor skriver den frasen när de menar Ahrefs. Denna port är ett skript som läser länkdata via ett API, och det körs i ditt pipeline snarare än i en webbläsarflik.

Säkrar en port publiceringen?

Den extra kostnaden är en rundtur till API:t per utkast. Mät det på ditt eget nätverk innan du bestämmer att det är för långsamt, eftersom svaret beror på ditt byggsetup.

Hur väljer jag golvet på dag ett?

Använd trettio-inläggsprovet från avsnittet ovan. Innan du har ett, kör porten i logg-endast-läge, där den registrerar domar och ändrar ingen status.

Ersätter porten en redaktör?

Nej. Den sorterar utkast i PASS, HOLD och BLOCK så att en redaktör läser färre av dem. En person bestämmer fortfarande vad en HOLD betyder för det inlägget.

Kan porten köras på ett utkast som inte är slutgiltigt?

Det kan, men domen beskriver bara länkarna vid det ögonblicket. Kör det igen på den slutgiltiga HTML-koden, eftersom en sen redigering kan lägga till eller ta bort en länk.

Betyder en nolla alltid att källan är dålig?

Nej. En nolla betyder att vårt index inte har några hänvisande domäner för den värd. Det är normalt för en ny webbplats, och det blir en varning bara när inlägget presenterar den värd som en auktoritet.

Vår position

Håll mer än du blockerar

En port som blockerar för lätt stängs av av den tredje irriterade redaktören. Behåll BLOCK för trasig infrastruktur och låt regelträffar bli en HOLD med en tydlig anledning.

  • Logga värdlistan med domen så att överklaganden tar en minut.
  • Kör post-publish audit som ett andra lager.
  • Läs post-mortem för felet som får team att lägga till detta.