Если вы читаете это, скорее всего, вы устали от стандартных советов по производительности WordPress. Обычная рутина — установка WP Rocket, добавление плагина для оптимизации изображений и менеджера ресурсов — часто приводит к парадоксу: вы устанавливаете плагины для ускорения сайта, но сами плагины увеличивают нагрузку на базу данных, создают фоновые задания cron и добавляют свои собственные CSS/JS-файлы.
Правда в том, что WordPress не нужны 15 плагинов производительности, чтобы загружаться менее чем за секунду. Настоящая оптимизация скорости происходит на уровне «железа» — сервера, базы данных и основного кода.
В этом руководстве мы полностью обойдем экосистему плагинов. Мы оптимизируем WordPress с помощью серверных конфигураций, wp-config.php настроек и хирургических functions.php фрагментов кода.
1. Серверная основа (PHP не требуется)
Прежде чем приступать к изменению кода WordPress, ваша серверная среда должна быть тщательно оптимизирована. Слабый сервер нельзя исправить кэшированием на стороне клиента.
Обновитесь до PHP 8.1+
WordPress работает на PHP. Переход с PHP 7.4 на PHP 8.1 или 8.2 может дать сокращение времени выполнения на 20-30% и значительно снизить потребление памяти. Действие: Измените это в cPanel, Plesk или через CLI, если вы управляете собственным VPS.
Включите сжатие на уровне сервера (Brotli вместо Gzip)
Хотя Gzip является стандартом, Brotli (разработанный Google) обеспечивает примерно на 15-20% лучшие коэффициенты сжатия для текстовых файлов (HTML, CSS, JS) при тех же затратах ресурсов процессора. Действие (Nginx): Убедитесь, что в вашем nginx.conf включен Brotli:
brotli on;
brotli_comp_level 6;
brotli_types text/plain text/css application/javascript application/json image/svg+xml;
Реализуйте кэширование FastCGI (Nginx) или LiteSpeed Cache
Вместо использования плагина кэширования на базе PHP (который все равно требует частичной загрузки WordPress для обслуживания кэша), используйте кэширование на уровне веб-сервера. Кэширование Nginx FastCGI сохраняет сгенерированный HTML в оперативной памяти или на диске и отдает его напрямую, полностью минуя PHP и MySQL для анонимных посетителей.
2. Укрепление и оптимизация через wp-config.php
Файл wp-config.php — это ваш центр управления. По умолчанию WordPress допускает определенные действия, которые со временем раздувают вашу базу данных.
Добавьте эти фрагменты кода прямо перед строкой /* That's all, stop editing! Happy publishing. */ line.
Ограничение ревизий записей
По умолчанию WordPress хранит бесконечное количество ревизий ваших записей. Запись, обновленная 50 раз, будет иметь 50 копий в вашей wp_posts таблице базы данных, что значительно замедляет запросы к базе данных.
// Keep only the last 3 revisions
define( 'WP_POST_REVISIONS', 3 );
Оптимизация интервала автосохранения
WordPress выполняет автосохранение каждые 60 секунд. Если у вас работает несколько редакторов, это создает нагрузку на базу данных. Увеличьте этот интервал.
// Change autosave from 60 seconds to 5 minutes
define( 'AUTOSAVE_INTERVAL', 300 );
Очистка корзины быстрее
Удаленные записи и комментарии хранятся в базе данных 30 дней. Сократите этот срок, чтобы база данных оставалась компактной.
// Empty trash every 7 days
define( 'EMPTY_TRASH_DAYS', 7 );
3. «Анти-раздувающий» functions.php Мастер-фрагмент кода
Ядро WordPress по умолчанию внедряет огромное количество устаревших вспомогательных скриптов, ссылок для обнаружения и встроенных стилей в ваш и by default.
Чтобы получить максимальное преимущество перед конкурентами, мы не просто скажем вам «использовать плагин для очистки». Вот точный код для хирургического удаления наиболее распространенного «мусора» WordPress.
Примечание: добавьте это в файл functions.php вашей дочерней темы или в отдельный mu-плагин.
/**
* The Ultimate WordPress Debloat Snippet
*/
add_action('init', function() {
// 1. Remove RSD, XMLRPC, and WLW links
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wlwmanifest_link');
add_filter('xmlrpc_enabled', '__return_false');
// 2. Remove WordPress version footprint (Security & Speed)
remove_action('wp_head', 'wp_generator');
// 3. Remove Shortlinks and REST API links from header
remove_action('wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head');
// 4. Disable native Emojis (Saves 1 JS and 1 CSS HTTP Request)
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('admin_print_scripts', 'print_emoji_detection_script');
remove_action('admin_print_styles', 'print_emoji_styles');
remove_filter('the_content_feed', 'wp_staticize_emoji');
remove_filter('comment_text_rss', 'wp_staticize_emoji');
remove_filter('wp_mail', 'wp_staticize_emoji_for_email');
// 5. Disable oEmbeds (If you don't embed external URLs automatically)
remove_action('wp_head', 'wp_oembed_add_discovery_links');
remove_action('wp_head', 'wp_oembed_add_host_js');
add_action('wp_footer', function() { wp_deregister_script('wp-embed'); });
});
/**
* 6. Remove Global Styles (WP 5.9+ Inline CSS Bloat)
*/
add_action('wp_enqueue_scripts', function() {
wp_dequeue_style('global-styles');
wp_dequeue_style('classic-theme-styles');
}, 100);
/**
* 7. Remove jQuery Migrate (If using modern themes/plugins)
*/
add_action('wp_default_scripts', function($scripts) {
if (!is_admin() && isset($scripts->registered['jquery'])) {
$script = $scripts->registered['jquery'];
if ($script->deps) {
$script->deps = array_diff($script->deps, ['jquery-migrate']);
}
}
});
/**
* 8. Throttle the Heartbeat API
* Prevents high CPU usage when leaving the WP Admin open
*/
add_filter('heartbeat_settings', function($settings) {
$settings['interval'] = 60; // Throttle to 60 seconds
return $settings;
});
Чего мы только что достигли?
Добавив приведенный выше код, вы мгновенно устранили до 5-8 ненужных HTTP-запросов и удалили десятки строк встроенного CSS/JS при каждой загрузке страницы — и все это без установки ни одного плагина.
4. Оптимизация медиа (сложный путь)
Такие плагины, как Smush или Imagify, удобны, но они выполняют обработку изображений на вашем PHP-сервере, потребляя ресурсы процессора.
Ручное преобразование в WebP/AVIF
Перед загрузкой любого изображения в WordPress пропустите его через внешний компрессор без потерь, такой как Squoosh.app (от Google) или TinyPNG. Еще лучше, конвертируйте их в .webp или .avif форматы локально перед загрузкой.
Использование нативной ленивой загрузки (Lazy Loading)
Начиная с WordPress 5.5, нативная ленивая загрузка встроена. WordPress автоматически добавляет loading="lazy" к вашим изображениям. Вам не нужен плагин ленивой загрузки на JavaScript. Однако убедитесь, что ваши изображения «над сгибом» (например, логотип или главное изображение) НЕ имеют этого атрибута, так как это задержит Largest Contentful Paint (LCP).
Вы можете удалить ленивую загрузку для первого изображения на странице через functions.php:
add_filter( 'wp_get_attachment_image_attributes', function( $attr, $attachment, $size ) {
static $is_first_image = true;
if ( $is_first_image ) {
$attr['loading'] = 'eager'; // Force immediate load for LCP
$is_first_image = false;
}
return $attr;
}, 10, 3 );
5. Дефрагментация базы данных через phpMyAdmin
Плагины для оптимизации обычно имеют кнопку «Очистить базу данных». Вы можете сделать это нативно на уровне базы данных.
- Войдите в панель управления хостингом и откройте phpMyAdmin.
- Выберите вашу базу данных WordPress.
- Прокрутите вниз, отметьте Выбрать все.
- В выпадающем списке «С выбранными:» выберите Оптимизировать таблицу.
MySQL перестроит индексы таблиц и вернет неиспользуемое пространство. Делайте это вручную раз в месяц.
Вердикт
Оптимизация WordPress без плагинов — это не просто экономия денег на премиум-подписках. Это философия сокращения технического долга. Каждый плагин, который вы не устанавливаете, — это уязвимость безопасности, которую не нужно исправлять, таблица базы данных, которую не нужно очищать, и PHP-скрипт, который не нужно выполнять вашему серверу.
Перенесите рабочую нагрузку на сервер (PHP 8.1+, Nginx FastCGI), обеспечьте дисциплину в своем wp-config.php, и избавьтесь от раздутого ядра с помощью своего functions.php. Время до первого байта (TTFB) и показатели Core Web Vitals отразят эту разницу.



