Создание быстрых и оптимизированных сайтов на WordPress

Есть много вещей, которые необходимо сделать, чтобы сократить время загрузки веб-сайта. Выбор правильного веб-хостинга важен. Но также следует знать, как лучше всего оптимизировать WordPress.

Создание быстрых и оптимизированных веб-сайтов на WordPress

Оптимизация веб-сайтов на WordPress

Изложенные в данной статье советы помогут создать быстрые и оптимизированные WordPress-сайты.

1. Переход на другой веб-хостинг не помогает исправить проблему

Возникшие проблемы с исходным кодом или совместимостью плагинов никак не связаны с веб-хостингом.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Проблемы с кодом не устранятся волшебным образом.

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

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

2. Рабочие веб-сайты не предназначены для разработки

Не используйте работающие веб-сайты для разработки. Большая часть WordPress- веб-хостингов предлагают вашим покупателям средства разработки.Они могут решить проблему простоя веб-сайтов.

Если вы не планируете использовать промежуточную среду, можно разрабатывать локально, используя LAMP или LEMP. Данные наборы предназначены для Linux,(Apache / Nginx), MySQL и PHP.

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

Чтобы избежать некоторых из данных проблем, я рекомендую использовать DesktopServer и Local. Они включают в себя упрощенные методы переноса данных на рабочую версию, а также предоставляет дополнительные инструменты и возможности. Наличие поддержки multisite может оказаться бесценным при работе с большим по объему веб-сайтом.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Стек LEMP

Локальные среды тестирования помогут найти проблемы до того, как они сломают веб-сайт.

3. Вы не разработчик? Тогда не редактируйте код

Одна из распространенных причин, по которым WordPress- веб-сайты дают сбой–изменения PHP-кода из редактора в разделе «Внешний вид» непрофессионалами.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Редактирование кода в редакторе WordPress

Также рекомендуется разместить следующий код в файле wp-config.php. Он удаляет настройки edit_themes, edit_plugins и edit_files для всех посетителей. Это помешает злоумышленникам взломать веб-сайт через программный код.

define('DISALLOW_FILE_EDIT',true);

Таким образом,вы удалите функционал, позволяющий посетителям обновлять темы или устанавливать плагины. Поместите следующий программный код в файл wp-config.php, чтобы ограничить данные функции.

define('DISALLOW_FILE_MODS',true);

4. Не экономьте на темах и плагинах

Старайтесь выбирать авторитетных разработчиков при поиске плагинов и заранее просматривать рейтинги и обзоры. Ознакомьтесь с историей разработчика. Учитывая, что в репозитории WordPress более 50 000 плагинов, это может быть непростой задачей, так что проведите все необходимые исследования заранее.

Создание быстрых и оптимизированных веб-сайтов на WordPress

Поиск плагина в репозитории WordPress.

Через устаревшие и плохие темы / плагины можно заразить веб-сайт вредоносными программами, внедряющими в исходный программный код разные некачественные ссылки и т.п. Согласно опубликованным исследованиям WP Loop, почти 50%.плагинов, доступных в репозитории, последний раз обновлялись ​​пару лет назад.

Создание быстрых и оптимизированных веб-сайтов на WordPress

Статистика по плагинам, которые давно не обновлялись

Также необходимо быть осторожным при использовании нескольких плагинов, объединенных в одно решение. Обновление плагинов — огромная проблема для посетителей WordPress.

Многие разработчики включают в темы дополнительные плагины, такие как Revolution Slider или Visual Composer. Проблема заключается в том, что когда обнаруживаются уязвимости, посетителю остается ждать обновления темы. Хотя баг может быть исправлен на следующий день. Это делает большое число веб-сайтов крайне уязвимыми для хакеров.

5. Отслеживайте административные вызовы AJAX

Следите за вызовами AJAX со WordPress- веб-сайта, а также от плагинов, которые могут использовать AJAX. Например, API WordPress Heartbeat использует /wp-admin/admin-ajax.ph p для запуска вызовов AJAX из браузера. Это нецелесообразные запросы. Активное использование этого файла иногда выпадает на моменты всплеска трафика, загрузки процессора и может привести к сбою в работе веб-сайта. Это похоже на то, когда вы запускаете DDoS- атаку против самого себя!

Создание быстрых и оптимизированных веб-сайтов на WordPress
Активное использование admin-ajax.php

Если вы используете сторонние плагины, которые применяют в работе admin-ajax.php, убедитесь, что они делают это правильно. Можно просмотреть действия POST HTTP- запросов и на основании имени быстро определить, какой плагин может выполнять их.

Также необходимо провести сравнение различия в производительности admin-ajax.php и API-интерфейса WordPress REST.

6. Разумно используйте нетворкинг

Большинство веб-сайтов с высоким трафиком монетизируются рекламой. Удаление сторонней рекламы вообще не вариант. Тем не менее, важно, чтобы число используемых рекламных сетей было минимальным. Вот исследование того, как данные платформы могут влиять на WordPress- веб-сайт.

