Канал seo блоггера Евгения Молдовану
1.17K subscribers
113 photos
2 videos
3 files
150 links
Senior SEO специалист. В Seo с 2007 года.
e-moldovanu.com
Реклама https://e-moldovanu.com/reklama.html
Контакт https://t.me/devvver
Download Telegram
⌨️ Как Google реально детектит ботов: поведение + fingerprint

Недавний разбор SearchGuard (антибот-системы Google) из судебного иска против SerpAPI — редкий случай, когда внутренняя логика антибота стала публичной. И главное тут не суд, а методы детекции, которые уже сейчас ломают весь класс парсеров и “антидетектов”.

Коротко: Google больше не ищет ботов — он ищет людей.

🟡 1. Поведенческая биометрия (behavioral signals)

🔹SearchGuard непрерывно собирает микросигналы и строит статистический профиль поведения.
Мышь
🔹траектория (кривые vs прямые)
🔹скорость и ускорение
🔹микродрожание
🔹Идеально ровное движение = бот.
🔹Отклонение скорости < 10 → автоматизация
🔹У человека: 50–500

Клавиатура

🔹интервалы между нажатиями
🔹длительность удержания клавиш
🔹паузы после пунктуации
🔹< 5 мс между нажатиями → бот
🔹У человека: 20–150 мс

Скролл

🔹вариативность длины
🔹инерция
🔹смена направления
🔹Фиксированные шаги (100px, 100px, 100px) = красный флаг
🔹Разброс < 5px → бот
🔹У человека: 20–100px

Синхронизация времени

🔹анализ дисперсии событий в реальном времени
🔹Если интервалы детерминированы → бот
🔹200 событий/сек → автоматизация
🔹У человека: 10–50

Важно: данные не сохраняются целиком — используется онлайн-статистика.

🟡 2. Статистика вместо эвристик

Два ключевых алгоритма:

🔹Welford — считает дисперсию “на лету” с постоянной памятью
🔹Sampling — случайная выборка ~50 событий на метрику

Это делает бесполезными:

🔹“рандомайзеры задержек”
🔹replay логов
🔹имитацию заранее записанных сессий

Если распределение не похоже на человеческое — ты бот, даже если браузер идеален.


🟡 3. DOM-fingerprint: >100 элементов

Google смотрит не только на JS-API, но и на структуру страницы:

🔹формы, input, button — приоритет
🔹article, section, nav, main, footer
🔹текстовые, табличные, canvas/figure
🔹dialog, menu, details
Важно не наличие элементов, а как браузер с ними взаимодействует.

Headless часто “видит” DOM, но не взаимодействует с ним как человек


🟡 4. Экологический fingerprint (environmental)

Собирается полный слепок среды:

🔹navigator: cores, memory, languages
🔹screen: DPR, color depth, resolution
🔹performance.now() jitter
🔹visibilityState, focus
🔹тайминговый шум
🔹webdriver
🔹chrome.runtime
🔹$cdc_, selenium, phantom артефакты

Но ключ не в флагах — в согласованности всей среды.

🟡 5. Данные кода меняются каждую минуту

SearchGuard:

🔹генерирует криптотокены (ARX-шифр)
🔹меняет криптоконстанты при каждом обновлении
🔹новый JS = новый hash = новый fingerprint
🔹Даже полностью реверснутый обход устаревает при следующей ротации(новой страницы).

🟡 6. Главный вывод

Антибот больше не про:

🔹прокси
🔹user-agent
🔹canvas spoofing

Он про:

🔹дисперсию
🔹естественную ошибку
🔹человеческую неидеальность

Если твой бот слишком “аккуратный” — он мертв.
2👍22🥱4🤷2❤1🤮1
Маленькая фишечка в конкурентных тематиках.

В конкурентных тематиках часто Гугл не дает сразу встать в топ по всему кластеру. Для начала для тестирования он берет СЧ-НЧ и закидывает в топ для тестирования ctr и поведенческих факторов.

И тут обычно 2 проблемы:
🔹Выбирается какой то ключ, под который вы не оптимизировали посадочную и вы болтаетесь в 10-20 позициях, не получая кликов.
🔹Вы заходите в топ по ключам, по которым у вас нет ответа на странице - самая больная тема.

