В 2025 году производительность сайта стала критически важным фактором для SEO и пользовательского опыта. Google использует Core Web Vitals как основные сигналы ранжирования, и WordPress-сайты без должной оптимизации теряют позиции в поиске.
Что изменилось в Core Web Vitals в 2025
INP заменил FID
С марта 2024 года Interaction to Next Paint (INP) официально заменил First Input Delay в качестве основной метрики интерактивности. Это кардинально меняет подход к оптимизации JavaScript на WordPress-сайтах.
INP измеряет не только первое взаимодействие, но и все взаимодействия пользователя со страницей, фокусируясь на худших сценариях. Для WordPress это означает особое внимание к плагинам и темам, которые генерируют тяжелые JavaScript-задачи.
Новые пороговые значения
Актуальные целевые показатели для 2025 года:
- LCP (Largest Contentful Paint) — ≤ 2.5 секунды
- INP (Interaction to Next Paint) — ≤ 200 миллисекунд
- CLS (Cumulative Layout Shift) — ≤ 0.1
Топовые WordPress-сайты достигают еще лучших показателей: LCP < 1.8s, INP < 100ms, CLS < 0.05.
Глубокая оптимизация LCP
Оптимизация героического блока
Самый быстрый способ улучшить LCP — оптимизировать главный элемент страницы. Тяжелые слайдеры и баннеры заменяем оптимизированными изображениями:
xml<img src="/images/hero.webp"
width="1280"
height="720"
fetchpriority="high"
loading="eager"
decoding="async"
alt="Главный баннер">Атрибут fetchpriority="high" указывает браузеру на приоритетную загрузку именно этого изображения.
Критический CSS и предзагрузка ресурсов
Для WordPress критически важно выделить CSS, необходимый для отображения контента выше сгиба:
php// В functions.php
function preload_critical_resources() {
echo '<link rel="preload" href="/fonts/inter.woff2" as="font" type="font/woff2" crossorigin>';
echo '<link rel="preload" href="/css/critical.css" as="style">';
}
add_action('wp_head', 'preload_critical_resources');Оптимизация шрифтов
Неоптимизированные шрифты серьезно влияют на LCP и CLS:
css@font-face {
font-family: 'Inter';
src: url('/fonts/inter.woff2') format('woff2');
font-display: swap;
font-weight: 400;
}В <head> добавляем предзагрузку:
xml<link rel="preload"
href="/fonts/inter.woff2"
as="font"
type="font/woff2"
crossorigin>
Минимизация времени отклика сервера
Для WordPress особенно важна оптимизация TTFB (Time to First Byte):
- Включение полноценного кэширования страниц
- Подключение CDN (Cloudflare, StackPath)
- Обновление до PHP 8.2+
- Использование объектного кэширования (Redis/Memcached)
- Переход на управляемый WordPress-хостинг
Устранение проблем CLS
Резервирование места для контента
Основная причина скачков макета — отсутствие зарезервированного места для элементов:
xml<!-- Правильно -->
<img src="banner.jpg"
width="1200"
height="500"
alt="Баннер">
<!-- Еще лучше с CSS -->
<div style="aspect-ratio: 16/9;">
<img src="responsive.jpg" alt="Адаптивное изображение">
</div>Стабилизация рекламных блоков
Рекламные блоки и виджеты часто вызывают скачки макета. Резервируем место заранее:
css.ad-placeholder {
width: 300px;
height: 250px;
background: #f0f0f0;
display: flex;
align-items: center;
justify-content: center;
}Предотвращение скачков от шрифтов
Используем font-display: swap и правильную предзагрузку:
xml<link rel="preload"
href="/fonts/main.woff2"
as="font"
type="font/woff2"
crossorigin>Продвинутая оптимизация INP
Разделение тяжелых JavaScript-задач
Задачи JavaScript дольше 50ms блокируют основной поток. Разбиваем их на части:
javascript// Плохо - блокирует поток
function heavyTask() {
for (let i = 0; i < 1000000; i++) {
// тяжелые вычисления
}
}
// Хорошо - не блокирует
async function optimizedTask() {
for (let i = 0; i < 1000000; i++) {
if (i % 10000 === 0) {
await new Promise(resolve => setTimeout(resolve, 0));
}
// тяжелые вычисления
}
}Отложенная загрузка JavaScript
Для WordPress реализуем через functions.php:
php function defer_non_critical_js($tag, $handle, $src) {
// Список критически важных скриптов
$critical_scripts = array('jquery-core', 'wp-polyfill');
if (in_array($handle, $critical_scripts)) {
return $tag;
}
// Добавляем defer для остальных
return str_replace('<script ', '<script defer ', $tag);
}
add_filter('script_loader_tag', 'defer_non_critical_js', 10, 3);Пассивные обработчики событий
Для улучшения отзывчивости используем пассивные слушатели:
javascript // Оптимизированные обработчики прокрутки
window.addEventListener('scroll', handleScroll, { passive: true });
window.addEventListener('touchstart', handleTouch, { passive: true });Web Workers для тяжелых задач
Выносим тяжелые вычисления в отдельные потоки:
javascript// main.js
const worker = new Worker('/js/heavy-worker.js');
worker.postMessage({data: largeDataset});
worker.onmessage = (e) => {
displayResults(e.data);
};
// heavy-worker.js
self.onmessage = (e) => {
const result = processLargeDataset(e.data);
self.postMessage(result);
};Специфичные для WordPress техники
Выбор оптимизированных тем
Производительные темы для WordPress:
- GeneratePress — минималистичный и быстрый
- Astra — легкий с хорошей оптимизацией
- Blocksy — современный блочный подход
Аудит и оптимизация плагинов
Каждый плагин добавляет нагрузку. Регулярно проводим аудит:
php// Отключение ненужных скриптов на определенных страницах
function disable_unnecessary_scripts() {
if (is_front_page()) {
wp_dequeue_script('contact-form-7');
wp_dequeue_style('woocommerce-general');
}
}
add_action('wp_enqueue_scripts', 'disable_unnecessary_scripts', 100);Использование встроенной ленивой загрузки
WordPress 5.5+ имеет встроенную ленивую загрузку. Убеждаемся, что плагины ее не переопределяют:
php// Отключение ленивой загрузки для критических изображений
function disable_lazy_loading_for_hero($attr, $attachment) {
if (is_front_page() && has_post_thumbnail()) {
$attr['loading'] = 'eager';
$attr['fetchpriority'] = 'high';
}
return $attr;
}
add_filter('wp_get_attachment_image_attributes', 'disable_lazy_loading_for_hero', 10, 2);Современные форматы изображений
Внедрение WebP и AVIF
Новые форматы изображений существенно снижают размер файлов:
phpfunction modern_image_formats($sources, $size_array, $image_src, $image_meta, $attachment_id) {
$uploads = wp_upload_dir();
$image_path = str_replace($uploads['baseurl'], $uploads['basedir'], $image_src);
// Проверяем существование AVIF версии
$avif_path = preg_replace('/\.(jpg|jpeg|png)$/i', '.avif', $image_path);
if (file_exists($avif_path)) {
$avif_url = str_replace($uploads['basedir'], $uploads['baseurl'], $avif_path);
$sources[] = array(
'url' => $avif_url,
'descriptor' => 'type',
'value' => 'image/avif',
);
}
return $sources;
}
add_filter('wp_calculate_image_srcset', 'modern_image_formats', 10, 5);Инструменты для мониторинга
Google Search Console
Основной источник данных о реальных пользователях:
- Переходим в Search Console → Core Web Vitals
- Анализируем проблемные URL-группы
- Кликаем на конкретные URL для детального анализа
- Используем PageSpeed Insights для рекомендаций
PageSpeed Insights
Показывает как лабораторные, так и полевые данные:
- Field Data — реальные пользователи (важно для SEO)
- Lab Data — контролируемые условия (полезно для диагностики)
Плагин Site Kit
Интегрирует данные Google прямо в панель WordPress:
php// Программный доступ к данным Site Kit
$pagespeed_data = get_option('googlesitekit_pagespeed-insights');
if ($pagespeed_data) {
$lcp_score = $pagespeed_data['core_web_vitals']['lcp'];
}Продвинутые техники оптимизации
Critical Resource Hints
Используем современные возможности браузеров:
xml<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="dns-prefetch" href="//analytics.google.com">
<link rel="preload" href="/css/above-fold.css" as="style">
<link rel="prefetch" href="/js/below-fold.js" as="script">Resource Hints для третьих сторон
Оптимизируем подключение к внешним сервисам:
xml<link rel="preconnect" href="https://www.googletagmanager.com">
<link rel="preconnect" href="https://www.google-analytics.com">
<link rel="dns-prefetch" href="//youtube.com">HTTP/3 и Server Push
На современном хостинге настраиваем автоматический push критических ресурсов:
text# .htaccess
<IfModule mod_http2.c>
H2PushResource /css/critical.css
H2PushResource /fonts/main.woff2
</IfModule>Плагины для автоматизации
Комплексные решения
WP Rocket — наиболее эффективный плагин кэширования:
- Автоматическая генерация критического CSS
- Отложенная загрузка JavaScript
- Оптимизация изображений
- Предзагрузка страниц
LiteSpeed Cache — для серверов LiteSpeed:
- Встроенный ESI для динамического контента
- Оптимизация базы данных
- Интеграция с CDN
- WebP конвертация
Специализированные инструменты
Perfmatters — точечная оптимизация:
- Отключение ненужных скриптов по страницам
- Управление heartbeat API
- Очистка wp_head
- Ленивая загрузка для всех элементов
Мониторинг и поддержание результатов
Автоматизированный мониторинг
Настраиваем регулярную проверку метрик:
php// Еженедельная проверка Core Web Vitals
function schedule_cwv_check() {
if (!wp_next_scheduled('cwv_weekly_check')) {
wp_schedule_event(time(), 'weekly', 'cwv_weekly_check');
}
}
add_action('init', 'schedule_cwv_check');
function perform_cwv_check() {
$urls = ['/', '/about/', '/services/'];
foreach ($urls as $url) {
$score = check_pagespeed_score($url);
if ($score < 75) {
wp_mail(get_option('admin_email'),
'CWV Alert',
"Page $url scored $score");
}
}
}
add_action('cwv_weekly_check', 'perform_cwv_check');Чек-лист для публикации контента
Создаем стандартную процедуру проверки:
- Оптимизированы ли изображения?
- Добавлены width/height атрибуты?
- Нет ли тяжелых элементов выше сгиба?
- Протестирована ли страница на мобильном?
- Проверены ли Core Web Vitals в PSI?
Результаты и ожидания
При правильной оптимизации WordPress-сайты показывают улучшения на 30-50% в течение 2-4 недель. Алгоритм Google полностью учитывает изменения через 1-3 месяца.
Помните: идеальный скор 100/100 не нужен. Главное — превосходить конкурентов в выдаче. Однако стремление к показателям выше 90% по всем категориям дает существенное преимущество в конверсиях и пользовательском опыте.
Core Web Vitals — не просто технические показатели, а инструмент создания действительно быстрых и удобных WordPress-сайтов. Начинайте с простых оптимизаций: изображения, кэширование, выбор темы. Затем переходите к более сложным: JavaScript, хостинг, углубленная настройка плагинов.