Я добавил три объявления Google AdSense размером 300 на 250 пикселей в версию веб-сайта для разработки, на котором была установлена тема twenty sixteen, и протестировал скорость до и после. До Adsense:

  • Первый просмотр: время загрузки 1,372 секунды.
  • Повторный просмотр: время загрузки 1,013 секунды.

Вот разбивка содержимого по соединениям:

Создание быстрых и оптимизированных веб-сайтов на WordPress
Разбивка содержимого до добавления Google AdSense

После Adsense:

  • Первый просмотр: время загрузки 4.103 секунды.
  • Повторный просмотр: время загрузки 3,712 секунды.

Вот разбивка содержимого по соединениям:

Создание быстрых и оптимизированных веб-сайтов на WordPress
Содержимое после добавления Google AdSense

Добавив три рекламных объявления от Google AdSense, я получил 6 дополнительных подключений. WordPress- веб-сайт с рекламными объявлениями стал в 2,7 раза медленнее. Это связано с дополнительным временем поиска DNS-серверов и масштабным использованием JavaScript на странице. А представьте, что может произойти, когда крупные веб-сайты вставляют 10 рекламных объявлений на одну веб-страницу.

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

Ниже приведен ещё один пример на основе мониторинга веб-сайта с огромным числом HTTP-запросов к рекламным сетям. Они вызывают большую нагрузку на WordPress-сайт.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Большое число загружаемых ресурсов из-за рекламной сети

На веб-сайте было так много запросов, что сервер приложений вообще не загружался. Веб-сайт был недоступен, когда пытался загрузить все внешние запросы.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Время транзакций на сервере приложений

В виде иного примера можно без проблем привести веб-сайт Huffington Post. Если вы посмотрите его тест скорости, то увидите огромное число HTTP- запросов к рекламным сетям. Этот график показывает, что я увидел в тесте скорости. Время загрузки этого веб-сайта составляло более 13 секунд!

  • Первый просмотр: время загрузки 15,908 секунд / 221 HTTP-запрос.
  • Повторный просмотр: время загрузки 13.957 секунд / 66 HTTP-запросов.

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

Пример JavaScriptсasync:

src="example.js"async

Пример JavaScriptсdefer:

src="example.js"defer

Есть другой популярный способ отсрочки JavaScript. В WordPress версии 4.1 и выше есть фильтр, в котором можно без проблем без проблем добавить к скриптам атрибутa sync или defer.

7. Излишняя оптимизация может повредить производительности

Ниже я перечислил пару проблемных сценариев, с которыми я регулярно встречаюсь.

Попытки кэшировать кэш

В отличие от стандартных VPS или автономных серверов, многие веб-хостинги WordPress поддерживают собственное кэширование, которое выполняется на уровне сервера.

Большинство хостинг-провайдеров не разрешают кэширование плагинов, так как это может привести к разным проблемам, а чаще всего к ошибке 502. Попытка «кэшировать кэш», как я это называю, не будет хорошей идеей.

Создание быстрых и оптимизированных веб-сайтов на WordPress

Плохая оптимизация, которая усугубляет ситуацию

Такие плагины, как WP Rocket и Cache Enabler, великолепны. Но они предназначены для серверов, которым требуется дополнительная помощь.

Добавление 2 CDN = в 2 раза выше скорость?

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

Одним из самых популярных поставщиков CDN будет Cloudflare. С технической точки зрения Cloudflare будет прокси-сервисом и отличается от традиционного CDN.

Многие вебмастера используют CloudFlare, а далее добавляют ещё и KeyCDN или MaxCDN. Это происходит потому, что они следуют рекомендациям ваших коллег. В результате все заканчивается гигантской неразберихой. В большинстве случаев лучше использовать CloudFlare или стороннего поставщика CDN, каждый из которых имеет в себя преимущества и недостатки.

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

Добавление сразу же трех специализированных плагинов не поможет вам достичь данной цели. Есть много проблем с совместимостью, которые появляются при попытке одновременно запустить All In One SEO, Yoast и иные SEO-плагины.

8. Распространенные проблемы с производительностью запросто диагностировать

Распространенные проблемы с производительностью запросто диагностировать. Я рекомендую использовать WebPageTest. Для тех, кто не имеет в себя глубоких познаний, хорошо подойдет Pingdom. Беглый обзор оценок производительности и кодов ответов может подсказать, с чего надо начать решение проблем производительности на WordPress-сайте.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Оценки производительности Pingdom

9. Изменение ядра WordPress — это плохо.

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

10. Обеспечьте совместимость с PHP 7 / HHVM

Доказано, что PHP 7 и HHVM невероятно быстры, когда дело касается повышения производительности WordPress. Но сначала необходимо убедиться, что веб-сайт совместим с данными технологиями. К примеру, если вы обновляетесь с PHP 5.6 до PHP 7, надо протестировать весь функционал веб-сайта в промежуточной среде или локально, чтобы убедиться, что после завершения обновлени яне возникнет проблем с совместимостью.

11. Большие веб-сайты должны оптимизировать базу данных

