Programmatic SEO аудит globalwork.ai — тестовое задание SEO Team Lead

Google US · июль 2026 · Инструменты: Ahrefs (Overview + Top Pages exports по 4 доменам), Google site:, полный разбор sitemap 4 доменов (601 тыс. URL), собственный crawl globalwork.ai (382 URL raw HTML + 52 URL rendered, Playwright), Wayback-снапшоты конкурента. GSC недоступен — все выводы об индексации помечены как внешние сигналы. Метки данных: FACT прямое измерение · SAMPLE выборка · EST оценка Ahrefs/site:

Executive summary

31 303
URL в sitemap globalwork
35
keywords в US-выдаче (Ahrefs)
1 800
US-органики, визитов/мес
93%
sitemap — короткоживущие вакансии
100%
контента — только после JS-рендеринга
56:1
платный трафик к органике ($29.3K/мес)
  1. Сайт умеет генерировать страницы, но не создаёт поисковую поверхность. 31,3 тыс. URL в sitemap, ~13,2 тыс. в индексе Google — и только 35 ранжирующихся запросов (1,1 keyword на 1 000 URL против 559 у FlexJobs, 269 у RobertHalf, 83 у RemoteRocketship). Проблема не «Google не индексирует», а «страницы в индексе, но мертвы для поиска».
  2. Две причины, обе устранимы. Стратегическая: 93% инвентаря — одноразовые вакансии без evergreen-слоя (компании, salary, гео-хабы), который кормит всех трёх конкурентов. Техническая: initial HTML пуст — медиана 9–13 слов, 0 внутренних ссылок, JobPosting schema только после JS (маркер BAILOUT_TO_CLIENT_SIDE_RENDERING на 100% проверенных страниц).
  3. Планка достижима. RemoteRocketship с тем же авторитетом домена (DR 53 vs 49) получает 48,8 тыс. US-визитов — в 27 раз больше. globalwork уже платит ~$29 300/мес за 118 тыс. платных визитов; каждый процент спроса, переведённый в органику, — прямая экономия.

ЧАСТЬ 1Programmatic-архитектура globalwork.ai

Шаблоны, URL-логика, типы листингов FACT (полный sitemap 21.07)

ШаблонURL-паттернВ sitemapРанжируется (Ahrefs)Трафик
Вакансия (job detail)/en/{wf}-jobs/usa/{slug}_{uuid}29 241 (93,4%)10~6
Role listing (remote)/en/remote-jobs/usa/{role}1 24813
Role × City (onsite)/en/onsite-jobs/usa/{role}/{st}/{city}56300
Role × State (onsite)/en/onsite-jobs/usa/{role}/{st}24900
Country hub/en/{wf}-jobs/usa2236
Homepage / locale/{locale}021 857 (96% всего)

Только США и локаль en; hybrid-ветка появилась в sitemap между 20.07 и 21.07 (114 URL) — sitemap регенерируется, но остаётся однострановым. Company pages, salary-страницы, категорийные и гео-хабы, editorial — отсутствуют как классы. ~95% брендового US-трафика: «globalwork.ai reviews», «global work» и т.п.

Узкое место, ограничивающее масштабирование до 100K+

Не генерация URL — она уже работает. Ограничивают три слоя:

  1. Пустой initial HTML (главный технический блокер). SAMPLE n=382 raw / 52 rendered Медиана видимого текста в raw HTML — 9–13 слов при 350–550 КБ Next.js Flight payload; после рендеринга — 1 700–1 950 слов. Внутренних ссылок в raw HTML — 0 (все ~68 появляются после JS); JobPosting schema — 0% в raw, 100% в rendered. Каждая из будущих 100K+ страниц будет зависеть от второй волны рендеринга Google, а обнаружение страниц — только от sitemap, потому что ссылочного графа для краулера не существует. Для Google for Jobs клиентская JobPosting — прямой риск непопадания.
  2. Короткоживущие вакансии без evergreen-слоя (главный стратегический блокер). FACT 93,4% sitemap — вакансии с коротким жизненным циклом: 16,4% выборки job-URL из sitemap уже отдают 404 SAMPLE n=140; страница умирает раньше, чем накапливает сигналы. Стабильных сущностей, которые аккумулируют ссылки и позиции годами (компании, роли+salary, гео-хабы), — нет.
  3. Гигиена индексации. FACT/SERP lastmod — 0% из 31 303 URL (у RemoteRocketship 99,7%, у RobertHalf 100%); в выдаче держатся страницы с тайтлами «May 2026» при актуальном июле; дублирующий маршрут /en/search/job/{uuid} отдаёт 200/self-canonical/index (два индексируемых URL на одну вакансию); в индексе служебные субдомены label. и vpn.; в тайтле главной незаполненный плейсхолдер «[500k]+»; индексируются страны (Switzerland, Peru), которых нет в sitemap — карта URL, canonical и sitemap рассинхронизированы.

