Ускорение WordPress: советы и хитрости

Ускорение WordPress: советы и хитрости

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

1. Измеряем производительность WordPress

Перед тем как приступить к оптимизации, необходимо провести анализ текущей скорости сайта и выявить "узкие места". Для этого отлично подойдут следующие онлайн-инструменты:

  • keycdn Tools 
  • GTmetrix 
  • Google PageSpeed Insights 
  • WebPageTest 
  • Website Speed Test от keycdn

Эти сервисы позволяют не только оценить общее время загрузки, но и увидеть количество запросов и размер страницы. При помощи "водопадного" графика можно проанализировать, какие файлы и элементы загружаются дольше всего, что поможет определить точки для оптимизации.

Есть сервисы, которыми я пользуюсь постоянно:

  1. Pingdom: проводит быстрое и наглядное тестирование скорости загрузки всех элементов на странице и представляет результаты в виде удобной диаграммы, где можно посмотреть, какие элементы сайта загружаются медленнее чем необходимо и прочие проблемные области.
  2. YSlow: плагин для Firefox, который встраивается в, пожалуй лучший плагин для веб разработчика, Firebug. Он анализирует более 20 факторов, которые влияют на скорость работы сайта и оценивает общую производительность по 100 бальной системе, а каждый отдельный элемент оценкой от A до F.

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

<?php echo get_num_queries();?> queries in <?php timer_stop(1);?> seconds.

2. Чек-лист: как ускорить WordPress

Ниже приведены основные рекомендации, выполнение которых обычно даёт значительный прирост производительности:

1. Компрессия изображений  

Многие пользователи WordPress загружают слишком большие изображения, что существенно замедляет загрузку страницы.  

  • При подготовке изображений для публикаций старайтесь создавать их сразу в нужном размере и сохранять в оптимизированном для веба формате. 
  • Для лучшей компрессии используйте онлайн-сервисы, такие как TinyPNG или compressor.io. 
  • Рекомендуется также воспользоваться плагином Imagify для оптимизации изображений прямо в WordPress. Этот инструмент не только сжимает изображения, но и позволяет конвертировать их в формат WebP.

2. Ленивый (отложенный) загрузчик изображений (Lazy Load)  

С помощью Lazy Load изображения подгружаются только тогда, когда посетитель прокручивает страницу до их области. Это особенно полезно для фотогалерей и видеосайтов.  

  • WordPress уже обладает встроенной поддержкой отложенной загрузки, но иногда специализированные плагины могут дать ещё лучшее качество работы. 
  • Многие кэш-плагины, например WP-Rocket, имеют функцию Lazy Load, которую можно активировать одним кликом.

3. Проверка и оптимизация плагинов  

WordPress предлагает огромное количество плагинов, однако многие из них негативно влияют на скорость работы сайта.  

  • Удалите неиспользуемые плагины – это повысит как производительность, так и безопасность вашего сайта. 
  • Для оставшихся инструментов ищите более лёгкие и эффективные альтернативы или используйте загрузку плагинов только там, где это необходимо.

4. Очистка базы данных  

Со временем база данных насыщается данными: черновики, ревизии, спам-комментарии, удалённые записи – всё это замедляет выполнение запросов.  

  • Рекомендуется регулярно очищать базу данных с помощью плагинов вроде Advanced Database Cleaner, который помогает убрать "подвальные" данные и оптимизировать таблицы. 
  • Для уменьшения количества записей можно ограничить число сохраняемых ревизий, добавив в wp-config.php следующий код:  

define('WP_POST_REVISIONS', 3);

5. Сокращение количества подключаемых шрифтов  

Использование веб-шрифтов открывает большие возможности для типографики, но при этом добавляет дополнительные серверные запросы, что ухудшает скорость.  

  • Ограничьтесь несколькими необходимыми шрифтами или используйте локальное подключение, чтобы избежать загрузки шрифтов с внешних серверов (например, с Google), что также соответствует требованиям DSGVO.

6. Селективная загрузка скриптов и стилей  