Очистка старых версий WordPress и неиспользуемых таблиц могут помочь устранить определенные проблемы. Но я обнаружил, что многие веб-сайты по-прежнему используют в базе данных механизм хранения MyISAM. Хотя исследования показали, что InnoDB работает лучше и надежнее. Веской причиной использования InnoDB вместо MyISAM будет отсутствие блокировки таблицы. Это может быстрее обрабатывать запросы.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Производительность базы данных

Вы можете легко преобразовать таблицы БД при помощи нескольких простых действий. Убедитесь, что вы используете MySQL 5.6.4 или выше, и не забудьте создать резервную копию. Запустите команду ALTER, чтобы преобразовать таблицу под InnoDB.

ALTERTABLEwp_commentsENGINE=InnoDB;

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

Создание быстрых и оптимизированных веб-сайтов на WordPress
Переход с MyISAM на InnoDB

Ещё один простой метод оптимизации базы данных — отключить или настроить число сохраняемых ревизий. Вы можете добавить в файл wp-config.php следующий код, чтобы в полном объеме отключить их.

define('WP_POST_REVISIONS',false);

Или просто измените число ревизий, которые хранятся для каждой записи / страницы:

define('WP_POST_REVISIONS',3);

Я видел много веб-сайтов, у которых было задано хранение более 200 ревизий для записей. Это раздувает базу данных. Если веб-хостинг не поддерживает внутреннюю оптимизацию, по умолчанию WordPress хранит неограниченное число ревизий. Вот почему важно проверить эту настройку. Если на веб-сайте много ревизий, запустите в phpMyAdmin следующий запрос, чтобы удалить их:

DELETEFROMwp_postsWHEREpost_type="revision";

Если вам неудобно выполнять запрос, используйте для данной цели специальные плагины, к примеру, WP-Optimize.

12. Вам действительно нужна многоцелевая тема?

Многие покупают многоцелевую тему, а далее используют только 1% ее возможностей. При этом большая часть не используемого функционала увеличивает время загрузки. Я не говорю, что все многоцелевые темы плохие.При правильной параметру они иногда могут работать быстро. Вот пример темы Avada, скорость загрузки которой составляет до 700 миллисекунд.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Оптимизированная многоцелевая тема WordPress

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

13. Журнал ошибок — друг

Регулярно проверяя журнал ошибок, можно без проблем избежать множества проблем. При помощи нескольких простых параметров в файле wp-config.php можно без труда включить ведение журнала, который по умолчанию сохраняется в /wp-content/debug.log.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Журнал ошибок — друг

Включение ведения журнала:

define('WP_DEBUG_LOG',true);

Отображение журнала на странице:

define('WP_DEBUG_DISPLAY',true);

Дополнительную информацию вы найдете в разделе Кодекса WP_DEBUG.

14. Google вам в помощь

Уделив пару минут поиску,можно легко без проблем решить большинство проблем. Обычно такие вопросы, как «как настроить DNS-сервер GoDaddy» или «как использовать SFTP» — это темы, материалы по которым можно без проблем запросто найти в Google.

В интернете есть отличные ресурсы, такие как Кодекс WordPress. Не говоря о сотнях блогов с руководствами.

15. 123456 более не приемлемо

Практика использования без труда угадываемых паролей ставит WordPress- веб-сайт в состояние « в одном шаге от взлома». Хотя локальное хранение паролей в таком инструменте, как KeePass, будет одной из самых безопасных тактик. А поощрение посетителей к применению таких сервисов, как LastPass или Passpack, поможет сделать их пароли более сложными. Хэшированный и защищенный пароль, размещенный в облаке, гораздо безопаснее, чем использование «123456».

16. Скрипты не необходимо загружать на всем веб-сайте

Существует много плагинов, которые просто загружают скрипты на всех страницах. Хотя их можно без труда использовать только на одной. Если вы умножите это на 35 + плагинов, то получится много лишних загружаемых ресурсов, которые замедляют веб-сайт.

Один из примеров этого — популярный плагин Contact Form 7. Он загружает на главную страницу веб-сайта файлы CSS и JavaScript. Даже если я не использую контактную форму.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Скрипт загружается на всем веб-сайте

Есть пару простых методов решить эту проблему. Первый — использовать возможность, которая была введена в WordPress 3.1 — wp_dequeue_script(). Она может удалить установленный скрипт с веб-сайта. Разработчики плагина Contact Form 7 предлагают документацию, как загружать JavaScript и CSS только в случае необходимости.

Ещё один простой метод предотвратить загрузку определенных скриптов на страницах и в записях — это использовать такие плагины, как Gonzalez или Plugin Organizer. Ниже приведен пример с веб-сайта, на котором установлен Gonzalez. При помощи простых опций можно отключить CSS и JavaScript файлы плагина Contact Form 7.

Создание быстрых и оптимизированных веб-сайтов на WordPress
Отключение скриптов на странице

Заключение

Справляясь с распространенными проблемами и ошибками WordPress, которые я описал в данной статье, вы сможете обеспечить лучший опыт посетителей, повысить конверсии, обеспечить более низкий показатель отказов и улучшить ранжирование веб-сайта в поисковых системах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *