Проверка обратных ссылок в реальном времени: миф, реальность и таблица повторов
Каждый инструмент с такой пометкой — это краулер с задержкой. Наш обновляется примерно раз в месяц. Вот как настроить скрипт, не тратя кредиты зря.
Редакция Linkzoid ·
Миф против реальности
Миф
Реальность
Опрос раз в час ловит новую ссылку раньше
Индекс обновляется примерно раз в месяц, поэтому 29 из 30 опросов возвращают те же строки
Отсутствие ссылки означает, что она была удалена
Она может быть просто новее последнего обновления
Более свежие данные всегда лучше
Для отслеживания трендов стабильный ежемесячный снимок лучше, чем зашумленные ежедневные данные
Search Console — это те же данные
Он показывает то, что Google сообщает о вашем ресурсе, что является другой, частичной выборкой
Платный план делает краулинг мгновенным
Ни один вендор не краулит каждую страницу каждый день
Как работать с ежемесячным индексом
Большая часть работы — это одна привычка: запускать еженедельно, сравнивать ежемесячно.
Если вы только что получили ссылку и хотите подтверждения, не ждите обновления индекса. Откройте страницу, посмотрите исходный код и подтвердите анкор и атрибут rel. Затем дождитесь следующего обновления. Самому Google требуются дни или недели для повторного краулинга, а изменение 2016 года Penguin 4.0 сделало реальным временем только его собственную обработку, а не то, что могут видеть сторонние инструменты.
Проверка обратных ссылок в реальном времени в строгом смысле потребовала бы наблюдения за всем вебом. Никто этим не занимается, а дешевый трюк с повторным запросом устаревшей базы данных каждый час просто тратит кредиты на тот же ответ.
Уведомления о новых ссылках и почему они разочаровывают
Люди часто просят уведомление в момент появления ссылки. Запрос обоснован. Честный ответ заключается в том, что ежемесячный индекс не может его предоставить, потому что ссылка, появившаяся в сети сегодня, может не попасть ни в один индекс в течение нескольких недель.
Уведомления, построенные на повторном опросе, выглядят активными, но не сообщают ничего нового. Три подраздела ниже объясняют, куда уходит effort, и что может сделать более спокойная настройка.
Что на самом деле может увидеть уведомление
Уведомление может наблюдать только за тем, что уже есть в индексе. Между обновлениями возвращаются те же строки, и уведомление, срабатывающее на идентичные данные, — это просто шум в вашем почтовом ящике.
Опрос добавляет вызовы, а не строки
Ежечасный опрос отправляет множество запросов для одного ответа. Примечание о стоимости в конце этой страницы показывает арифметику. Счет растет с частотой, а строки остаются на месте.
Запрос с датой выполняет ту же работу
Еженедельная задача записывает файл с датой, а diff с прошлой неделей показывает изменения. Результат соответствует реальному ритму данных, и вы все равно узнаете о новых строках в течение недели.
Файл также является вашим доказательством, когда кто-то спрашивает, что изменилось в прошлом месяце. Сохраняйте одинаковое имя файлов от запуска к запуску, чтобы они сортировались автоматически.
Таблица устранения неполадок для циклов
Ответ
Значение
Что должен делать скрипт
HTTP 401
Ключ отсутствует или неверен
Остановить, отправить уведомление, не повторять
HTTP 402
Кредиты закончились
Остановить, пополнить USDT, запустить вручную
ok: false с кодом 200
Неверный параметр, например неизвестное действие
Записать тело ответа и завершить задачу с ошибкой
Таймаут или 5xx
Сбой сети или сервера
Повторить дважды с интервалом 10 и 60 секунд
Строки ниже total
Ваша пагинация завершилась досрочно
Исправить цикл; данные в порядке
Баланс падает быстрее, чем планировалось
Цикл повторно запрашивает страницы
Сравнить _credits до и после каждого запуска
Обертка для повторов, которая не тратит кредиты дважды
Повторяются только временные сбои. 401 и 402 завершают работу сразу.
python
import json, time, urllib.request as u, urllib.error as e
def call(url, tries=3):
for i in range(tries):
try:
with u.urlopen(url, timeout=30) as r:
return json.load(r)
except e.HTTPError as x:
if x.code in (401, 402):
raise SystemExit(f'stop: HTTP {x.code}')
if i == tries - 1:
raise
except (e.URLError, TimeoutError):
if i == tries - 1:
raise
time.sleep(10 * 6 ** i)
Укажите стоимость в одной строке. Еженедельный запрос refdomains для одного домена стоит 2 кредита, то есть около $0.01 в год.
Относитесь с подозрением к любому обещанию проверки обратных ссылок в реальном времени, включая наше. Честная пометка для того, что можно автоматизировать, — это ежемесячный индекс с еженедельной привычкой вокруг него, что все еще лучше, чем ручной контроль раз в квартал.
Настройте проверку свежести, соответствующую данным
Эти четыре шага заменяют уведомление привычкой, которую можно поддерживать.
01
Выберите один ритм
Еженедельно для запроса, ежемесячно для сравнения. Запишите оба графика в заметках репозитория, чтобы расписание не сбивалось со временем.
02
Сохраняйте исходный ответ
Сохраняйте JSON без изменений под сегодняшней датой. Вы сможете пересчитать любые числа позже и вам никогда не придется доверять сводке, которую нельзя проверить.
03
Сравнивайте множества, а не общие суммы
Посчитайте, что появилось и исчезло между двумя запросами. Общая сумма, которая остается неизменной, может скрывать замену пятидесяти доменов.
04
Остановите цикл при первой ошибке
401, 402 или ok, равный false, завершают запуск. Следующий запланированный запуск попробует снова, что дешевле, чем любой цикл уведомлений.
Чтение отсутствующей ссылки без паники
Ссылка, которой еще нет в индексе, — это другой случай, чем ссылка, которая была удалена. Их смешение приводит к неверным решениям, поэтому проверьте, какой у вас случай, прежде чем действовать.
Начните со страницы. Если она все еще активна и ссылка там есть, индекс просто отстает. Дождитесь следующего обновления, прежде чем делать выводы о странице или сайте.
Новее последнего обновления
Большинство отсутствующих ссылок — недавние. Запишите дату, когда вы нашли ссылку, и сравните ее с датой последнего обновления. Разрыв в несколько недель — это нормально для ежемесячного индекса.
Ссылка, которую вы нашли во вторник и проверили в пятницу, еще не успела попасть в индекс, поэтому разрыв ожидаем, а не тревожен.
Удалена, перемещена или никогда не проиндексирована
Некоторые ссылки действительно исчезли. Страница была удалена, ссылка была удалена из текста, или страница теперь находится за логином. Проверьте саму страницу. Если ссылка там есть, а индекс ее все еще не содержит, это вопрос индекса, а не изменения на другом сайте.
Запишите, какой случай вы обнаружили, потому что исправление для каждого из них разное.
Три обновления ссылок от Google, задающие темп
Penguin 4.0
Google заявил, что свой сигнал спам-ссылок стал частью основного алгоритма и работает в реальном времени на его стороне.
Обновление спам-ссылок
Google объявил об обновлении SpamBrain, направленном на нейтрализацию спамных ссылок, а не на их подсчет.
Основные и спам-обновления
Масштабное обновление в марте изменило то, как Google обрабатывает контент низкой ценности и манипулятивные ссылки, и на стабилизацию ушли недели.
Что делать, когда нужно доказательство сегодня
Проверка занимает меньше времени, чем споры о ней. Посмотрите исходный код страницы. Ищите свой URL, анкорный текст и любые атрибуты nofollow, sponsored или ugc.
Для большого набора данных получите страницы-доноры самостоятельно с помощью вежливого скрипта с задержкой и выполните grep HTML по вашему домену. Это другая задача, чем запрос к индексу, и это единственный способ увидеть ссылку, опубликованную час назад.
Ежемесячный ритм, который остается дешевым
Представьте небольшой сайт с одной целевой областью. Задача запускается каждый понедельник, записывает файл и больше ничего не делает до первого числа месяца. Это совпадает с обновлением. Использование кредитов остается стабильным.
Первый понедельник каждого месяца — день сравнения. Откройте два последних файла, посчитайте новые и исчезнувшие домены и запишите одну строку в заметках. Обычно достаточно десяти минут. Эти заметки станут историей, которой можно доверять.
Сохраняйте сравнение в одном и том же месте каждый месяц, чтобы история читалась как одна строка.
Что делать с всплеском
Резкий скачок новых строк после обновления — это нормально, так как индекс может догнать несколько недель сразу. Прочтите выборку новых доменов, прежде чем решать, является ли это кампанией или проблемой.
Если всплеск — это один домен с сотнями строк, поищите шаблон или виджет, прежде чем читать это как кампанию.
Что делать с тихим месяцем
Плоский месяц — это часто просто плоский месяц. Проверьте, запустилась ли задача и записала ли файл, потому что задача, которая молча остановилась, выглядит точно так же, как тихий индекс.
Вопросы о реальном времени, ответы
Одни и те же несколько вопросов возникают каждый раз, когда расписание настраивается впервые.
Существует ли по-настоящему проверка обратных ссылок в реальном времени?
Нет такой, которая охватывает весь веб. Любой инструмент, обещающий реальное время, описывает краулер с задержкой, и задержку — это то, о чем стоит спросить. Наш обновляется примерно раз в месяц, и на странице об этом сказано.
Как часто скрипт должен вызывать API?
Еженедельно достаточно для запроса и ежемесячно для сравнения трендов. Опрос чаще стоит кредитов и возвращает те же строки до обновления индекса.
Почему другой инструмент может показать ссылку, которой нет в моем API?
Каждый индекс краулит разные срезы веба по своему расписанию. Ссылка может попасть в один индекс раньше, чем в другой, поэтому сравнивайте тренды внутри одного источника, а не между двумя.
Могу ли я получить письмо, когда появится новая ссылка?
Только если ваша задача отправляет его. Запланированный скрипт может сравнить два запроса с датами и отправить новые домены по электронной почте или в чат. Также оставьте уведомления об ошибках, чтобы молчаливый сбой не остался незамеченным.
Тратит ли повтор кредиты дважды?
Повтор после таймаута может потратить второй вызов, поэтому обертка выше останавливается на 401 и 402 и ждет между попытками. Читайте _credits до и после каждого запуска, чтобы увидеть, сколько на самом деле стоит задача.
Стоимость привычки
Опрос refdomains одного домена каждый час — это 24 вызова в день по 2 кредита, то есть 48 кредитов или $0.0048 в день. Дешево в деньгах, бесполезно в информации. Еженедельная стоимость составляет одну седьмую от ежедневного опроса и показывает то же самое.