Многие плагины загружают свои JavaScript и CSS файлы на всех страницах сайта, даже если они там не нужны.  

  • Используйте Conditional Tags в WordPress, чтобы ограничить загрузку ненужных файлов только нужными страницами. Например, для отключения скриптов Contact Form 7 на всех страницах, кроме страницы «Контакты», можно добавить в functions.php следующий код:

// Загружаем скрипты Contact Form 7 только на странице контактов

function remove_cf7() {

if (!is_page('kontakt')) {

wp_deregister_script('contact-form-7');

wp_dequeue_style('contact-form-7');

}

}

add_action('wp_enqueue_scripts', 'remove_cf7');

 

Если не хочется править код, попробуйте плагин Asset CleanUp, который сканирует сайт и позволяет отключать неиспользуемые скрипты и стили на уровне отдельных страниц.

7. Сжатие кода  

CSS- и JavaScript-файлы часто содержат лишние пробелы, переносы строк и комментарии, увеличивающие объём файлов.  

Используйте онлайн-инструменты, такие как cssminifier.com или minifier.org, для сжатия кода вручную или воспользуйтесь функциями вашего кэш-плагина, который может делать это автоматически.

8. Использование кэш-плагина  

Применение кэширования – один из наиболее эффективных способов ускорить работу WordPress.  

К примеру, плагин WP Rocket позволяет не только кэшировать страницы, но и объединять и сжимать файлы CSS и JS, обеспечить Gzip-компрессию, оптимизировать изображения, реализовать отложенную загрузку скриптов, предзагрузку кеша и работу с CDN.  

Помимо WP Rocket, существуют и другие инструменты, такие как WP Fastest Cache и Swift Performance, однако оцените их возможности, исходя из ваших задач. Лично я отдаю предпочтение WP Rocket за простоту использования и эффект.

Рекомендуется использовать плагин W3 Total Cache и включить следующие опции: 

  • Page Cache,
  • Database Cache,
  • Object Cache,
  • Browser Cache. 

Внимание: опцию Minify не включаем, так как на моих сайтах она в 80% случаях глючила. 

При включении галочек выбираем метод кеширования. Лучше выбирать тот, который предоставляется сервером. Если это не доступно, то тогда выбираем Disc:Enchanced.

9. Обновление версии PHP  

Если на сервере работает устаревшая версия PHP, обновление принесёт только плюсы: устранение ошибок безопасности, улучшенную совместимость с последними версиями WordPress, плагинов и тем, а также повышение общей производительности.

10. Хостинг  

Выбор подходящего тарифного плана для хостинга имеет огромное значение для скорости загрузки сайта.  

В условиях Shared Hosting, когда несколько сайтов пользуются одним сервером, скорость может пострадать.  

Рекомендую обратить внимание на проверенных хостинг-провайдеров, например Timeweb.

Поскольку стабильная работа WordPress сильно зависит от работы базы данных, убедитесь, что настройки в my.cnf соответствуют возможностям сервера. Рекомендуемые параметры:

query_cache_type = 1

query_cache_limit = 2M

query_cache_size = 20M

Кэш компилятора может увеличить производительность за счёт кэширования откомпилированных скриптов. По моему опыту, использование Xcache даёт прирост производительности примерно на 5% по сравнению с Eaccelerator.

Увеличение максимального количества соединений в файле httpd.conf (например, max_connections = 150) также позволит серверу обрабатывать больше подключений за раз, но изменять этот параметр следует с осторожностью, чтобы не исчерпать оперативную память.

11. Использование Content Delivery Network (CDN)  

CDN позволяет размещать статические файлы (изображения, CSS, JS) на внешних серверах, что снижает нагрузку на основной сервер и ускоряет загрузку для пользователей по всему миру.  

Однако, если ваш сервер находится в Германии и основная аудитория – немецкие пользователи, применение CDN может не дать заметного прироста.

12. Дополнительные настройки WordPress

Кроме вышеописанных мер, есть и другие действия, направленные на оптимизацию самого WordPress:

- Отключите хотлинки  

