Если вы видите Google-Read-Aloud в логах сервера — это означает, что кто-то из ваших читателей воспользовался функцией «прочитать вслух» для прослушивания вашего контента. Понимание природы этого агента важно для владельцев сайтов, издателей контента и разработчиков: поведение Google-Read-Aloud принципиально отличается от поведения Googlebot и других Google-краулеров.
1. Что такое Google-Read-Aloud
1.1 История и переименование
Сервис был запущен в 2019 году под именем google-speakr. Позднее агент был переименован в Google-Read-Aloud, чтобы точнее отражать назначение и соответствовать брендингу Google's Accessibility initiatives. В июле 2025 года Google официально обновил строку User-Agent, актуализировав версии браузерного движка для совместимости с современными сайтами.
Устаревший агент google-speakr официально помечен как deprecated, однако может встречаться в логах старых запросов.
1.2 User-Agent строки
# Актуальная строка (десктоп):
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36
(KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36
(compatible; Google-Read-Aloud;
+https://support.google.com/webmasters/answer/1061943)
# Актуальная строка (мобильная):
Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M)
AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/59.0.3071.125 Mobile Safari/537.36
(compatible; Google-Read-Aloud;
+https://support.google.com/webmasters/answer/1061943)
# Устаревший агент (deprecated, встречается в старых логах):
google-speakr
1.3 Сервисы, использующие Google-Read-Aloud
| Сервис / Продукт | Платформа | Функция |
|---|---|---|
| Google Go | Android (упрощённая версия поиска) | Кнопка «Прочитать страницу» прямо в браузере |
| Google App («Read It») | Android / iOS | Функция «Read it» в результатах поиска |
| Google Read Aloud | Android / Chrome | Озвучивание статей из Google Discover |
| Google Assistant | Android / Smart speakers | «Ok Google, прочитай эту страницу» |
| Chrome (Listen to this page) | Android Chrome | Встроенная функция озвучивания страниц |
1.4 Место в экосистеме Google-агентов
| Агент | Тип | Запускается | Уважает robots.txt? |
|---|---|---|---|
| Googlebot | Автономный краулер | По расписанию Google | ✔ Да |
| Google-Read-Aloud | User-triggered fetcher | По запросу пользователя | ⚠ Частично (см. раздел 7) |
| AdsBot-Google | Специализированный краулер | При создании рекламы | Только явный UA |
| Feedfetcher | User-triggered fetcher | По запросу пользователя | ⚠ Частично |
| Google-InspectionTool | Верификационный fetcher | По запросу в Search Console | ✖ Нет |
1.5 IP-адреса
# Google-Read-Aloud использует IP-диапазоны user-triggered fetchers:
https://developers.google.com/static/search/apis/ipranges/user-triggered-fetchers.json
# Основные диапазоны Googlebot (пересекаются):
https://developers.google.com/search/apis/ipranges/googlebot.json
2. Как работает Google-Read-Aloud
2.1 Принципиальное отличие от краулеров
Google-Read-Aloud — не краулер. Это принципиально важное различие, определяющее всё его поведение:
| Характеристика | Googlebot (краулер) | Google-Read-Aloud (fetcher) |
|---|---|---|
| Инициатор запроса | Алгоритм Google | Реальный пользователь |
| Цель обхода | Индексация для поиска | Получение текста для озвучивания |
| Следует по ссылкам | ✔ Да | ✖ Нет — только запрошенная страница |
| Влияет на SEO | ✔ Напрямую | ✖ Нет |
| Частота визитов | По расписанию Google | Только когда пользователь просит |
| Кеширование | Собственный кеш Google | Использует Google Cache, при устаревании — свежий fetch |
| Использует cookies | ✖ Нет | ✖ Нет (stateless rendering) |
| robots.txt | ✔ Уважает | ⚠ Частично (см. раздел 7) |
2.2 Алгоритм работы при запросе пользователя
- Пользователь открывает страницу в Google Go, Google App или Chrome и нажимает «Прочитать вслух».
- Google-сервис проверяет кеш Google — есть ли актуальная версия этой страницы.
- Если кешированная версия свежая — текст извлекается из кеша без запроса к серверу.
- Если кеш устарел или отсутствует — Google-Read-Aloud отправляет HTTP-запрос к серверу сайта.
- Страница скачивается и рендерится в stateless-режиме (без cookies, без сессий пользователя).
- Текст извлекается из HTML, очищается от навигации и рекламы.
- TTS-движок Google синтезирует речь из текста.
- Аудио воспроизводится для пользователя.
2.3 Что анализирует Google-Read-Aloud
| Элемент | Как используется | Важность для TTS |
|---|---|---|
| Основной текст статьи | Главный контент для озвучивания | ⭐⭐⭐⭐⭐ Критически важно |
| Заголовок H1 | Озвучивается первым как название | ⭐⭐⭐⭐⭐ Критически важно |
| Подзаголовки H2–H6 | Структурируют чтение, паузы | ⭐⭐⭐⭐ Очень важно |
| Alt-тексты изображений | Озвучиваются как описание картинки | ⭐⭐⭐ Важно |
Язык страницы (lang) |
Выбор голоса и произношения TTS | ⭐⭐⭐⭐⭐ Критически важно |
| ARIA-метки | Помогают правильно интерпретировать элементы | ⭐⭐⭐⭐ Очень важно |
Мета-тег nopagereadaloud |
Запрет на озвучивание страницы | ⭐⭐⭐⭐⭐ Управляющий элемент |
Schema.org isAccessibleForFree |
Доступен ли контент для озвучивания | ⭐⭐⭐⭐ Очень важно |
| Навигация, меню, реклама | Фильтруются и не озвучиваются | Исключаются |
2.4 Stateless rendering — без cookies и сессий
Google-Read-Aloud рендерит страницы в stateless-режиме: он не использует cookies пользователя, не авторизован в аккаунт и не передаёт сессионные данные. Это означает, что контент за paywall или авторизацией агент видит так же, как незарегистрированный посетитель — только публичную часть страницы.
3. Для чего используется Google-Read-Aloud
3.1 Целевые группы пользователей
Google-Read-Aloud создан как инструмент доступности (accessibility tool). Он помогает:
- Людям с нарушениями зрения — слабовидящим и незрячим пользователям
- Людям с дислексией — при дислексии воспринимать текст на слух значительно проще
- Людям с трудностями чтения — нарушения концентрации внимания, когнитивные особенности
- Пользователям в движении — слушают контент во время поездок, прогулок, тренировок
- Пользователям с медленным интернетом — Google Go распространён в странах с дорогим трафиком
- Тем, кто предпочитает аудио — аудиальный тип восприятия информации
3.2 Поддерживаемые языки
TTS-движок Google поддерживает более 40 языков. Язык страницы определяется атрибутом lang тега <html> — это критически важно для правильного произношения:
<!-- Русский язык — выберет русский голос и произношение -->
<html lang="ru">
<!-- Английский -->
<html lang="en">
<!-- Украинский -->
<html lang="uk">
<!-- Многоязычный контент — указывайте lang на блоках: -->
<p lang="en">This paragraph is in English.</p>
<p lang="ru">А этот абзац на русском.</p>
3.3 Преимущества для издателей
Google-Read-Aloud расширяет аудиторию сайта без дополнительных усилий со стороны издателя:
- Контент становится доступным для пользователей с ограниченными возможностями
- Увеличивается время взаимодействия с материалом (engagement time)
- Расширяется охват за счёт аудитории Google Go и Google App (миллиарды пользователей Android)
- Улучшаются поведенческие сигналы — пользователь «прослушал» длинную статью полностью
- Соответствие стандартам веб-доступности (WCAG) повышает доверие к сайту
4. Нагрузка на сервер
Нагрузка от Google-Read-Aloud принципиально отличается от нагрузки краулеров: она полностью определяется поведением пользователей, а не алгоритмами Google.
4.1 Факторы, определяющие частоту визитов
| Фактор | Влияние на частоту запросов |
|---|---|
| Популярность контента | Чем больше читателей — тем чаще запросы |
| Аудитория Google Go | Преобладает в Азии, Африке, Латинской Америке — региональный трафик |
| Тип контента | Длинные информационные статьи читают вслух чаще, чем короткие посты |
| Свежесть Google Cache | При актуальном кеше — запрос к серверу не делается вообще |
| Страницы с noindex | Такие страницы реже попадают в Google кеш — больше прямых fetch |
4.2 Типичная нагрузка
| Тип сайта | Ожидаемая нагрузка от Google-Read-Aloud |
|---|---|
| Личный блог с малым трафиком | Единичные запросы в месяц или реже |
| Нишевый информационный сайт | Несколько запросов в день |
| Новостной портал с глобальной аудиторией | Сотни запросов в день в пиках |
| Сайт с аудиторией из Индии, Нигерии, Индонезии | Значительно выше среднего (Google Go доминирует) |
| Учебный / образовательный ресурс | Умеренная, стабильная нагрузка |
4.3 Потенциальные проблемы
- Искажение аналитики — запросы от Google-Read-Aloud могут искажать метрики (pageviews, bounce rate) если не фильтровать ботовый трафик
- Нежелательные действия на динамических страницах — агент в stateless-режиме может случайно триггерить формы или счётчики
- CDN egress трафик — при большом количестве запросов увеличивает расходы на CDN
- Повторные запросы — даже при кешировании Google может делать несколько запросов к одной странице
4.4 Анализ нагрузки в логах
# Найти все запросы Google-Read-Aloud:
grep -i 'Google-Read-Aloud\|google-speakr' /var/log/nginx/access.log
# Подсчитать количество:
grep -i 'Google-Read-Aloud' access.log | wc -l
# Топ запрашиваемых страниц (самый популярный контент для озвучивания):
grep -i 'Google-Read-Aloud' access.log \
| awk '{print $7}' | sort | uniq -c | sort -nr | head -20
# Активность по часам:
grep -i 'Google-Read-Aloud' access.log \
| awk '{print $4}' | cut -d: -f2 | sort | uniq -c | sort -n
# Трафик по странам (если GeoIP настроен):
grep -i 'Google-Read-Aloud' access.log | awk '{print $1}' | sort -u
5. Обнаружение в логах
5.1 Как выглядит запись
# Nginx access.log — десктопная версия агента:
66.249.90.77 - - [08/May/2026:19:10:44 +0000] \
"GET /blog/kak-nauchitsya-programmirovat/ HTTP/1.1" \
200 28432 "-" \
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 \
(KHTML, like Gecko) Chrome/41.0.2272.118 Safari/537.36 \
(compatible; Google-Read-Aloud; \
+https://support.google.com/webmasters/answer/1061943)"
# Мобильная версия агента:
66.249.90.78 - - [08/May/2026:19:10:46 +0000] \
"GET /blog/kak-nauchitsya-programmirovat/ HTTP/1.1" \
200 26180 "-" \
"Mozilla/5.0 (Linux; Android 7.0; SM-G930V Build/NRD90M) \
AppleWebKit/537.36 (KHTML, like Gecko) \
Chrome/59.0.3071.125 Mobile Safari/537.36 \
(compatible; Google-Read-Aloud; \
+https://support.google.com/webmasters/answer/1061943)"
# Устаревший агент (может встречаться в старых логах):
66.249.90.79 - - [08/May/2026:19:11:00 +0000] \
"GET /article/ HTTP/1.1" 200 18432 "-" "google-speakr"
5.2 Аналитика через grep
Найти все запросы (включая устаревший агент):
grep -iE 'Google-Read-Aloud|google-speakr' /var/log/nginx/access.log
Топ страниц, которые пользователи слушают вслух:
grep -i 'Google-Read-Aloud' access.log \
| awk '{print $7}' | sort | uniq -c | sort -nr | head -30
HTTP-коды ответов:
grep -i 'Google-Read-Aloud' access.log \
| awk '{print $9}' | sort | uniq -c | sort -nr
Разделить десктоп и мобильные запросы:
# Только мобильные (Android):
grep -i 'Google-Read-Aloud' access.log | grep 'Android'
# Только десктопные (Linux x86_64):
grep -i 'Google-Read-Aloud' access.log | grep -v 'Android'
Суммарный bandwidth:
grep -i 'Google-Read-Aloud' access.log \
| awk '{sum+=$10} END{print sum/1024/1024 " MB"}'
Динамика по дням — как меняется интерес аудитории к прослушиванию:
grep -i 'Google-Read-Aloud' access.log \
| awk '{print $4}' | cut -d: -f1 | tr -d '[' \
| sort | uniq -c
Live-мониторинг:
tail -f /var/log/nginx/access.log \
| grep --line-buffered -iE 'Google-Read-Aloud|google-speakr'
5.3 Верификация подлинности
Как и другие Google-агенты, Google-Read-Aloud активно подделывается скраперами. Верификация через DNS:
#!/bin/bash
# Проверка: настоящий ли Google-Read-Aloud?
IP=$1
HOST=$(host $IP | awk '{print $NF}')
if [[ $HOST == *googlebot.com* ]] || [[ $HOST == *google.com* ]]; then
FWD=$(host $HOST | awk '{print $NF}')
if [[ $FWD == $IP ]]; then
echo "✔ Настоящий Google-Read-Aloud: $IP → $HOST"
else
echo "✖ Fake Google-Read-Aloud (DNS mismatch): $IP"
fi
else
echo "✖ Fake Google-Read-Aloud (нет PTR записи google.com): $IP"
fi
Дополнительная верификация — сверка с официальным списком IP:
# Скачать актуальный список IP user-triggered fetchers:
curl -s https://developers.google.com/static/search/apis/ipranges/user-triggered-fetchers.json \
| python3 -m json.tool | grep -E 'ipv4Prefix|ipv6Prefix'
6. Оптимизация контента для Google-Read-Aloud
6.1 Атрибут lang — критически важен
Без корректного атрибута lang TTS-движок может произносить текст с неправильным акцентом или вообще неверным языком:
<!-- ✖ Плохо: нет атрибута lang -->
<html>
<!-- ✖ Плохо: неверный lang для русского контента -->
<html lang="en">
<!-- ✔ Хорошо: явное указание языка -->
<html lang="ru">
<!-- ✔ Для многоязычных сайтов — региональные варианты: -->
<html lang="ru-RU"> <!-- Российский вариант -->
<html lang="uk-UA"> <!-- Украинский -->
<html lang="en-US"> <!-- Американский английский -->
<html lang="en-GB"> <!-- Британский английский -->
6.2 Семантическая разметка — структура для TTS
Google-Read-Aloud понимает семантическую HTML-структуру и использует её для правильного порядка и интонации при озвучивании:
<!-- ✔ Правильная семантическая структура для TTS: -->
<article>
<header>
<h1>Как выучить Python за 3 месяца</h1>
<time datetime="2026-05-08">8 мая 2026</time>
<address>Автор: <a rel="author" href="/authors/ivan/">Иван Иванов</a></address>
</header>
<main>
<p>Первый абзац — вводная информация...</p>
<h2>Шаг 1: Установка Python</h2>
<p>Текст раздела...</p>
<h2>Шаг 2: Первая программа</h2>
<p>Текст раздела...</p>
</main>
<aside aria-label="Связанные статьи">
<!-- Боковая панель — будет пропущена TTS -->
</aside>
</article>
<nav aria-label="Навигация">
<!-- Навигация — будет пропущена TTS -->
</nav>
6.3 ARIA-атрибуты для TTS
ARIA-атрибуты помогают TTS-движку правильно интерпретировать нестандартные элементы:
<!-- Скрыть декоративные элементы от TTS: -->
<div aria-hidden="true">
<!-- Иконки, декор, рекламные баннеры -->
</div>
<!-- Добавить описание для интерактивных элементов: -->
<button aria-label="Закрыть модальное окно">✕</button>
<!-- Пометить блок как основной контент: -->
<main role="main" aria-label="Основная статья">
...
</main>
<!-- Обозначить роль элемента: -->
<div role="note" aria-label="Примечание редактора">
Этот материал обновлён в мае 2026 года.
</div>
6.4 Оптимизация таблиц и списков для озвучивания
Сложные таблицы плохо воспринимаются на слух. Для контента, который часто слушают вслух, рассмотрите альтернативные способы подачи:
<!-- Для таблиц добавляйте caption и scope: -->
<table>
<caption>Сравнение языков программирования</caption>
<thead>
<tr>
<th scope="col">Язык</th>
<th scope="col">Сложность</th>
<th scope="col">Популярность</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">Python</th>
<td>Низкая</td>
<td>Очень высокая</td>
</tr>
</tbody>
</table>
<!-- Для сложных данных — дополняйте текстовым резюме: -->
<p>Python — наиболее доступный язык для начинающих
с очень высоким рейтингом популярности.</p>
6.5 Оптимизация аббревиатур и числовых данных
TTS-движок иногда неправильно произносит аббревиатуры и специальные форматы:
<!-- Расшифровывайте аббревиатуры через abbr: -->
<abbr title="Искусственный интеллект">ИИ</abbr>
<abbr title="Application Programming Interface">API</abbr>
<!-- Для дат — используйте читаемый формат: -->
<time datetime="2026-05-08">8 мая 2026 года</time>
<!-- Числа пишите словами там, где важно произношение: -->
<!-- Вместо: "показатель упал на 23%" -->
<!-- Лучше: "показатель упал на двадцать три процента" -->
<!-- (только для критически важных случаев) -->
7. Управление Google-Read-Aloud
7.1 Главное отличие: robots.txt работает иначе
⚠ Критически важно: Google-Read-Aloud — user-triggered fetcher, а не краулер. Официальная позиция Google: поскольку запрос инициирован реальным пользователем, агент работает по принципу браузера (как если бы пользователь сам открыл страницу), а не по принципу краулера.
Что это означает на практике:
- Директива
User-agent: *в robots.txt — не применяется к Google-Read-Aloud - Явная запись
User-agent: Google-Read-Aloud / Disallow: /в robots.txt — Google может игнорировать её, так как это fetcher, а не crawler - Единственный надёжный способ управления — мета-тег
nopagereadaloud
7.2 Мета-тег nopagereadaloud — официальный способ управления
Google предоставляет специальный мета-тег для управления доступностью страницы для функции Read Aloud:
<!-- Запретить озвучивание конкретной страницы: -->
<meta name="google" content="nopagereadaloud">
<!-- Где размещать: в блоке <head> страницы -->
<head>
<meta charset="UTF-8">
<meta name="google" content="nopagereadaloud">
<title>Страница без озвучивания</title>
</head>
<!-- Применять на страницах: -->
<!-- - Оформление заказа (checkout) -->
<!-- - Личный кабинет и профиль -->
<!-- - Формы с динамическим контентом -->
<!-- - Страницы с paywall-контентом -->
<!-- - Интерактивные приложения (SPA) -->
7.3 Schema.org для paywall-контента
Для страниц с платным доступом Google рекомендует использовать структурированные данные вместо блокировки:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Название статьи",
"isAccessibleForFree": false,
"hasPart": {
"@type": "WebPageElement",
"isAccessibleForFree": false,
"cssSelector": ".paywall-content"
}
}
</script>
<!-- При isAccessibleForFree: false Google-Read-Aloud -->
<!-- не будет озвучивать платный контент -->
7.4 robots.txt — ограниченная эффективность
Несмотря на то что Google может игнорировать robots.txt для user-triggered fetchers, многие владельцы сайтов используют эту запись как дополнительный сигнал. Некоторые источники указывают, что Google частично уважает эти директивы:
# Попытка блокировки через robots.txt (ограниченная эффективность):
User-agent: Google-Read-Aloud
Disallow: /
# Блокировка устаревшего агента (также ограниченная):
User-agent: google-speakr
Disallow: /
# Блокировка только приватных разделов:
User-agent: Google-Read-Aloud
Disallow: /members/
Disallow: /premium/
Disallow: /checkout/
# ВАЖНО: Основной рекомендованный способ — мета-тег nopagereadaloud,
# а не robots.txt
7.5 Блокировка через .htaccess (Apache)
RewriteEngine On
# Блокировка Google-Read-Aloud на конкретных разделах:
RewriteCond %{HTTP_USER_AGENT} "Google-Read-Aloud" [NC]
RewriteCond %{REQUEST_URI} ^/(checkout|members|premium)/ [NC]
RewriteRule .* - [F,L]
# Полная блокировка (нарушает доступность сайта):
RewriteCond %{HTTP_USER_AGENT} "(Google-Read-Aloud|google-speakr)" [NC]
RewriteRule .* - [F,L]
7.6 Блокировка через Nginx
map $http_user_agent $is_read_aloud {
default 0;
"~*Google-Read-Aloud" 1;
"~*google-speakr" 1;
}
# Блокировка конкретных разделов:
location ~* ^/(checkout|members|premium)/ {
if ($is_read_aloud) {
return 403;
}
}
# Полная блокировка (только если необходимо):
# if ($is_read_aloud) {
# return 403;
# }
7.7 JS/Cookie-gating для защиты контента
Поскольку Google-Read-Aloud работает в stateless-режиме (без cookies, без JS-выполнения в полном объёме), JavaScript-based защита контента эффективна:
<!-- Контент скрыт по умолчанию, открывается JS после проверки: -->
<div id="protected-content" style="display:none">
<!-- Платный или защищённый контент -->
</div>
<script>
// Проверить наличие cookie-токена подписчика
if (document.cookie.includes('subscriber_token')) {
document.getElementById('protected-content').style.display = 'block';
}
// Google-Read-Aloud не выполнит этот JS полностью и не увидит контент
</script>
8. Доступность и этические аспекты блокировки
8.1 Почему блокировку нужно использовать осторожно
Google-Read-Aloud — прежде всего инструмент доступности. Полная блокировка агента означает, что пользователи с ограниченными возможностями не смогут прослушать ваш контент через Google-сервисы:
- Незрячие пользователи лишатся доступа к контенту через привычный инструмент
- Люди с дислексией не смогут воспользоваться аудиальным форматом
- Пользователи Google Go (преимущественно в развивающихся странах) потеряют возможность прослушивания
Рекомендация: используйте точечную блокировку (отдельных страниц через nopagereadaloud), а не полную блокировку всего сайта.
8.2 Когда блокировка оправдана
| Сценарий | Рекомендуемое решение |
|---|---|
| Страница оформления заказа (checkout) | nopagereadaloud мета-тег |
| Личный кабинет / профиль пользователя | nopagereadaloud мета-тег |
| Динамические формы и интерактивные элементы | nopagereadaloud мета-тег |
| Платный контент (paywall) | Schema.org isAccessibleForFree: false |
| Контент с авторскими правами (лицензированный текст) | nopagereadaloud + юридическое уведомление |
| Страницы только для внутренних сотрудников | Авторизация на уровне сервера |
| Весь сайт без исключений | Не рекомендуется — нарушает доступность |
8.3 Стандарты веб-доступности (WCAG) и Google-Read-Aloud
Google-Read-Aloud напрямую связан со стандартами WCAG (Web Content Accessibility Guidelines). Поддержка озвучивания через Google-сервисы помогает соответствовать ряду критериев WCAG 2.1:
- 1.1.1 Non-text Content — alt-тексты для изображений
- 1.3.1 Info and Relationships — семантическая разметка
- 1.3.2 Meaningful Sequence — правильный порядок контента
- 3.1.1 Language of Page — атрибут
langна теге<html> - 3.1.2 Language of Parts — атрибуты
langна отдельных блоках
9. Диагностика проблем
9.1 Типичные проблемы и решения
| Проблема | Причина | Решение |
|---|---|---|
| Страница читается с неправильным акцентом | Отсутствует или неверен атрибут lang |
Добавить <html lang="ru"> |
| Навигация и реклама озвучиваются вместе с контентом | Нет семантической разметки и ARIA | Использовать <article>, <main>, aria-hidden |
| Checkout-страница ломается при обращении агента | Stateless-запрос триггерит динамические элементы | Добавить nopagereadaloud мета-тег |
| Платный контент читается без оплаты | Нет разметки paywall | Schema.org isAccessibleForFree: false |
| Аналитика искажена (inflated pageviews) | Read-Aloud запросы считаются как пользовательские | Фильтровать UA в GA4 / настройки отчётов |
| Подозрительно много запросов от «Google-Read-Aloud» | Поддельные боты с этим UA | DNS-верификация IP по списку google.com |
9.2 Фильтрация в Google Analytics 4
// Фильтровать ботовый трафик в GA4:
// Администрирование → Потоки данных → Настройки → Фильтры для внутреннего трафика
// Или через gtag.js — не отправлять события при обнаружении бота:
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
// Проверить User-Agent перед отправкой события:
const isBot = /Google-Read-Aloud|google-speakr/i.test(navigator.userAgent);
if (!isBot) {
gtag('event', 'page_view');
}
// Примечание: Google-Read-Aloud работает в stateless-режиме
// и может не выполнять JS полностью — GA4 может и так не получать события от него
9.3 Проверка корректности мета-тегов
# Проверить наличие nopagereadaloud на странице:
curl -s https://example.com/checkout/ \
| grep -i 'nopagereadaloud'
# Проверить атрибут lang:
curl -s https://example.com/ \
| grep -o 'lang="[^"]*"' | head -5
# Проверить Schema.org isAccessibleForFree:
curl -s https://example.com/premium-article/ \
| grep -A5 'isAccessibleForFree'
10. Google-Read-Aloud vs другие TTS-агенты
| Агент / Сервис | Платформа | User-Agent | Тип |
|---|---|---|---|
| Google-Read-Aloud | Google Go, Google App, Chrome | Google-Read-Aloud |
User-triggered fetcher |
| google-speakr (deprecated) | Устаревшая версия Google-Read-Aloud | google-speakr |
Deprecated |
| Apple VoiceOver | iOS / macOS Safari | Стандартный браузерный UA | On-device, не делает fetch |
| Amazon Alexa | Echo устройства | Alexa/1.0 |
Voice assistant fetcher |
| Microsoft Edge Read Aloud | Edge браузер | Стандартный Edge UA | On-device rendering |
| Feedfetcher-Google | Google-сервисы (RSS) | Feedfetcher-Google |
User-triggered fetcher |
| Google-Agent | Google AI (Project Mariner) | Google-Agent |
User-triggered AI agent (2026) |
Полезные ссылки: Официальная документация Google-Read-Aloud | IP-диапазоны user-triggered fetchers | Google Webmasters — Google-Read-Aloud | WCAG 2.1 Quick Reference