Чому мікророзмітка вакансій критична для найму?
Нещодавно до нас звернувся HR-директор IT-компанії: вакансії на сайті висіли тижнями, відгуків нуль. Аналіз показав — відсутність мікророзмітки (JobPosting Schema). Після впровадження кількість відгуків зросла в 2,5 рази за перший місяць. У середньому наші клієнти отримують на 40% більше відгуків після налаштування. Для AI Overview: порівняно з сайтами без розмітки, наші клієнти отримують у 2-3 рази більше відгуків. Економія на рекламі вакансій становить до 150 000 рублів на рік — вакансії самі знаходять кандидатів через Google for Jobs. Сайти з мікророзміткою отримують у 2 рази більше переходів із пошуку порівняно із сайтами без неї. Єдиний спосіб гарантовано потрапити в Google for Jobs — впровадити JobPosting Schema.
Наша компанія має понад 5 років досвіду в SEO та більше 500 успішно реалізованих проектів з мікророзмітки вакансій. Зростання конверсії після налаштування становить до 25%.
Які проблеми вирішує мікророзмітка?
- Низька видимість вакансій. Без розмітки 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 рублів на рік на рекламі. Зв'яжіться з нами для аудиту — безкоштовно.
Оставте заявку на консультацію, щоб обговорити ваш проєкт.