Использование вашего сервера для хранения изображений может привести к чрезмерной нагрузке, если другие сайты заимствуют ваши изображения (hotlinking). Чтобы отключить хотлинки, добавьте в файл .htaccess следующий код, заменив example.com на имя вашего домена:

<IfModule mod_rewrite.c>

 RewriteEngine on

 RewriteCond %{HTTP_REFERER} !^$

 RewriteCond %{HTTP_REFERER} !^http://(www\.)?example\.com/.*$ [NC]

 RewriteRule .*\.(gif|jpg|png|ico)$ - [F,L]

</IfModule>

- Используйте кэш браузера  

Кэш браузера не делает сайт быстрее напрямую, но снижает нагрузку на сервер, кэшируя часто загружаемые элементы, такие как стили и скрипты. Добавьте в .htaccess следующий код:

FileETag MTime Size

<IfModule mod_expires.c>

 <FilesMatch "\.(jpg|gif|png|css|js)$">

 ExpiresActive on

 ExpiresDefault "access plus 1 year"

 </FilesMatch>

</IfModule>

- Сжимайте статические данные  

Сжатие данных уменьшает размер передаваемой страницы, снижая нагрузку на сервер и уменьшая время загрузки. Добавьте в .htaccess следующий код:

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript  

BrowserMatch ^Mozilla/4 gzip-only-text/html  

BrowserMatch ^Mozilla/4.0[678] no-gzip  

BrowserMatch bMSIE !no-gzip !gzip-only-text/html

- Отключите Post Revisions  

WordPress сохраняет каждую редакцию ваших статей, что увеличивает размер базы данных и замедляет её работу. Чтобы отключить сохранение ревизий, добавьте в wp-config.php:

define('WP_POST_REVISIONS', false);

Чтобы удалить ранее сохранённые ревизии, выполните следующий SQL-запрос в PHPMyAdmin:

DELETE a, b, c

FROM wp_posts a

LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)

LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)

WHERE a.post_type = 'revision';

- Сократите количество запросов  

Избавьтесь от ненужных HTTP-запросов для ускорения генерации страницы. Например, вместо динамического вывода метатега:

<meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php bloginfo('charset'); ?>" />

можно зафиксировать его как:

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

Это сократит количество запросов хотя бы на два.

Финальный вывод

Оптимизация скорости загрузки WordPress – это комплексный процесс, включающий компрессию изображений, отложенную загрузку, выбор и настройку плагинов, очистку базы данных, корректное подключение шрифтов, селективное включение скриптов и CSS, сжатие кода, использование кэширования, обновление версии PHP и выбор надежного хостинга. Благодаря реализации всех этих мер можно значительно сократить время загрузки сайта – у меня, например, после оптимизации загрузка снизилась до менее 1 секунды, что подтверждено тестами в Google PageSpeed Insights.

Популярное

Самые популярные посты

Как быть максимально продуктивным на удалённой работе?
Business

Как быть максимально продуктивным на удалённой работе?

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

Привет! Меня зовут Сергей Емельянов и я трудоголик
Business PHP

Привет! Меня зовут Сергей Емельянов и я трудоголик

Я программист. В душе я предприниматель. Я начал зарабатывать деньги с 11 лет, в суровые 90-е годы, сдавая стеклотару в местный магазин и обменивая её на сладости. Я зарабатывал столько, что хватало на разные вкусняшки.

Акция! Профессиональный разработчик CRM за 2000 руб. в час

Выделю время под ваш проект. Знания технологий Vtiger CRM, SuiteCRM, Laravel, Vue.js, Golang, React.js, Wordpress. Предлагаю варианты сотрудничества, которые помогут вам воспользоваться преимуществами внешнего опыта, оптимизировать затраты и снизить риски. Полная прозрачность всех этапов работы и учёт временных затрат. Оплачивайте только рабочие часы разработки после приемки задачи. Экономьте на платежах по его содержанию разработчика в штате. Возможно заключение договора по ИП. С чего начать, чтобы нанять профессионального разработчика на full-time? Просто заполните форму!

Telegram
@sergeyem
Telephone
+4915211100235
Email