Есть ли проблемы с индексацией и в чём причина

Индексация как таковая работает: ~13 200 страниц в индексе site:, канониклы чистые (100% self-canonical, noindex не обнаружен n=359), у конкурентов Google держит 155–585 тыс. страниц той же ниши. Настоящая проблема — страницы в индексе не ранжируются: контент виден Google только после рендеринга, страницы не связаны ссылками, шаблоны различаются в основном H1/title («500+ jobs found» одинаков на 10 из 12 проверенных листингов при разных реальных счётчиках в title), а 93% URL умирают раньше, чем набирают сигналы. Показательно: у всех трёх конкурентов индекс в 1,9–2,6 раза БОЛЬШЕ их sitemap (страницы живут годами), у globalwork — МЕНЬШЕ (42%).

ЧАСТЬ 2Конкурент: RemoteRocketship (+ бенчмарки FlexJobs и RobertHalf)

Почему именно он: сопоставимый авторитет (DR 53 vs 49, 4 000 vs 490 доноров) — то есть его результат объясняется архитектурой, а не брендом: 48,8K US-визитов, 99% трафика небрендовое, ~500 тыс. страниц в индексе.

Откуда трафик и как устроен подход Ahrefs top-slice sitemap

КластерURL-паттернСтр. в sitemapТрафик (срез)
Локализованные role/attribute листинги/{cc}/jobs/{role_or_attr}6 09426,4K
Country × role/country/{country}/jobs/{role}6 68514,7K
Глобальные role pages/jobs/{role}(в 6 094)10,9K
Company pages (+локализованные)/us/company/{company}6 5098,4K
Гео-хабы: страны, штаты/country/{c}, /us/state/{st}208+8,3K
Role × seniority/attribute/jobs/{role}/{attr}4,7K
Вакансии (company-scoped)/us/company/{c}/jobs/{slug}169 724 (90%)2,4K

Ключевые механики: (1) вакансия живёт «внутри» компании — canonical /us/company/{c}/jobs/{slug}, preview-маршрут /publicjobs/ закрыт noindex; (2) каждая страница — узел entity-графа: 250–320 внутренних ссылок в исходном HTML (120–177 на роли, ~85 на компании) Wayback n=11; (3) контент рождается на сервере — 2 000–2 700 слов в raw HTML; (4) freshness виден: lastmod 99,7%, живые счётчики в сниппетах («92528+ jobs» US, «11.692» DE); (5) интентовые страницы под реальный спрос: /us/jobs/entry-level, /jobs/data-analyst/internships, /gb/jobs/no-degree-required.

Две идеи для адаптации в globalwork:
1. Entity-слой «компания ↔ роль ↔ география» поверх вакансий. Company pages + role hubs со ссылками в обе стороны и вакансиями внутри — вместо 29K изолированных job-страниц. Подтверждено дважды: у RR 6,5K company pages дают 8,4K трафика; у FlexJobs company pages — 76% всего sitemap (57,5K стр., 41K трафика в срезе).
2. Живые данные как контент шаблона. Реальные счётчики вакансий (вместо «500+ jobs found» на каждой странице), freshness-даты, lastmod в sitemap, seniority/attribute-модификаторы под подтверждённый спрос.

