Почему микроразметка вакансий критична для найма?
Недавно к нам обратился HR-директор IT-компании: вакансии на сайте висели неделями, откликов ноль. Анализ показал — отсутствие микроразметки (JobPosting Schema). После внедрения количество откликов выросло в 2,5 раза за первый месяц. В среднем наши клиенты получают на 40% больше откликов после настройки. Экономия на рекламе вакансий составляет до 150 000 рублей в год — вакансии сами находят кандидатов через Google for Jobs. Сайты с микроразметкой получают в 2 раза больше переходов из поиска по сравнению с сайтами без неё. Единственный способ гарантированно попасть в Google for Jobs — внедрить JobPosting Schema.
Какие проблемы решает микроразметка?
- Низкая видимость вакансий. Без разметки Google не выделяет вакансию в специальный блок. Исследования показывают: сайты с микроразметкой получают в 2 раза больше переходов из поиска. Один из наших клиентов увеличил количество откликов на 80% после внедрения.
- Ошибки в данных. Часто указывают неверный тип занятости или забывают validThrough, из-за чего вакансии не индексируются или показываются с просрочкой. В одном из проектов мы нашли 40% вакансий с невалидной разметкой.
- Дублирование разметки. На страницах со списком вакансий (например,
/career) нельзя ставить JobPosting Schema — это грубая ошибка, ведущая к санкциям. Каждая вакансия должна быть на отдельной странице.
Как мы это делаем: разбор на примере
Возьмём реальную задачу: настроить разметку для вакансии Senior PHP Developer (Laravel). Стек: Laravel 11, MySQL, Redis, Docker. Генерируем JSON-LD прямо в шаблоне Blade. Средняя зарплата Senior PHP developer в Москве — 250 000 рублей в месяц, что важно для корректного поля baseSalary.
Пример JSON-LD для вакансии
{ "@context": "https://schema.org", "@type": "JobPosting", "title": "Senior PHP Developer (Laravel)", "description": "<p>Ищем опытного PHP-разработчика для работы над высоконагруженным SaaS-проектом. Стек: Laravel 10, PostgreSQL, Redis, RabbitMQ.</p><ul><li>Разработка новых фич бэкенда</li><li>Code review</li><li>Участие в архитектурных решениях</li></ul>", "employmentType": "FULL_TIME", "hiringOrganization": { "@type": "Organization", "name": "ТехноСофт", "sameAs": "https://technosoft.ru", "logo": "https://technosoft.ru/logo.png" }, "jobLocation": { "@type": "Place", "address": { "@type": "PostalAddress", "streetAddress": "ул. Льва Толстого, 16", "addressLocality": "Москва", "addressRegion": "Москва", "postalCode": "119021", "addressCountry": "RU" } }, "jobLocationType": "TELECOMMUTE", "baseSalary": { "@type": "MonetaryAmount", "currency": "RUB", "value": { "@type": "QuantitativeValue", "minValue": 200000, "maxValue": 300000, "unitText": "MONTH" } } } В реальном проекте добавьте обязательные поля datePosted, validThrough и уникальный identifier. Подход используем такой: данные берутся из модели Vacancy и сериализуются в JSON-LD. Валидацию на уровне DTO — например, если salary_from null, то не выводим поле value. Это предотвращает ошибки.
Как правильно выбрать employmentType?
Тип занятости влияет на фильтры в Google Jobs. Неправильное значение — и вакансия не покажется нужной аудитории. Вот сравнение:
| Значение | Когда использовать | Типичная ошибка |
|---|---|---|
FULL_TIME |
Полный день, 40 часов | Путают с CONTRACTOR для штатных сотрудников |
PART_TIME |
Неполный день, 20 часов | Указывают CONTRACTOR для подработки |
CONTRACTOR |
Внештатный сотрудник, проект | Забывают указать срок в описании |
TEMPORARY |
Временная работа на сезон | Используют FULL_TIME для сезонных проектов |
INTERN |
Стажировка | Не добавляют информацию об обучении |
VOLUNTEER |
Волонтёрство без оплаты | Указывают зарплату — это ошибка |
Какие обязательные поля нужно проверить?
Перед публикацией разметки убедитесь, что все обязательные поля корректны и соответствуют данным на странице. Вот таблица с правилами валидации:
| Поле | Тип | Пример | Примечание |
|---|---|---|---|
title |
Text | "Senior PHP Developer (Laravel)" | Должен совпадать с заголовком на странице |
description |
HTML | " Ищем опытного... " |
Минимум 50 символов, без пустых тегов |
datePosted |
Date | "YYYY-MM-DD" | Дата публикации в формате ISO 8601 |
validThrough |
DateTime | "YYYY-MM-DDThh:mm:ss" | Обязательно, иначе вакансия не устареет |
employmentType |
Enum | "FULL_TIME" | Одно из допустимых значений schema.org |
hiringOrganization.name |
Text | "ТехноСофт" | Название компании |
jobLocation.address.addressLocality |
Text | "Москва" | Город для фильтрации |
baseSalary |
MonetaryAmount | см. пример | Указывать диапазон или точное значение |
Какие требования Google нужно соблюдать?
-
descriptionобязан содержать полное описание вакансии, а не краткое. Иначе Google отклонит разметку. -
validThrough— обязательно. Если не указать, вакансия может бесконечно висеть в индексе. Указывайте дату закрытия. - Данные в разметке должны совпадать с тем, что видит пользователь на странице. Если указали зарплату 200 000–300 000, а на странице написано «от 150 000» — ждите penalties.
- Запрещено размечать агрегированные страницы (списки вакансий). Только отдельные страницы.
Google Developers: Job Posting structured data
Процесс работы
- Аналитика — изучаем текущую структуру вакансий на сайте, CMS, шаблоны.
- Проектирование — разрабатываем схему данных и маппинг полей.
- Реализация — пишем код генерации JSON-LD (на PHP, Python, JS — неважно).
- Тестирование — проверяем через Schema Markup Validator и Google Search Console.
- Деплой и мониторинг — запускаем, смотрим coverage в GSC.
Сроки ориентировочно
Настройка микроразметки занимает от 1 до 3 рабочих дней в зависимости от сложности шаблонов. Если нужна интеграция с ATS-системой — срок может увеличиться до недели. Стоимость рассчитывается индивидуально.
Что входит в работу
- Полный аудит текущей разметки (если есть)
- Написание модуля генерации JobPosting Schema под вашу CMS
- Установка на тестовом и боевом серверах
- Проверка в инструментах Google
- Документация для ваших разработчиков
- Поддержка в течение месяца после запуска
Типичные ошибки при внедрении
Забывают validThrough, указывают неверный employmentType, используют нестандартный формат валюты (например, "RUR" вместо "RUB"), пишут некорректный HTML в description, или назначают одинаковый identifier разным вакансиям. Каждая из этих ошибок может привести к отклонению разметки Google. Внедрение микроразметки вакансий позволяет избежать этих проблем и сэкономить до 200 000 рублей в год на рекламе. Свяжитесь с нами для аудита — бесплатно.
Оставьте заявку на консультацию, чтобы обсудить ваш проект.







