Сайт в разработке Наполняем разделы и правим ошибки — что-то может выглядеть или работать не так. Если заметили — позвоните или напишите.

Как сократить время загрузки страниц на сайте кадрового агентства

Разбираем, почему у кадровых агентств тормозят списки вакансий и формы отклика, и что можно изменить на сайте. В конце есть проверочный список.

Раздел: Разработка — статьи о сайтах

Сайт кадрового агентства обычно открывают с телефона: соискатель смотрит вакансии в дороге, а HR-менеджер компании-заказчика проверяет страницу услуг. Если список вакансий долго не появляется, человек возвращается в выдачу или идёт на крупную площадку. Ниже разберём, где на таких сайтах чаще всего теряется время и какие меры дают заметный эффект.

Почему каталог вакансий тормозит чаще других страниц

Главная и страница услуг почти статичны. Каталог устроен сложнее: на каждый запрос сайт собирает список из базы, применяет фильтры (город, график, зарплата, сфера), подставляет логотипы работодателей и считает количество найденных позиций. Вакансии часто приходят из внешней системы или файла выгрузки, и тогда страница ещё и ждёт ответа чужого сервиса. Вторая группа причин — тяжёлые «украшения»: большое фото команды, видео-фон, карусель отзывов, несколько виджетов в одном экране.

С чего начать: измерить именно те страницы, которые приводят людей

Выберите четыре типа страниц: главную, каталог вакансий с включённым фильтром, карточку вакансии и страницу с формой отклика. Проверьте их в PageSpeed Insights или Lighthouse на мобильном профиле и сохраните результаты. Обращайте внимание на три показателя:

  • LCP — когда появился самый крупный элемент первого экрана (часто это баннер или заголовок со списком);
  • CLS — прыгает ли вёрстка, пока подгружаются логотипы, шрифты и баннер о cookie;
  • время блокировки основного потока: оно показывает, насколько скрипты мешают нажать на кнопку «Откликнуться».

Лабораторные цифры нужно сверять с реальными: у Метрики есть данные о времени загрузки у посетителей, а у Google есть отчёты по реальным пользователям, если трафика достаточно. Результат зависит от устройств и сетей вашей аудитории, поэтому универсального «хорошего числа» для всех сайтов нет.

Как разгрузить список вакансий на стороне сервера

Сначала посмотрите, сколько запросов к базе делает один показ каталога и сколько ответа вы ждёте от внешней системы. Затем применяйте простые меры:

  • не обращайтесь к внешней системе на каждый показ страницы: импортируйте вакансии по расписанию в свою базу;
  • кэшируйте готовый HTML популярных списков («Вакансии в вашем городе», «Склад и логистика») и сбрасывайте кэш, когда вакансия закрыта или добавлена, чтобы не показывать неактуальное;
  • добавьте индексы в базе на поля фильтров: город, сфера, график, дата публикации;
  • используйте постраничный вывод по 20–30 записей вместо загрузки всего списка;
  • не считайте точное число найденных вакансий для каждой комбинации фильтров, если для этого нужен тяжёлый запрос.

Изображения, шрифты и скрипты: пример фрагмента страницы

Возьмём условную страницу «Вакансии: склад и логистика». Вверху заголовок, фильтры и первые карточки, у каждой есть логотип работодателя. Типичная ошибка — одинаково грузить все логотипы сразу и подключать шрифт с пятью начертаниями. Лучше так:

<link rel="preload" href="/fonts/text-cyr.woff2" as="font" type="font/woff2" crossorigin>

<img src="/img/logistics-hero.webp" width="800" height="360"
     fetchpriority="high" alt="Склад: подбор персонала">

<!-- карточки ниже первого экрана -->
<img src="/logos/employer-17.webp" width="64" height="64"
     loading="lazy" decoding="async" alt="Логотип работодателя">

Что здесь важно. Главному изображению первого экрана приоритет повышен, а «ленивую» загрузку к нему применять не нужно. Ширина и высота заданы, поэтому место под картинку резервируется и вёрстка не прыгает. Логотипы ниже экрана грузятся по мере прокрутки. В шрифтах оставьте один-два файла в формате WOFF2 с кириллицей и добавьте в стили font-display: swap, чтобы текст был виден сразу.

Сторонние виджеты: чат, коллтрекинг, формы

У кадровых агентств на странице часто собираются онлайн-чат, подмена номера телефона, две системы аналитики, пиксели рекламных кабинетов, карта офиса и виджет отзывов. Каждый такой блок тянет свои скрипты, и вместе они могут задерживать интерактивность сильнее, чем фотографии. Что можно сделать:

  • составьте список всех внешних скриптов и спросите по каждому, кто использует данные и что случится, если его убрать;
  • чат и карту подгружайте после первого касания, прокрутки или клика по заглушке;
  • видео с внешних сервисов заменяйте превью-картинкой, плеер подключайте по клику;
  • форму отклика делайте лёгкой: загрузку резюме можно оформить обычным полем файла, а проверки и маски телефона сделать небольшим собственным кодом, а не тяжёлой библиотекой;
  • задайте разумный лимит размера файла резюме и покажите понятное сообщение, если он превышен.

Проверочный список перед запуском изменений

  • Замерены главная, каталог с фильтром, карточка вакансии и форма отклика, результаты сохранены.
  • Вакансии берутся из своей базы, а не напрямую из внешнего сервиса при каждом показе.
  • Для популярных списков есть кэш и сброс при изменении вакансии.
  • Список разбит на страницы, на фильтрах есть индексы.
  • Изображения в современных форматах, с размерами, у всех кроме главного — ленивая загрузка.
  • Подключено не более двух файлов шрифтов с кириллицей.
  • Чат, карта и видео загружаются по действию пользователя.
  • Форма отклика работает на телефоне без заметной задержки после нажатия.
  • После правок замеры повторены на тех же страницах.

Меняйте по одному пункту и сравнивайте с исходными замерами: так видно, что помогло, а что только усложнило сайт. Ускорение улучшает опыт посетителя, но не гарантирует позиций в поиске.

Все статьи блога

Заявка

Расскажите о проекте

Свяжемся в течение рабочего дня, зададим уточняющие вопросы и предложим варианты. Без навязчивых звонков.

Форма обратной связи

Отвечаем в рабочие дни с 10:00 до 19:00

Написать в Telegram