Бенчмарки для следующего горизонта: RobertHalf показывает самую денежную механику ниши — location×role листинги (154K трафика / $77K value в срезе) и evergreen role/salary-профили (/us/en/job-details/{role}/{city}, 64,6K / $52K): salary-слой — этап 2 для globalwork, когда появятся достоверные зарплатные данные. FlexJobs — эталон таксономии role/category × geo × attribute и внутренней перелинковки (559 keywords на 1 000 sitemap URL — максимум ниши). Копировать их буквально не нужно (DR 83–84 и другая бизнес-модель у RH), но интент-архитектура переносима.

ЧАСТЬ 3Топ-3 действия на первые 60 дней

1. Недели 0–2: гигиена индекса и sitemap — снять «красные флаги», получить baseline

Что делаем
Чиним плейсхолдер «[500k]+» в title главной; закрываем label./vpn. субдомены (noindex + auth); убираем статичный месяц из title или гарантируем обновление; канонизируем /en/search/job/{uuid} на основной маршрут; убираем 404 из sitemap (410/redirect для истёкших вакансий); добавляем честный lastmod; сегментируем sitemap по шаблонам; синхронизируем страны (CHE/PER и др.) между сайтом, sitemap и canonical; подключаем GSC и снимаем baseline по каждому шаблону: Submitted / Indexed / Impressions.
Почему
Дёшево (1–2 недели без больших инженерных затрат), убирает утечки crawl budget и репутационные риски (VPN-логин в индексе), а baseline по когортам — предусловие для оценки всего остального.
Эффект и метрики
Служебные субдомены и stale-тайтлы исчезают из выдачи; доля 404 в sitemap <1%; по каждому шаблону известен GSC-статус. Метрики: GSC Page Indexing по когортам, Crawl Stats, доля URL с lastmod.
Риски
Минимальные; главное — не удалить рабочие страницы стран, а внести их в карту.

2. Недели 0–6 (параллельный инженерный трек): контент и JobPosting — в initial HTML

Что делаем
SSR/пререндер основного контента листингов и вакансий: H1, описание, job-карточки, внутренние ссылки и JobPosting/FAQ schema должны присутствовать в HTML-ответе сервера. Сокращаем Flight payload (сейчас 350–550 КБ с глобальными переводами/onboarding-данными в каждой странице).
Почему
Это предусловие пилота №3: сейчас 100% страниц для первого прохода краулера — пустая оболочка (9–13 слов, 0 ссылок), и любые улучшения шаблонов Google просто не увидит без рендеринга. Контрпример-доказательство — RemoteRocketship с контентом в raw HTML при том же DR. Клиентская JobPosting блокирует стабильное попадание в Google for Jobs — бесплатный канал для job-сайта.
Эффект и метрики
Доля страниц с контентом в raw HTML → 100% (замер нашим краулером); появление в Google for Jobs; ускорение индексации новых URL. Метрики: word count/links в initial HTML по шаблонам, GSC Crawl Stats, показы Google for Jobs, время «публикация → индексация».
Риски
Инженерная ёмкость — раскатывать пошаблонно, начиная с role listings; следить за TTFB.

3. Недели 2–8: пилот entity-слоя — role × geo, следом company pages

Что делаем
Не расширяем 29K вакансий. Пилот: 50–100 ролей × 10–20 географий с реальным inventory (+10–30 attribute-комбинаций: entry-level, part-time, internship, no-degree). Data-rich шаблон: живой счётчик и свежие вакансии, уникальное описание роли, top employers, skills, salary-диапазон при наличии данных, related roles/locations, breadcrumbs, сквозная перелинковка role ↔ geo ↔ job. Страницы с 0–4 вакансиями — noindex или не создаём (quality gate). Сразу за пилотом — company pages для работодателей с достаточным числом активных вакансий (у globalwork 1B+ postings в базе — сырьё уже есть). Расширение дальше — только по opportunity score (спрос × inventory × конкуренция ÷ effort) и результатам когорт.
Почему
Все три конкурента зарабатывают органику на стабильных сущностях; у RR они работают при равном DR. Существующие 1 248 role pages с 1 ранжирующейся страницей — это не приговор шаблону, а повод перезапустить его правильно (contentful + linked + gated) и измерить когортой, прежде чем строить 100K+.
Эффект и метрики
Рост non-brand keywords и ranking pages по когорте (сейчас 15 non-brand keywords на домен); цель когорты — ≥60% valid indexed, ненулевые impressions, 0 thin-страниц. Метрики: GSC по когорте (impressions/clicks/позиции), Ahrefs keywords по шаблону, доля страниц ниже порога inventory.
Риски
Related-блоки и salary — только на реальных данных, не generic AI-текст; жёсткие kill-критерии для слабых комбинаций, иначе повторим текущую ситуацию в большем масштабе.

