Перейти до змісту
SEOBlogBotЗареєструватися

Дерево рішень

Вхідний контроль посилань: блокувати, призупиняти або пропускати

Один пакетний виклик для хостів, на які посилається чернетка, а потім чотириетапне дерево. Дерево вирішує, чи публікувати допис, чи чекати на дію редактора, чи зупинити процес.

Дослідницька команда SEOBlogBot ·

Три дерев'яні ворота на мосту в стилі low-poly
Примітка щодо назви

Користувачі вводять "перевірка зворотних посилань a href", маючи на увазі Ahrefs. Контроль нижче працює з будь-яким джерелом оцінки домену, і тут ми використовуємо власний метод bulk_dr. Реальні інструменти в цьому сегменті включають Ahrefs, Semrush та Moz; Google Search Console показує лише ваші власні посилання.

На що звертає увагу контроль

Контроль аналізує лише вихідні посилання. Він не оцінює позиції в пошуку, трафік або дані Search Console і ніколи не потребує ваших аналітичних даних.

Скрипт витягує кожен <a href> з відрендереного HTML і зводить кожне URL-адресу до її хоста. Він видаляє дублікати і надсилає список у bulk_dr одним викликом. Нічого більше не виходить за межі вашого збігу. Це один кредит для до 2000 хостів, тому навіть допис із шістдесятьма посиланнями коштує частки цента.

Запускайте його на відрендереному HTML, а не на Markdown. Шорткоди, вбудовані елементи та плагіни додають посилання, яких ви не вписували вручну. Перевіряйте те, що бачить відвідувач.

Де він запускається

Розміщуйте контроль якомога пізніше. Найкраще місце — останній крок збігу перед планувальником, після того, як CMS або генератор статичних сторінок створили фінальний HTML. Той самий пакетний виклик для всіх.

WordPress

Підключіть зміну статусу до події "Заплановано" і запускайте контроль всередині цього хука. Допис повинен залишатися в статусі "Заплановано" лише доки не надійде вердикт PASS. Один хук, одне правило.

Hugo

Додайте крок після hugo build, який зчитує згенерований HTML з папки public. Надішліть список хостів у пакетний виклик перед запуском кроку розгортання.

Ghost

Підпишіть вебхук на подію після запланування допису. Обробник витягує посилання з HTML допису і робить той самий виклик, тому Ghost та статичні сайти дотримуються одного правила.

Дерево: по одному питанню за раз

01

Чи повертається хоча б один хост з рейтингом 0 або без рядка?

Нуль означає, що наш індекс не містить посилальних доменів для нього. Це нормально для нового сайту, але є попередженням для будь-чого, на що ви посилаєтеся як на авторитет. Переходьте до питання 2.

02

Чи є нульовий хост джерелом, яке ви згадали в тексті?

Якщо допис називає його дослідженням, звітом або офіційною сторінкою, ПРИЗУПИНИТЕ допис і надішліть його редактору. Якщо це інструмент для приміток або згадка бренду, ПРОПУСТИТЕ.

03

Чи знаходяться три або більше хостів нижче вашого порогу?

Оберіть поріг з вашої історії (див. розділ нижче). Три або більше слабких хостів в одному дописі зазвичай означають вкрадений список або вставлений AI-чернетку. ПРИЗУПИНИТЕ.

04

Чи посилається на той самий хост більше п'яти разів?

Багаторазові посилання на один зовнішній домен виглядають як афілійна схема. Зведіть їх до першої згадки. Якщо скрипт не може визначитися, ПРИЗУПИНИТЕ.

Садовник обрізає кущ ножицями в саду

Чому дерево ставить питання в такій послідовності

Питання йдуть від найдешевшого сигналу до найбільш суб'єктивного. Кожна відповідь звужує коло того, що має вирішити наступне питання, тому редактору доводиться читати менше чернеток.

Послідовність також захищає час редактора. ПРИЗУПИНЕННЯ з чіткою причиною займає хвилину, тоді як неясний прапор ігнорують до кінця тижня.

Спочатку нуль, потім контекст

Нуль — найдешевший сигнал, тому він йде першим. Сам по собі він мало що говорить. Наступне питання вирішує, чи має значення нуль, чому дерево ніколи не блокує лише через нуль.

Уявіть хост, який є новим для індексу. Він отримує нуль, і ніхто в команді про нього не чув. Якщо допис лише згадує його в побіжних деталях, відповідь — ПРОПУСТИТИ.

Пороги перед підрахунками

Один слабкий хост зазвичай — це шум. Кілька слабких хостів в одній чернетці утворюють шаблон, а шаблон — це те, для чого потрібен поріг. Встановіть поріг з вашої історії перед тим, як щось рахувати, щоб підрахунок мав сенс.

Повтори йдуть останніми

Багаторазові посилання на один хост — це питання стилю, а не якості. Запитуйте про це останнім, після того як спрацюють питання якості. Підрахунок повторів сам по собі рідко має вирішувати долю допису.

Що робить кожен вихід у конвеєрі

Коди виходу — це пропозиція; прив'яжіть їх до вашої власної CI.
ВихідЗначенняДія в конвеєріХто перевіряє
PASSЖодне правило не спрацювалоДопис переходить до планувальникаНіхто
HOLDСпрацювало одне м'яке правилоСтатус встановлено як "На розгляд", повідомлення в Slack зі списком хостівРедактор
BLOCKПомилка API 401/402 або некоректний списокЗавдання завершується з помилкою, допис залишається в чернетціТой, хто керує конвеєром