Пример:
🟡 iPhone 17
Вы в топе по ключам:
🟡 iPhone 17 в рассрочку (а у вас такого нет)
🟡 iPhone 17 макс 512 розовый (а у вас такой версии нет)
🟡 iPhone 17 макс Pro 512 розовый с доставкой в [город] (у вас есть доставка в этот город, но забыли вписать на страницу ключ, поэтому ранжируетесь на 30 позиции )

Что дальше - если ваш интент не совпадает, то вы накапливаете плохие ПФ и улетаете до следующей ротации, а как показывает практика можно выпасть до 6 месяцев легко.

Как решить это проблему? Мониторить новые ключи которые у вас заходят в топ и делать дооптимизацию. А иногда даже деоптимизацию, если вы добавили ключи по которым ранжироваться не хотите.

Почему мало сеошников делают подобное? Потому что это сложно. Сложно мониторить новые появляющиеся ключи.

Вот линк на скрипт который решает подобную проблему, автоматизируя поиск новых ключей.
1🔥10👍5
Помните пост с моим travel сервисом под Яндекс ? Я тогда писал что подключил ПФ для накрутки. До нового года я заюзал накрутку и вот спустя 2 месяца могу дать новые итоги.
Для начала - сайт фактически одностраничник, весь кластер - это главная страница.Частотность запросов в вордстате больше 1 млн, по одному из главных ключей - больше 380К точной частотности.

Я юзал Pfpult от Дмитрия Ярошка.
Плюсы:
🔹Двигает запросы с более 30К частотности "!W". Это первый сервис который это смог.
🔹Я закинул для теста 2 десятка ключей из тысяч. В результате сайт вырос в 5 раз по видимости (скрин с кейсо).
🔹Удобный импорт и расширение семантики с импортом с кейсо ключей.
🔹Автосъем позиций каждый день!

🔹Можна вручную менять количество кликов.
🔹Даже спустя 2 месяца ключи не выпали после прекращения накрутки, как это обычно бывает😐.

Минус сервиса
♦️Не сразу разобрался с параметром мощность и ограничением трат в день на накрутку.

Попробуйте сервис, по моей ссылке дадут 5000 рублей бесплатных для теста по ссылке:
👍7❤3🔥2
Анализатор сущностей на Wikidata (для Entity-based SEO).

Инструмент для визуализации данных и глубокого анализа объектов из Wikidata. Если вам нужно быстро понять структуру сущности, биографию личности или связи между терминами — этот сервис сделает всё за вас.

Что умеет сервис?
Умный поиск: Мгновенно находит нужную сущность среди миллионов объектов Викиданных. По клику открывает страницу ни Википедии. Поддерживает много языков, в том числе украинский, русский,английский и др.

♦️Граф атрибутов: Вы сразу видите все характеристики сущности в виде интерактивной карты.

♦️Граф релевантности:Перекрестные связи между связанными объектами, выявляя скрытую сеть зависимостей.

♦️Сбор фактов и алиасов: Извлекает короткие факты и описания (не для всех сущностей работает).

♦️Поисковые тренды: Поисковые подсказки Google.

🛠 Как это использовать?
Введите название: Например, «SpaceX»

Ссылка

Сделано на html+JS , можете сохранить локально и дорабатывать с ИИ
3👍8🔥4👌1
Иногда нужно для теста использовать API чатботов . С помощью Github можно получить бесплатно некоторые модели, до 150 запросов в день.

Ниже небольшой чат-клиент на Python для работы с моделями через GitHub Models (бесплатное API). Для работы с API нужен аккаунт на сервисе, карта не нужна.

Как получить API доступ
Идем сюда
https://github.com/marketplace/models
Выбираем модели. Если думаете какую выбрать - перейдите сюда.
Тут описаны лимиты и как использовать.


Небольшой пример по запросам к API gpt-4o
https://github.com/Devvver/gemini_csv_parser/blob/main/githubchatgptapi.py


Что реализовано в приложении:

➡️ ввод GitHub Personal Access Token в боковой панели
➡️ выбор модели: gpt-4o / gpt-4o-mini / o1-mini
➡️ обработка ошибок и лимитов (в т.ч. 429)