После 60 дней (очередь): salary/role-профили по методологии RobertHalf на собственных данных (25–50 ролей со статистически защищаемой выборкой) → международная матрица country×role по модели RR → editorial-слой как поддержка entity-графа и источник ссылок/AI-цитирований → масштабирование выигравших когорт к цели 150K+ страниц.

Дополнительно: экономика и позиция в нише (за рамками задания)

Сводные метрики (US, июль 2026)

globalworkflexjobsremoterocketshiproberthalf
DR / ref. domains49 / 49084 / 26,3K53 / 4K83 / 17,5K
US organic, визитов/мес1,8K364,2K48,8K439,7K
Non-brand трафик1,3K278,3K73,2K502,2K
Индекс Google (site:)~13,2K~155K~500K~568–585K
URL в sitemap31,3K75,7K189,6K (167,5K уник.)304,6K
Keywords / 1000 sitemap URL1,155983269
AI Overviews, упоминаний54,4K64417K
Paid traffic (расход/мес)118K ($29,3K)1,9M1,6K103K

Структура sitemap: ставка каждого игрока FACT

КлассGWFJRRRH
Вакансии (короткоживущие)93%1%90%4%
Company pages057,5K6,5K
Role/category/geo листинги2,1K14,8K12,0K128,6K
Salary / role-описания0150,4K
Editorial / контент01,1K1,2K12,5K
lastmod0%1,1%99,7%100%

Три конкурента — три разные модели, но органика у всех живёт на stable-страницах. globalwork — единственный со ставкой почти целиком на короткоживущие вакансии.

Экономический аргумент для бизнеса: globalwork покупает ~118 тыс. визитов/мес за ~$29,3 тыс. (соотношение paid:organic = 56:1). Органика конкурентов на тех же интентах оценивается Ahrefs в $205K (FlexJobs) и $472K (RobertHalf) эквивалентного PPC-бюджета в месяц. SEO-функция здесь окупается замещением уже существующих рекламных расходов, а не гипотетическим будущим трафиком.

KPI-рамка для управления programmatic (еженедельно, по когортам шаблонов)

Submitted / Indexed / Canonical по когорте · страницы с impressions и non-brand keywords · Top-10 · трафик и конверсии на 1 000 sitemap URL · доля zero-job и stale страниц · median jobs per listing · crawl waste · assisted applications · referring domains и AI Overview-цитирования evergreen-страниц.

Ограничения

Ahrefs — модельные оценки (не GA/GSC); Top Pages exports — top-slice, суммы по шаблонам — нижние границы. site: — приблизительный внешний сигнал, включает субдомены (у roberthalf замер без www; оценка колебалась 568–585K между снятиями). Без GSC статус индексации не подтверждён — формулировки «в индексе / не ранжируется» опираются на site: и Ahrefs. Crawl globalwork — стратифицированная выборка (382 raw / 52 rendered, seed 42), не полный обход. RemoteRocketship и FlexJobs закрыты WAF для серверного доступа: страницы RR анализированы по Wayback-снапшотам (2024–2026), sitemap обоих скачаны через браузерную сессию. Замеры разнесены на 20–21.07 — sitemap globalwork за это время регенерировался (появилась hybrid-ветка, ±150 URL по листингам).

Тестовое задание SEO Team Lead · globalwork.ai · июль 2026. Все цифры воспроизводимы из артефактов проекта: сравнительные таблицы (01, 02), разбор структур sitemap 4 доменов (03), полные списки URL, скрипты сбора (Python + browser-console JS), HTTP-кэш и скриншоты. Основной документ укладывается в требуемые 2–3 страницы частями 1–3; разделы «Дополнительно» — расширение сверх задания.