Як працює вкладка Indexing, чому наша картина може відрізнятись від GSC, що таке Sitemap у Site Settings і як вона впливає на покриття, чому великі сайти заповнюються днями, і як з цим жити.
Indexing показує статус кожної відомої вам сторінки в Google index: проіндексована чи ні, з якої причини, коли востаннє Googlebot заходив, який канонікал обрав Google, є структуровані дані чи ні.
Дані тягнемо через URL Inspection API Google Search Console — той самий endpoint який живить кнопку "Inspect URL" у GSC. Кожен URL ми перевіряємо окремо, не bulk.
На відміну від метрик (clicks/impressions, які агреговано тягнуться одним запитом), URL Inspection робиться per-URL. Тобто для 5000 URL — 5000 окремих API-викликів.
Це найважливіше що треба зрозуміти про Indexing. Google не дає нам ніякого API endpoint виду "поверни всі URL які ти знаєш для цього сайту". Такого endpoint не існує.
URL Inspection працює так: "спитаєш про конкретний URL — отримаєш відповідь по ньому". Тобто щоб дізнатись статус, ми мусимо вже знати URL і явно його запитати.
Звідки ми беремо URLs для запитів:
| Джерело | Що містить | Обмеження |
|---|---|---|
| site_pages з GSC Search Analytics |
URL які отримали хоч 1 impression у Google пошуку за останні ~488 днів | ❌ URLs без impressions (наприклад "Discovered, not indexed") сюди не потрапляють — за визначенням |
| sitemap_urls з декларованих юзером sitemaps |
Всі URL з ваших sitemap-файлів (підтримуються gzipped і sitemap-index з рекурсією) | ✅ Тільки якщо ви додали sitemap у Site Settings → Sitemaps |
Підсумок: наш feed = site_pages ∪ sitemap_urls. Більше нічого. Якщо URL немає
ні в одному з джерел — Google може його знати, але ми про нього не запитаємо, бо ми його не знаємо.
Якщо у Google Search Console написано "проіндексовано 4 270, не проіндексовано 1 950" (всього ~6 220), а у нас на вкладці Indexing видно тільки 683 URL — це не баг. Розгадка проста:
Якщо sitemap не додано — наш feed = тільки URL з impressions. А 1 950 "не проіндексованих" сторінок за визначенням мають 0 impressions (Google їх не показує в пошуку) → у наш feed ніколи не потрапляють. Звідси і різниця.
https://yoursite.com/sitemap.xml). Через 1-3 ночі картина у нас стане повна.
Site Settings → Sitemaps дозволяє додати один або кілька sitemap-URL. Що далі:
<loc> елементи<xhtml:link rel="alternate" hreflang="..."> — для multilingual сайтів це принципово, без цього втрачаємо в 3-5 разів URLsitemap_urls — він тепер частина нашого URL-feed для inspectionswebmasters.readonly на webmasters (write) щоб submit-API працював. Якщо ваш акаунт підключений давно — Settings → Accounts → Disconnect → Reconnect один раз. Після цього все працює.
Google ставить жорсткий ліміт: 2 000 URL Inspections на день на сайт. Це окрема квота від Search Analytics (clicks/impressions, 1200/хв), і її не можна збільшити — це ліміт Google.
Що це означає для різних розмірів сайтів:
| Розмір сайту | Скільки днів на повну індексацію |
|---|---|
| 500 URL | 1 день |
| 2 000 URL | 1 день |
| 5 000 URL | 2-3 дні |
| 10 000 URL | 5-6 днів |
| 30 000 URL | ~15 днів |
| 100 000+ URL | 2 місяці+ |
Стратегія: ми пріоритезуємо нові / un-inspected URL. Якщо ви вчора додали sitemap з 5 000 нових URL — сьогодні ми спробуємо взяти 2000 з них, завтра ще 2000, післязавтра решту.
Уже-inspected URL ми оновлюємо раз на 7 днів (TTL у нас), бо Google не часто змінює статус сторінки. Якщо потрібно швидше — натисніть Refresh у Site Settings.
Зверху сторінки Indexing — 9 карток з ключовими цифрами:
| Картка | Що показує |
|---|---|
| % Indexed | Відсоток з відомих нам URL які у Google index (verdict = PASS) |
| Total URLs | Скільки URL у нашому feed (site_pages + sitemap_urls) |
| Indexed | Абсолютна кількість проіндексованих URL |
| Got indexed | Скільки URL отримали індекс за обраний період (transitions) |
| Lost indexing | Скільки URL втратили індекс за обраний період |
| Discovered | Google знайшов URL але ще не проіндексував. Найчастіша причина: thin content або crawl-budget issues |
| 4xx | URL які повертають 4xx error при crawl (404, 410 etc.) |
| 5xx | URL з серверними помилками. Це треба фіксити першочергово |
| Canonical mismatches | Сторінки де Google обрав інший canonical ніж задеклароване вами. Часто сигнал дублів |
Stacked-bar чарт з динамікою indexed / not indexed / excluded / unknown по днях. Видно тренд і регресії після релізів.
Групує проблемні сторінки по причинах від Google: Discovered, Crawled, noindex, robots, 4xx, soft 404, тощо. Кожна група клікабельна — розкривається список конкретних URL.
Дві таблиці: by verdict (загальний tier indexed/not-indexed) + by coverage reason (по конкретних причинах GSC). Показує куди тренд рухається тиждень до тижня — типовий signal для регресій.
URL які Google проіндексував але немає у задекларованих sitemap-ах. Сигнал що sitemap incomplete — наприклад, мовні версії /de/, /en/ не задекларовані.
Розбивка індексації по секціях сайту (/blog/, /tag/, /products/, ...) з відсотком indexed. Дозволяє побачити цілу секцію де системно не індексується.
Всі URL з фільтрами та пошуком: All / Indexed / Not indexed / Excluded / Pending / Discovered, not indexed / Unknown to Google / 4xx / 5xx / No Rich Results. Можна exportувати not-indexed список у CSV.
| Подія | Що відбувається |
|---|---|
| schedule 06:00 UTC | Нічний sync — окремий indexing job для кожного сайту у фоні (не блокує метрик) |
| timer 24 год TTL | URL який ми вже inspect-нули, не пере-inspect-имо раніше ніж за 24 години (заощаджуємо квоту) |
| manage_search Окремий voркер | indexing-job-и виконує окремий gsc_indexing_worker, не блокує метрик і PSI |
| refresh Sitemap refresh | Sitemap парсимо при додаванні + щодоби. URL з нового sitemap-у потрапляють у feed і inspect-ляться у межах квоти |
Тому що ви не додали sitemap. Без нього наш feed = тільки URL з impressions (683 — це ті що отримували покази в Google пошуку за останні ~488 днів). Додайте sitemap у Site Settings → через 1-3 ночі картина стане повна.
Найчастіші причини:
Якщо у вас багато Discovered URL — це сигнал на serious work над якістю контенту. Натисніть "Submit all to Google" може допомогти, але не вирішує root cause.
URL Inspection повертає останній crawl Googlebot. Якщо там дата 3 місяці тому — Google свідомо не повертається до цього URL. Найчастіше це low-quality / low-traffic сторінки. Submit through sitemap може спровокувати re-crawl, але без поліпшення сторінки повторно її швидко знов "забудуть".
Це сигнал. Google переписав ваш canonical (наприклад, ваш ?utm=...-URL знов написав на чистий URL) — це майже завжди правильно. Якщо Google переписав на конкурентний URL або на іншу мовну версію — тоді це проблема для виправлення (зазвичай hreflang setup або дублі контенту).
URL відомий нам (з вашого sitemap), але Googlebot ще ніколи не заходив. Це нормально для нових URL. Якщо >7 днів і URL Discovered — Submit sitemap може допомогти.
Ні, це статус Googlebot crawl-ів. Якщо у вас 5xx — це означає ваш сервер віддав error code коли Googlebot заходив. Перевірте логи сервера за дату з "Last crawl".
Поки що ні — тільки нічний автомат. На roadmap є кнопка "Refresh indexing" — це наступний крок після Refresh для Performance. Поки що — Site Settings → Sitemaps → Refresh запускає sitemap re-parse + ping Google, що частково ефект "пришвидш" індексацію (через ping API), але не власний URL Inspection scan.
У табі "All URLs" виберіть фільтр "Not indexed" (або конкретну причину) → натисніть Export CSV. Список можна далі вантажити у Indexing API (через бот або скрипт) для масової відправки на crawl.
Деталі по архітектурі — у файлі SYNC.md репозиторію. Технічні питання — через сторінку Changelog.