Подходит как готовый шаблон для:
➡️ быстрого тестирования GitHub Models,
➡️ внутреннего AI-чата для команды,
➡️ прототипов ассистентов под свои сервисы.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥4❤1👌1
▶️ Неудачный опыт создания чатбота на локальных данных.

Обычно никто не пишет о своих неудачах, но тут мой опыт важен, так как возможно кто то пойдет моим путем и не потратит время как я.

Я попытался построить RAG (Retrieval-Augmented Generation) на своем ноутбуке без мощной видеокарты и проца.

Что я делал:
👉 беру документы (в моём случае - HTML-файлы, около 3000)
👉 режу текст на чанки
👉 считаю для каждого chunks embeddings (векторы)
👉 сохраняю эти векторы в векторное хранилище
👉 при запросе в чатботе:

▶️считаю embedding запроса
▶️ищу по векторной базе самые похожие фрагменты
▶️передаю найденные куски в LLM как контекст для ответа

Реализовал все это на AnythingLLM , векторизация иногда создавалась до 6 часов (зависит от параметров ноута).

➡️Результаты:
Как я не тестил, с какими параметрами не пробовал, результаты отрицательные. Основная проблема кроется в нехватке LLM токенов для анализа информации.
Данные в html содержат более 20К текста в среднем и даже после резки на чанки не хватает контекста.

При использовании локальных LLM (LLama 4 и другие, перебрал с полдесятка) чатбот неизбежно галлюцинирует из за объема текста который в него подается.
Если в настройках ограничивать поиск, устанавливая более высокий порог сходства документов (>0.75) контекта иногда хватает, но режется большее количество данных и чатботу не хватает данных для анализа.


Пробовал использовать API доступ к моделям GROK которые доступны по API (не локальные), поиск улучшается, можно уменьшать порог сходства, но проблему галлюцинаций это не решает.

Итог отрицательный. Если кому то удалось - напишите в личку, поделитесь опытом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3❤1😁1
Google обучат понимать пользовательский интент на основе не только текста, но и визуального взаимодействия с интерфейсом.

Вот основные аспекты работы, описанные языком поисковой оптимизации и анализа пользовательского пути:

➡️1. Интент как последовательность действий (User Journey)

В SEO мы привыкли работать с интентом поискового запроса. Авторы исследования идут глубже и формализуют задачу извлечения интента (Intent Extraction) из целой «траектории» действий пользователя.
Траектория — это последовательность скриншотов и конкретных кликов/свайпов.
Цель — сгенерировать описание того, что пользователь на самом деле пытался достичь (например, «купить билет в Лувр»).
Для SEO это важно, так как подчеркивает: интент — это не статичное слово, а динамический процесс, который Google учится восстанавливать даже по обрывочным действиям.

➡️2. Двухэтапная архитектура: от микро-действий к макро-цели

Исследователи предложили метод декомпозиции, который позволяет даже малым моделям (small models), работающим на устройствах, превосходить по качеству понимания гигантские LLM (такие как Gemini 1.5 Pro).

Этап 1: Структурированное суммаризирование взаимодействия. Модель анализирует каждый отдельный шаг (скриншот + действие) и выделяет только важные детали экрана и суть клика.

Этап 2: Извлечение итогового интента. На основе агрегированных мини-отчетов со всех шагов формируется финальное описание цели.
SEO-инсайт: Точность понимания повышается, когда алгоритм сначала «сканирует» отдельные блоки/этапы страницы (структуру), а затем синтезирует их в общее понимание ценности страницы для пользователя.

➡️3. Критерии «качественного» интента

В работе четко определены три параметра, по которым оценивается, насколько правильно модель поняла пользователя.

Эти критерии можно переложить на оценку качества контента:

☑️Faithfulness (Достоверность): описание должно соответствовать только тем действиям, которые реально произошли.
☑️Comprehensiveness (Полнота): наличие всей информации, необходимой для воспроизведения действий.
☑️Relevance (Релевантность): отсутствие лишнего «шума», не относящегося к достижению цели.

➡️4. Борьба с «галлюцинациями» и шумом в данных

