В отличие от Googlebot, который индексирует контент для поиска, APIs-Google проверяет техническую инфраструктуру: корректность sitemap-файлов, валидность RSS/Atom-фидов, доступность API-эндпоинтов, структурированные данные и ресурсы, необходимые для работы Google-сервисов.
1. Что такое APIs-Google
1.1 User-Agent строка
APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)
1.2 Виды задач APIs-Google
| Задача | Что проверяется | Связанный сервис Google |
|---|---|---|
| Валидация sitemap | Корректность XML-структуры, доступность URL | Google Search Console |
| Проверка RSS/Atom фидов | Формат, доступность, свежесть контента | Google News, Discover |
| Structured Data проверка | Корректность JSON-LD, Microdata, RDFa | Rich Results, Knowledge Graph |
| Проверка robots.txt | Синтаксис, доступность файла | Google Search Console |
| API discovery | Доступность публичных API-эндпоинтов | Google API Explorer, различные сервисы |
| Верификация домена | DNS-записи, мета-теги верификации | Google Search Console, Google Workspace |
| Проверка AMP-страниц | Валидность AMP HTML | Google AMP Cache |
| OAuth / OpenID Connect | Well-known эндпоинты, конфигурация | Google Sign-In, OAuth 2.0 |
1.3 Место в экосистеме Google-ботов
| Краулер | Тип задач | Влияет на поиск? | Технический? |
|---|---|---|---|
| Googlebot | Индексация контента | ✔ Напрямую | Частично |
| APIs-Google | Технические проверки, API | Косвенно | ✔ Да |
| AdsBot-Google | Quality Score рекламы | ✖ Нет | Частично |
| Storebot-Google | Товарные данные | ✖ Нет | Частично |
| Google-InspectionTool | Ручная инспекция URL | Косвенно | ✔ Да |
1.4 Ключевые отличия от Googlebot
- Не индексирует контент — APIs-Google не влияет напрямую на позиции в поиске
- Техническая верификация — проверяет корректность технических ресурсов, а не текст
- Не следует
User-agent: *в robots.txt — как и AdsBot, требует явного указания - Обходит намного реже — только при изменении ресурсов или по расписанию Google-сервисов
- Работает по запросу — часто триггерится действиями в Google Search Console или других сервисах
1.5 IP-адреса
# Основные IP-диапазоны (совпадают с Googlebot):
https://developers.google.com/search/apis/ipranges/googlebot.json
# Специальные краулеры Google (включает APIs-Google):
https://developers.google.com/static/search/apis/ipranges/special-crawlers.json
2. Как работает APIs-Google
2.1 Основные сценарии работы
Сценарий 1 — Валидация sitemap через Search Console:
- Владелец сайта добавляет sitemap в Google Search Console.
- APIs-Google немедленно скачивает и проверяет файл sitemap.
- Анализируется XML-структура, корректность URL, формат дат.
- Результат проверки отображается в Search Console в течение нескольких минут.
- Повторная проверка происходит периодически и при обновлении файла.
Сценарий 2 — Проверка структурированных данных:
- Основной Googlebot обходит страницу и находит JSON-LD разметку.
- APIs-Google отправляется для детальной технической валидации структурированных данных.
- Проверяется соответствие спецификации Schema.org и требованиям Google.
- Результат влияет на право страницы на Rich Results в поисковой выдаче.
Сценарий 3 — API discovery и верификация эндпоинтов:
- Google-сервис (например, Google Workspace) инициирует проверку домена.
- APIs-Google обращается к well-known эндпоинтам и верификационным ресурсам.
- Проверяется наличие и корректность DNS-записей, мета-тегов, файлов верификации.
- Результат определяет, может ли Google-сервис работать с данным доменом.
2.2 Что APIs-Google анализирует
| Ресурс | Что проверяется | Важность |
|---|---|---|
| sitemap.xml | XML-валидность, доступность, структура URL | ⭐⭐⭐⭐⭐ Критически важно |
| robots.txt | Синтаксис, корректность директив | ⭐⭐⭐⭐⭐ Критически важно |
| JSON-LD / Microdata | Валидность Schema.org разметки | ⭐⭐⭐⭐⭐ Критически важно |
| RSS / Atom фид | Формат, свежесть, доступность | ⭐⭐⭐⭐ Очень важно |
| AMP HTML | Валидность AMP-страниц | ⭐⭐⭐⭐ Очень важно |
| /.well-known/ эндпоинты | OpenID Connect, OAuth, security.txt | ⭐⭐⭐⭐ Очень важно |
| Верификационные файлы | google-site-verification мета-тег и файл | ⭐⭐⭐⭐ Очень важно |
| Открытые API-эндпоинты | Доступность, формат ответа (JSON/XML) | ⭐⭐⭐ Важно |
| Favicon | Доступность, формат | ⭐⭐⭐ Важно |
| Manifest.json (PWA) | Корректность Web App Manifest | ⭐⭐⭐ Важно |
2.3 Частота обходов
| Сценарий | Частота обхода |
|---|---|
| Ручная проверка sitemap в Search Console | Немедленно, в течение минут |
| Плановая повторная проверка sitemap | Раз в несколько дней |
| Проверка robots.txt | Регулярно, при изменении |
| Верификация домена для Google-сервисов | При добавлении сервиса и периодически |
| Проверка структурированных данных | После каждого обхода страницы Googlebot |
| API discovery | По запросу сервиса Google |
3. Технические ресурсы, которые проверяет APIs-Google
3.1 Sitemap XML — самый важный ресурс
Sitemap — первый ресурс, который проверяет APIs-Google при добавлении сайта в Search Console. Корректность структуры критически важна:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://example.com/page/</loc>
<lastmod>2026-05-08</lastmod>
<changefreq>weekly</changefreq>
<priority>0.8</priority>
<!-- Alternate hreflang (если многоязычный сайт) -->
<xhtml:link rel="alternate"
hreflang="ru"
href="https://example.com/page/"/>
<xhtml:link rel="alternate"
hreflang="en"
href="https://example.com/en/page/"/>
</url>
</urlset>
Sitemap Index (для больших сайтов):
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://example.com/sitemap-pages.xml</loc>
<lastmod>2026-05-08T10:00:00+03:00</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/sitemap-products.xml</loc>
<lastmod>2026-05-08T09:00:00+03:00</lastmod>
</sitemap>
<sitemap>
<loc>https://example.com/news-sitemap.xml</loc>
<lastmod>2026-05-08T14:30:00+03:00</lastmod>
</sitemap>
</sitemapindex>
Частые ошибки в sitemap, которые находит APIs-Google:
| Ошибка | Причина | Решение |
|---|---|---|
| Невалидный XML | Спецсимволы (&, <, >) без экранирования | Экранировать: & < > |
| URL недоступен | Страница возвращает 404 или редирект | Убрать нерабочие URL из sitemap |
| Неверный формат даты | Дата не в формате ISO 8601 | Использовать YYYY-MM-DD или YYYY-MM-DDThh:mm:ss+TZ |
| sitemap слишком большой | Более 50 000 URL или 50 MB | Разбить на несколько файлов через Sitemap Index |
| URL не совпадает с canonical | В sitemap URL с параметрами | Включать только canonical URL |
| HTTP вместо HTTPS | Устаревшие URL в sitemap | Обновить все URL на HTTPS |
3.2 robots.txt — синтаксическая проверка
APIs-Google проверяет синтаксис robots.txt на корректность. Ошибки в robots.txt могут привести к некорректной индексации:
# Правильный синтаксис robots.txt:
User-agent: *
Disallow: /admin/
Disallow: /search/
Disallow: /*?sort=
Allow: /
# APIs-Google должен иметь доступ к техническим ресурсам:
# sitemap.xml, robots.txt, .well-known/, favicon.ico
# Регистрация sitemap:
Sitemap: https://example.com/sitemap.xml
Sitemap: https://example.com/news-sitemap.xml
Sitemap: https://example.com/video-sitemap.xml
# Если нужно явно разрешить APIs-Google:
User-agent: APIs-Google
Disallow:
Allow: /
Типичные синтаксические ошибки:
# ✖ Неверно — пробел перед значением:
Disallow: /admin /private
# ✖ Неверно — несколько путей в одной директиве:
Disallow: /admin/, /private/
# ✔ Правильно — каждый путь отдельной строкой:
Disallow: /admin/
Disallow: /private/
# ✖ Неверно — отсутствие завершающего слеша (в ряде случаев):
Disallow: /admin
# ✔ Правильно:
Disallow: /admin/
3.3 JSON-LD структурированные данные
APIs-Google валидирует JSON-LD разметку на страницах. Ошибки в структурированных данных лишают страницу права на Rich Results:
<!-- ✖ Частые ошибки в JSON-LD -->
<!-- Ошибка 1: Невалидный JSON (пропущена запятая) -->
<script type="application/ld+json">
{
"@context": "https://schema.org"
"@type": "Article"
}
</script>
<!-- Ошибка 2: Неверный тип значения (число как строка) -->
{
"@type": "AggregateRating",
"ratingValue": "4.5", <!-- строка вместо числа -->
"reviewCount": "100" <!-- строка вместо числа -->
}
<!-- Ошибка 3: Отсутствие обязательных полей -->
{
"@type": "Product",
"name": "Товар"
<!-- нет offers — обязательного поля для Product -->
}
<!-- ✔ Правильная разметка -->
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Article",
"headline": "Заголовок статьи",
"datePublished": "2026-05-08T10:00:00+03:00",
"dateModified": "2026-05-08T12:00:00+03:00",
"author": {
"@type": "Person",
"name": "Иван Иванов"
},
"publisher": {
"@type": "Organization",
"name": "Название издания",
"logo": {
"@type": "ImageObject",
"url": "https://example.com/logo.png"
}
},
"image": "https://example.com/article-image.jpg"
}
</script>
3.4 Well-known эндпоинты
Директория /.well-known/ — стандартное место для технических файлов, которые APIs-Google проверяет для различных Google-сервисов:
# Структура /.well-known/:
/.well-known/
├── openid-configuration # OpenID Connect discovery
├── oauth-authorization-server # OAuth 2.0 authorization server metadata
├── security.txt # Политика безопасности (RFC 9116)
├── assetlinks.json # Android App Links (Google Play)
├── apple-app-site-association # iOS Universal Links
├── change-password # Смена пароля (WICG)
└── webfinger # Обнаружение пользователей
Пример security.txt:
# /.well-known/security.txt
Contact: mailto:security@example.com
Contact: https://example.com/security
Expires: 2027-01-01T00:00:00.000Z
Preferred-Languages: ru, en
Policy: https://example.com/security-policy
Canonical: https://example.com/.well-known/security.txt
Пример OpenID Connect discovery (если используете Google Sign-In):
# /.well-known/openid-configuration
{
"issuer": "https://example.com",
"authorization_endpoint": "https://example.com/oauth/authorize",
"token_endpoint": "https://example.com/oauth/token",
"userinfo_endpoint": "https://example.com/oauth/userinfo",
"jwks_uri": "https://example.com/.well-known/jwks.json",
"response_types_supported": ["code", "token", "id_token"],
"subject_types_supported": ["public"],
"id_token_signing_alg_values_supported": ["RS256"]
}
3.5 Верификация домена для Google-сервисов
APIs-Google проверяет верификационные данные при подключении различных Google-сервисов:
<!-- Способ 1: Мета-тег в <head> (Google Search Console) -->
<meta name="google-site-verification"
content="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX">
<!-- Способ 2: HTML-файл в корне сайта -->
<!-- https://example.com/googleXXXXXXXXXXXXXXXX.html -->
<!-- Способ 3: DNS TXT-запись (проверяется через DNS, не через HTTP) -->
google-site-verification=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
<!-- Способ 4: Google Tag Manager (если GTM уже установлен) -->
<!-- APIs-Google проверяет наличие GTM-скрипта на странице -->
3.6 RSS и Atom фиды
APIs-Google проверяет фиды для корректной работы Google News, Discover и других агрегаторов:
<!-- RSS 2.0 -->
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:content="http://purl.org/rss/1.0/modules/content/">
<channel>
<title>Название сайта</title>
<link>https://example.com</link>
<description>Описание сайта</description>
<language>ru</language>
<atom:link href="https://example.com/feed.rss"
rel="self"
type="application/rss+xml"/>
<item>
<title>Заголовок статьи</title>
<link>https://example.com/article/slug/</link>
<guid isPermaLink="true">https://example.com/article/slug/</guid>
<pubDate>Thu, 08 May 2026 14:30:00 +0300</pubDate>
<description>Краткое описание статьи</description>
<content:encoded><![CDATA[Полный текст статьи в HTML]]></content:encoded>
</item>
</channel>
</rss>
<!-- Объявление фида в <head> страницы -->
<link rel="alternate" type="application/rss+xml"
title="Название сайта — RSS"
href="https://example.com/feed.rss">
4. Нагрузка на сервер
APIs-Google создаёт минимальную нагрузку по сравнению с другими Google-ботами. Он обходит не страницы контента, а технические ресурсы — sitemap, robots.txt, RSS-фиды, JSON-эндпоинты — которые весят значительно меньше обычных HTML-страниц.
4.1 Типичная нагрузка
| Тип ресурса | Частота запросов | Нагрузка |
|---|---|---|
| robots.txt | Ежедневно или чаще | Минимальная (файл обычно < 10 KB) |
| sitemap.xml | Несколько раз в неделю | Низкая (зависит от размера файла) |
| RSS / Atom фид | Несколько раз в день | Низкая |
| /.well-known/ файлы | При регистрации сервиса, периодически | Минимальная |
| Верификационные файлы | При верификации и периодически | Минимальная |
| API эндпоинты | По запросу сервиса | Зависит от эндпоинта |
4.2 Когда нагрузка может возрасти
- Большой sitemap без сжатия — sitemap на 50 000 URL в XML без gzip может весить 50+ MB
- Тяжёлый RSS-фид — фид с полным текстом тысяч статей без пагинации
- Медленные API-эндпоинты — APIs-Google может повторять запросы при таймаутах
- Частое добавление новых Google-сервисов — каждый новый сервис инициирует серию проверок
4.3 Оптимизация технических ресурсов
# Nginx — gzip сжатие для технических файлов:
gzip on;
gzip_types
text/xml
application/xml
application/rss+xml
application/atom+xml
application/json;
# Кеш для статических технических файлов:
location = /robots.txt {
add_header Cache-Control "public, max-age=86400";
}
location = /sitemap.xml {
add_header Cache-Control "public, max-age=3600";
}
location ~* \.(xml|rss|atom)$ {
add_header Cache-Control "public, max-age=1800";
gzip_static on;
}
5. Обнаружение в логах
5.1 Как выглядит запись
# Nginx access.log — запрос sitemap:
66.249.79.30 - - [08/May/2026:17:22:11 +0000] \
"GET /sitemap.xml HTTP/1.1" \
200 84321 "-" \
"APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"
# Запрос robots.txt:
66.249.79.30 - - [08/May/2026:17:22:12 +0000] \
"GET /robots.txt HTTP/1.1" \
200 1243 "-" \
"APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"
# Запрос RSS-фида:
66.249.79.30 - - [08/May/2026:17:22:15 +0000] \
"GET /feed.rss HTTP/1.1" \
200 54832 "-" \
"APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"
# Запрос верификационного файла:
66.249.79.30 - - [08/May/2026:17:22:18 +0000] \
"GET /googleXXXXXXXXXXXXXXXX.html HTTP/1.1" \
200 53 "-" \
"APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"
# Запрос well-known эндпоинта:
66.249.79.30 - - [08/May/2026:17:22:20 +0000] \
"GET /.well-known/security.txt HTTP/1.1" \
200 312 "-" \
"APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)"
5.2 Аналитика через grep
Найти все запросы APIs-Google:
grep -i 'APIs-Google' /var/log/nginx/access.log
Подсчитать количество запросов:
grep -i 'APIs-Google' access.log | wc -l
Какие ресурсы проверяет бот:
grep -i 'APIs-Google' access.log \
| awk '{print $7}' | sort | uniq -c | sort -nr
HTTP-коды ответов (не должно быть 4xx и 5xx):
grep -i 'APIs-Google' access.log \
| awk '{print $9}' | sort | uniq -c | sort -nr
Только ошибочные запросы:
grep -i 'APIs-Google' access.log \
| awk '$9 >= 400 {print $7, $9}' \
| sort | uniq -c | sort -nr
Запросы к sitemap и robots.txt:
grep -i 'APIs-Google' access.log \
| grep -E 'sitemap|robots\.txt|feed|\.well-known'
Активность по дням (паттерн проверок):
grep -i 'APIs-Google' access.log \
| awk '{print $4}' | cut -d: -f1 | tr -d '[' \
| sort | uniq -c
Live-мониторинг:
tail -f /var/log/nginx/access.log | grep --line-buffered 'APIs-Google'
5.3 Верификация подлинности
#!/bin/bash
# Проверка: настоящий ли APIs-Google?
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 "✔ Настоящий APIs-Google: $IP → $HOST"
else
echo "✖ Fake APIs-Google (DNS mismatch): $IP"
fi
else
echo "✖ Fake APIs-Google (нет PTR записи google.com): $IP"
fi
6. Управление APIs-Google
6.1 robots.txt — важные правила
ℹ APIs-Google, как и AdsBot-Google, не подчиняется директиве User-agent: *. Для блокировки требуется явное указание User-Agent. Блокировка APIs-Google может нарушить работу Google Search Console, верификацию домена и других Google-сервисов.
✔ Правильная конфигурация — обеспечить доступ к техническим ресурсам:
User-agent: *
Disallow: /admin/
Disallow: /private/
Disallow: /search/
Allow: /
# APIs-Google должен иметь доступ к:
# /sitemap.xml, /robots.txt, /feed*, /.well-known/, /favicon.ico
# Не блокируйте эти ресурсы!
# Явное разрешение для APIs-Google (если блокируете всё остальное):
User-agent: APIs-Google
Allow: /sitemap.xml
Allow: /feed.rss
Allow: /.well-known/
Disallow: /
Sitemap: https://example.com/sitemap.xml
Когда блокировка APIs-Google может быть оправдана:
# Только если вы намеренно хотите скрыть технические ресурсы
# (крайне редкий сценарий):
User-agent: APIs-Google
Disallow: /
# ВНИМАНИЕ: это нарушит работу:
# - Google Search Console (sitemap, robots.txt)
# - Google-верификация домена
# - Проверка структурированных данных
# - Google News (RSS-фиды)
# - Google Workspace (верификация домена)
6.2 Блокировка через .htaccess (Apache)
RewriteEngine On
# ТОЛЬКО если у вас нет никаких интеграций с Google-сервисами:
RewriteCond %{HTTP_USER_AGENT} "APIs-Google" [NC]
RewriteRule .* - [F,L]
# Более мягкий вариант — разрешить только технические файлы:
RewriteCond %{HTTP_USER_AGENT} "APIs-Google" [NC]
RewriteCond %{REQUEST_URI} !^/(sitemap|robots|feed|\.well-known) [NC]
RewriteRule .* - [F,L]
6.3 Блокировка через Nginx
map $http_user_agent $is_apis_google {
default 0;
"~*APIs-Google" 1;
}
# Разрешить технические ресурсы, заблокировать остальное:
location / {
if ($is_apis_google) {
return 403;
}
}
# Явное разрешение технических ресурсов:
location ~* ^/(sitemap|robots\.txt|feed|\.well-known) {
# Разрешить всем, включая APIs-Google
}
# Или полная блокировка (только если нет Google-интеграций):
# if ($is_apis_google) {
# return 403;
# }
6.4 Предоставление доступа только к нужным ресурсам
# Nginx — точечный доступ для APIs-Google:
location = /sitemap.xml {
# Разрешить всем
}
location = /robots.txt {
# Разрешить всем
}
location ^~ /.well-known/ {
# Разрешить всем — важно для верификации и OAuth
}
location ~* \.(rss|atom|xml)$ {
# Разрешить всем
}
7. Интеграции с Google-сервисами
7.1 Google Search Console
APIs-Google — основной бот, который обслуживает технические проверки Search Console:
- Проверяет sitemap при добавлении и обновлении
- Валидирует robots.txt
- Проверяет верификационный мета-тег и файл
- Инициируется при ручной проверке URL («Проверить URL»)
Добавление sitemap через Search Console API:
# Пинг Google после обновления sitemap:
curl "https://www.google.com/ping?sitemap=https://example.com/sitemap.xml"
# Программное добавление через Search Console API:
# POST https://www.googleapis.com/webmasters/v3/sites/{siteUrl}/sitemaps/{feedpath}
# Документация: https://developers.google.com/webmaster-tools/
7.2 Google Workspace (G Suite)
При добавлении домена в Google Workspace APIs-Google проверяет верификацию:
# DNS TXT-запись для верификации Google Workspace:
# Имя: @ (корень домена)
# Тип: TXT
# Значение: google-site-verification=XXXXXXXXXXXX
# Проверка через dig:
dig TXT example.com | grep google-site-verification
# Или через nslookup:
nslookup -type=TXT example.com | grep google-site-verification
7.3 Android App Links (Digital Asset Links)
Если у вас есть мобильное приложение и вы используете Android App Links:
# /.well-known/assetlinks.json
[
{
"relation": ["delegate_permission/common.handle_all_urls"],
"target": {
"namespace": "android_app",
"package_name": "com.example.myapp",
"sha256_cert_fingerprints": [
"AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99:AA:BB:CC:DD:EE:FF:00:11:22:33:44:55:66:77:88:99"
]
}
}
]
APIs-Google проверяет этот файл при настройке App Links в Google Play Console.
7.4 AMP Cache
Для AMP-страниц APIs-Google проверяет валидность разметки перед кешированием в Google AMP Cache:
<!DOCTYPE html>
<html ⚡ lang="ru">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<link rel="canonical" href="https://example.com/article/">
<meta name="description" content="Описание статьи">
<!-- AMP обязателен: -->
<script async src="https://cdn.ampproject.org/v0.js"></script>
<!-- AMP boilerplate: -->
<style amp-boilerplate>...</style>
<noscript><style amp-boilerplate>...</style></noscript>
<!-- Только встроенные стили: -->
<style amp-custom>
/* Ваши стили */
</style>
</head>
<body>
<amp-img src="/images/article.jpg"
width="1280" height="720"
layout="responsive"
alt="Описание изображения">
</amp-img>
</body>
</html>
<!-- Объявить AMP-версию на основной странице: -->
<link rel="amphtml" href="https://example.com/article/amp/">
8. Диагностика проблем
8.1 Признаки того, что APIs-Google заблокирован или работает некорректно
- Search Console показывает ошибку «Не удалось получить sitemap»
- Верификация домена в Google-сервисах не проходит
- Rich Results Test показывает ошибки структурированных данных
- Google News не видит обновления RSS-фида
- В логах нет запросов от APIs-Google к /sitemap.xml
- AMP-страницы не кешируются Google AMP Cache
8.2 Пошаговая диагностика
Шаг 1 — Проверить доступность технических ресурсов:
# Симулировать запрос APIs-Google к sitemap:
curl -A "APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)" \
-I https://example.com/sitemap.xml
# Ожидаемый результат: HTTP/1.1 200 OK
# Content-Type: application/xml или text/xml
# Проверить robots.txt:
curl -A "APIs-Google (+https://developers.google.com/webmasters/APIs-Google.html)" \
https://example.com/robots.txt
Шаг 2 — Проверить валидность sitemap:
# Онлайн-валидаторы:
# https://www.xml-sitemaps.com/validate-xml-sitemap.html
# https://search.google.com/search-console (Sitemaps раздел)
# Локальная проверка XML (xmllint):
curl -s https://example.com/sitemap.xml | xmllint --noout -
# Если нет ошибок — вывода не будет
# При ошибке: xmllint: error: ...
Шаг 3 — Проверить JSON-LD на страницах:
# Rich Results Test:
# https://search.google.com/test/rich-results
# Schema Markup Validator:
# https://validator.schema.org/
# Google Search Console → Улучшения → проверить каждый тип разметки
# Локальная проверка JSON синтаксиса:
curl -s https://example.com/article/ \
| grep -A 50 'application/ld+json' \
| grep -v 'script' \
| python3 -m json.tool
Шаг 4 — Проверить well-known эндпоинты:
# Доступность security.txt:
curl -I https://example.com/.well-known/security.txt
# Доступность assetlinks.json (если используете App Links):
curl -I https://example.com/.well-known/assetlinks.json
# Проверить что директория .well-known не заблокирована в robots.txt:
grep -i 'well-known' https://example.com/robots.txt
Шаг 5 — Инструменты Google:
- Search Console → Sitemaps — статус всех sitemap
- Search Console → URL Inspection — детали индексации страницы
- Rich Results Test — проверка структурированных данных
- AMP Test — валидность AMP-страниц
- PageSpeed Insights — скорость загрузки технических ресурсов
8.3 Частые ошибки и решения
| Проблема | Причина | Решение |
|---|---|---|
| Sitemap недоступен | Файл заблокирован в robots.txt или возвращает 404 | Проверить robots.txt, убедиться что файл существует |
| «Ошибка парсинга» в Search Console | Невалидный XML в sitemap | Экранировать спецсимволы, проверить xmllint |
| Структурированные данные не работают | Ошибки в JSON-LD | Проверить через Rich Results Test, исправить синтаксис |
| Верификация домена не проходит | Мета-тег или файл недоступен | Проверить HTTP-код верификационного файла |
| RSS не читается Google News | Ошибки в XML-структуре фида | Проверить через W3C Feed Validator |
| App Links не работают | assetlinks.json недоступен или некорректен | Проверить через Digital Asset Links Statement List and Tester |
| AMP не кешируется | Ошибки в AMP HTML | Проверить через AMP Validator (validator.ampproject.org) |
9. Безопасность технических эндпоинтов
9.1 Что не должно быть доступно через технические пути
# В sitemap не включать:
# - Приватные URL (требующие авторизации)
# - Административные страницы (/admin/, /wp-admin/)
# - Тестовые и staging-среды
# - Страницы с noindex
# В robots.txt не раскрывать внутреннюю структуру:
# ✖ Плохо — раскрывает конфиденциальные пути:
Disallow: /internal-reports/
Disallow: /api/secret-endpoint/
Disallow: /backup/
# ✔ Лучше — использовать общие паттерны:
Disallow: /internal/
Disallow: /api/private/
9.2 Защита API-эндпоинтов от злоупотреблений
# Nginx — rate limiting для API-эндпоинтов:
limit_req_zone $binary_remote_addr zone=api:10m rate=10r/s;
location /api/ {
limit_req zone=api burst=20 nodelay;
# CORS только для доверенных источников:
add_header Access-Control-Allow-Origin "https://trusted-domain.com";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
add_header Access-Control-Allow-Headers "Content-Type, Authorization";
}
# Запретить листинг директории .well-known:
location = /.well-known/ {
return 403;
}
# Но разрешить конкретные файлы:
location = /.well-known/security.txt {
# Разрешить
}
location = /.well-known/assetlinks.json {
# Разрешить
}
9.3 Поддельные APIs-Google
Как и другие Google-боты, APIs-Google часто подделывается скраперами и разведывательными ботами, которые пытаются получить информацию о технической структуре сайта через sitemap и robots.txt:
#!/bin/bash
# Массовая верификация IP из логов:
grep -i 'APIs-Google' access.log \
| awk '{print $1}' | sort -u \
| while read IP; do
HOST=$(host $IP 2>/dev/null | awk '{print $NF}')
if [[ $HOST == *google* ]]; then
echo "✔ Легитимный: $IP → $HOST"
else
echo "✖ Подозрительный: $IP → $HOST"
fi
done
10. APIs-Google vs другие технические краулеры
| Краулер | Платформа | User-Agent | Основные задачи |
|---|---|---|---|
| APIs-Google | Сервисы Google | APIs-Google |
Sitemap, robots.txt, RSS, верификация |
| Google-InspectionTool | Search Console | Google-InspectionTool |
Ручная инспекция URL |
| bingbot | Bing | bingbot/2.0 |
Индексация + технические проверки |
| Bingbot (Bing API) | Microsoft | BingPreview |
Превью карточек |
| YandexBot | Яндекс | YandexBot/3.0 |
Индексация + технические проверки |
| DuckDuckBot | DuckDuckGo | DuckDuckBot/1.1 |
Индексация |
| GPTBot | OpenAI | GPTBot |
AI training (агрессивный) |
| Bytespider | Bytedance | Bytespider |
AI-скрапер (очень агрессивный) |
Блокировка AI-харвестеров через robots.txt:
User-agent: GPTBot
Disallow: /
User-agent: CCBot
Disallow: /
User-agent: Bytespider
Disallow: /
User-agent: anthropic-ai
Disallow: /
# Не блокируйте APIs-Google при активных Google-интеграциях!
11. Рекомендуемая стратегия
✔ Главный принцип: APIs-Google — технический помощник, который обеспечивает корректную работу всех Google-сервисов на вашем сайте. Открытый доступ к техническим ресурсам + валидные данные = стабильная работа Search Console, Rich Results, Google News и других интеграций.
| Задача | Решение |
|---|---|
| Обеспечить работу Search Console | Открыть доступ к sitemap.xml и robots.txt для APIs-Google |
| Ускорить обработку sitemap | Пинг Google после обновления + корректный XML без ошибок |
| Получить Rich Results | Валидная JSON-LD разметка + проверка через Rich Results Test |
| Верифицировать домен | Мета-тег / файл / DNS — доступен для APIs-Google |
| Снизить нагрузку от бота | gzip сжатие + кеш для sitemap, robots.txt, RSS-фидов |
| Настроить well-known эндпоинты | Создать security.txt, assetlinks.json — доступны без блокировок |
| Диагностировать проблемы с sitemap | curl + xmllint + Search Console → Sitemaps |
| Проверить структурированные данные | Rich Results Test + Schema Markup Validator |
| Защитить технические эндпоинты | Rate limiting для API + запрет листинга директорий |
| Верифицировать подлинность бота | Двухэтапный DNS lookup: IP → google.com / googlebot.com домен |