Що має бачити редактор на HOLD

  • Назва допису та слот, який він мав зайняти в розкладі.
  • Кожен позначений хост із його рейтингом і правилом, яке спрацювало.
  • Речення, в якому з'являється хост, щоб ніхто не шукав у всій чернетці.
  • Однорядкова причина, коли скрипт не зміг визначитися.
  • Чіткий спосіб опублікувати допис або повернути його автору.

Вибір порогу без запозичення чужого

Почніть зі своєї історії. Візьміть тридцять опублікованих дописів, якими ви задоволені, і пропустіть їхні вихідні хости через bulk_dr один раз. Відсортуйте рейтинги, а потім подивіться на десятий відсотильний рівень.

Цей відсотильний рівень — розумний перший поріг, оскільки він позначає найслабші десять відсотків того, що ви вже приймаєте. Наш рейтинг — це логарифмічна шкала від 0 до 100, а Ahrefs DR та Moz DA залишаються окремими шкалами. Пороги форумів не передаються.

Зберігайте вибірку з тридцяти дописів у своєму репозиторії з датою поруч, щоб поріг можна було перерахувати, коли змінюється вибірка.

Переглядайте поріг щокварталу. Граф посилань росте, а індекс оновлюється приблизно раз на місяць. Хост, який навесні мав рейтинг 8, після оновлення може мати 15. Глосарій пояснює терміни, що стоять за цими цифрами.

Контроль у тридцяти рядках

Схема на shell та jq. Замініть на свою мову; структура залишається незмінною.

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 '.'
Молоток, ключ та викрутка, розкладені на робочому столі

Коли виклик контролю не вдається

Не кожна помилка — це вердикт щодо чернетки. Невдалий виклик — це проблема в завданні, і три HTTP-випадки нижче потребують трьох різних реакцій. Запишіть ці реакції до запуску. Ніхто не повинен придумувати їх вночі.

401 — це проблема налаштування

401 означає, що ключ відсутній або неправильний. Вважайте це зламаним завданням, а не оцінкою допису. Допис залишається в чернетці, а власник конвеєра отримує повідомлення.

402 — це проблема бюджету

402 означає, що кредити закінчилися, і повторна спроба не виправить цього. Зупиніть завдання і сповістіть людину. Поповніть кошти на сторінці облікового запису, а потім запустіть невдалу партію знову.

Некоректна відповідь — це баг

Якщо JSON не парситься або ok є false, запишіть сирі дані в лог і зупиніться. Не вгадуйте відсутні поля. Вгаданий рейтинг може пропустити допис, який мали б призупинити.

Логуйте кожну помилку з ID допису, HTTP-статусом і часом, щоб та сама помилка не повторювалася непомітно.

Перевірка результату, а не лише виклику

Успішна відповідь означає, що виклик спрацював. Це не доводить, що допис заплановано з правильним статусом. Прочитайте його знову. Після того, як контроль встановив Scheduled, підтвердьте статус і час публікації, перш ніж вважати завдання завершеним.

Інакше контроль може формально пройти, тоді як CMS тихо ігнорує зміну. Додайте це зчитування в те саме завдання. Ця перевірка дешева. Дозвольте їй гучно падати, якщо статус не збігається.

Зчитування також показує, який крок змістився. Якщо статус неправильний, можливо, контроль спрацював до фінальної збірки. Дізнайтеся про це до наступного релізу.

Зберігайте результат зчитування в логу поруч із вердиктом контролю. Разом вони показують, чи погодилися контроль і CMS того дня.

Питання, які задають команди перед додаванням контролю

Чи є перевірка зворотних посилань a href тим самим контролем?

Ні. Люди вводять цю фразу, маючи на увазі Ahrefs. Цей контроль — це скрипт, який зчитує дані посилань через API і працює всередині вашого конвеєра, а не у вкладці браузера.

Чи уповільнює контроль публікацію?

Додаткові витрати — це один обмін з API для кожної чернетки. Виміряйте це у своїй мережі, перш ніж вирішувати, що це занадто повільно, бо відповідь залежить від вашої конфігурації збірки.

Як вибрати поріг з першого дня?

Використовуйте вибірку з тридцяти дописів з розділу вище. Доки її немає, запускайте контроль у режимі лише логування, де він записує вердикти, але не змінює статус.

Чи замінює контроль редактора?

Ні. Він сортує чернетки на PASS, HOLD і BLOCK, щоб редактор читав менше з них. Людина все ще вирішує, що означає HOLD для цього допису.

Чи може контроль працювати на чернетці, яка не є фінальною?

Може, але вердикт описує лише посилання на той момент. Запустіть його знову на фінальному HTML, бо пізні редагування можуть додати або видалити посилання.

Чи завжди нуль означає, що джерело погане?

Ні. Нуль означає, що наш індекс не містить посилальних доменів для цього хоста. Це нормально для нового сайту, і це стає попередженням лише тоді, коли допис подає цей хост як авторитет.

Наша позиція

Призупиняйте більше, ніж блокуйте

Контроль, який легко блокує, вимкнуть третій розлючений редактор. Залиште BLOCK для зламаної інфраструктури, а спрацювання правил перетворюйте на HOLD з чіткою причиною.

  • Логуйте список хостів із вердиктом, щоб апеляції займали хвилину.
  • Запустіть аудит після публікації як другий шар.
  • Прочитайте постмортем про помилку, яка змушує команди додавати це.