Авторы столкнулись с проблемой: при обучении модели часто «додумывают» детали, которых не было на экране (галлюцинируют). Чтобы решить это, они использовали Label Refinement — очистку обучающих данных от любой информации, которую нельзя напрямую вывести из скриншотов.
Это напоминает работу с поисковыми сниппетами: если в описании (description) указано то, чего нет на странице, это снижает доверие и качество опыта. Google стремится к тому, чтобы описание интента было максимально очищено от субъективности.

➡️5. Метрики понимания: BiFact vs BLEU

Интересен подход к оценке. Традиционные SEO-метрики (вроде текстового совпадения ключей) здесь сравниваются с лексическими метриками (BLEU/ROUGE), которые работают плохо, так как оценивают только совпадение слов. Вместо них Google использует семантические метрики, такие как BiFact, которые разбивают интент на атомарные факты и проверяют их точность и полноту. Это подтверждает тренд на Entity-based SEO и переход от анализа «ключевиков» к анализу «смысловых сущностей».

Почему это важно для будущего SEO?

Поиск становится агентским: Google активно развивает модели, которые смогут не просто выдавать ссылки, но и выполнять действия за пользователя (UI Automation). Понимание интента — фундамент для этого.

Визуальный контекст решает: Модели теперь «видят» структуру сайта (DOM, иерархию, кнопки) почти как человек. Оптимизация интерфейса (UI/UX) становится прямой частью поисковой оптимизации.


Локальные модели: Акцент на малых моделях, работающих on-device (прямо в браузере или телефоне), означает, что понимание пользователя будет происходить мгновенно и приватно, без обращения к облачным серверам, что ускоряет персонализацию выдачи.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4😁2🔥1
Я — автор расширения Watch nofollow premium — браузерного SEO-инструмента, который помогает пользователям видеть и анализировать все исходящие типы ссылок на странице за секунды.

📌 Что это такое
Watch nofollow premium — это расширение для Chrome, которое автоматически подсвечивает ссылки на страницах в зависимости от их атрибутов:

🔹 dofollow — передачи SEO-веса
🔹 nofollow — без передачи веса
🔹 sponsored — спонсорские/платные
🔹 ugc — пользовательский контент

Вместо ручного просмотра исходного кода и бессмысленных кликов вы в один взгляд видите структуру ссылочного профиля страницы.


📊 Зачем он нужен
Если вы:
✔️ SEO-специалист
✔️ линк-билдер
✔️ маркетолог или веб-аналитик
✔️ владелец сайта, блогер, веб-мастер

— тогда вы часто проверяете, какие ссылки ведут на страницу, какие из них передают SEO-вес, а какие — нет. Watch nofollow premium делает эту работу быстрой, понятной и визуальной.

🔥 Вместо множества инструментов — одно расширение:

✦ анализ на лету без перезагрузок (в том числе с перезагрузкой AJAX)
✦ гибкие настройки подсветки (цвета)
✦ фильтры, белые списки, исключения (можно настроить поддомены)
✦ лёгкая и чёткая визуализация
✦ расширение не грузит Chrome и не собирает логи!
✦ поддержка английского, украинского и русского языка

Ссылка на магазин Chrome.
🔥5👍4👎2❤1👌1
Зачем создавать плагин для Chrome ?

Все просто - во первых это индексируемая dofollow ссылка с страницы с DR 99.
Также этот сайт парсят другие агрегаторы, в консоли Гугла у меня еще 3 ссылки
https://extpose.com/ext/ojpkcmebfgfbcgcdmcilpppmlfegjhcb
https://extensionauditor.com/scan/watch-nofollow-premium-ojpkcmebfgfbcgcdmcilpppmlfegjhcb
https://chrome-stats.com/d/ojpkcmebfgfbcgcdmcilpppmlfegjhcb
Эти ссылки содержат nofollow ссылки, но парсят описание. А значит можно усилить свой EEAT добавив туда информации об авторе.
Спустя время плагин попадет в подборки плагинов по теме и получите еще дополнительные ссылки.
Это все всего лишь за 5 баксов.
👍5🔥4
Корреляция People Also Ask (Другие также ищут) и позиций в Google

Интересное исследование от AlsoAsked:


Что они проанализировали:
🔴 1 млн+ SERP
🔴 тысячи запросов
🔴 наличие ответов на PAA-вопросы на ранжирующихся страницах.

Что показала корреляция:

✅Страницы из Top-3 Google чаще всего отвечают на большее количество PAA-вопросов, чем страницы из Top-10.

✅Чем выше позиция, тем чаще страница покрывает несколько связанных вопросов из блока People Also Ask.

✅ Наиболее заметная корреляция наблюдается у информационных запросов (how, what, why).

✅ Страницы, которые отвечают на 3–5 PAA-вопросов, в среднем ранжируются заметно выше, чем страницы без таких ответов.

✅ Есть эффект семантического покрытия: страницы, которые закрывают кластер связанных вопросов, имеют больше шансов попасть в Top-5.

♦️ Но важный момент:
корреляция ≠ фактор ранжирования.
PAA-ответы сами по себе не дают топ.


Что это значит для SEO:

✔️ PAA — это карта пользовательских интентов
✔️ Добавляя ответы на такие вопросы, вы расширяете семантику страницы
✔️ Это помогает Google лучше понимать полноту ответа на тему

💡 Практический вывод:
Если страница таргетирует запрос — соберите 5–10 PAA-вопросов и закройте интенты в тексте (FAQ, подзаголовки, блоки ответов).

Так вы увеличите тематическое покрытие и вероятность ранжирования.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2😁1
Google Phrases Extractor:

Устали вручную копировать фразы из блоков «Другие также ищут» в Google?

Что умеет скрипт?

Мгновенный сбор: Добавляет яркую фиолетовую кнопку рядом с блоками похожих запросов и сопутствующих товаров и позволяет скопировать список в буфер обмена.


Мультиязычность: Полная поддержка UA, RU и EN интерфейсов Google. Язык интерфейса зависит от выбранного в Google Chrome по умолчанию.

Почему это удобно?
✅ Больше никакого выделения текста мышкой.
✅ Результат сразу копируется в буфер обмена в виде списка (каждая фраза с новой строки).
✅ Стильный UI с анимациями и уведомлениями.
✅ Позволяет скопировать в картинках блоки таксономий, сущностей и расширяющих запросов (2 скриншот - выделил красной рамкой) .

🛠 Как установить?
Установите расширение Tampermonkey.

Создайте новый скрипт.

Скопируйте и вставьте код с Github.

Зайдите в Google, введите любой запрос — и пользуйтесь!

Зачем нужны эти фразы? Они дополняют интент запросов и позволяют попадать в топ выдачи Гугла.



#SEO #Инструменты #Google #Automation
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
📊 Nginx Log Analyzer: Твой личный дашборд из access.log
Этот скрипт превращает сырые текстовые логи в интерактивные графики и таблицы прямо в браузере. Без серверов, без передачи данных в сеть — 100% приватно.

🚀 Что умеет скрипт:

Анализ трафика: общее число хитов, уникальные IP и объем скачанных данных.

Карта ошибок: мгновенный счетчик 404, 500 и других кодов ответа.


Интерактивные фильтры: кликни на любой час на графике или код ошибки — и все таблицы (IP, страницы, рефереры) пересчитаются под этот срез.

Детализация: можно «провалиться» в любой IP или URL, чтобы увидеть историю запросов и User-Agent.

📂 Где взять файл лога?
Вариант 1: Через интерфейс cPanel

В разделе «Метрики» выберите «Редактор необработанных журналов» (Raw Access Logs).

Нажмите на нужный домен и скачайте архив .gz.

🔴 Важно: Распакуйте архив перед использованием.

🔴 Вариант 2: Через FTP/SFTP (если cPanel неудобна)

Подключитесь к хостингу и выйдите в самый корень аккаунта (на уровень выше, чем public_html).

✅ Зайдите в папку /logs — там лежат архивы логов по месяцам.

✅ Скачайте файл вида yourdomain.com-Mar-2026.gz и распакуйте его.

Если папка пустая: В cPanel в разделе «Редактор необработанных журналов» поставьте галочку «Архивировать журналы в домашнем каталоге» и сохраните. Логи начнут копиться с этого момента.


Скачать Github.
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍8🔥3😁1