Прискорення роботи wordpress
Багато стикаються з проблемою повільної роботи сайтів на CMS WordPress, особливо коли використовується стандартна зборка з n-им десятком плагінів. Найбільша проблема в тому, що чим більше споживає серверних потужностей ваш сайт, тим швидше вас попросять перейти на більш дорогий тарифний план. Я сам постійно стикався з цією проблемою, коли робив сателіти на WordPress, а СДЛ відвідуваність яких переходила за 1000 відвідувачів на добу навіть на найдорожчих тарифних планах хостингів жахливо гальмували. Я пробував кешування, відмовлявся від плагінів, але це не давало потрібного ефекту, з часом у мене накопичився ряд методик як знизити навантаження на хостинг і прискорити сайт, я вирішив їх об'єднати у вигляді одного поста і поділитися з вами. Хочеться сподіватися, що цей пост стане біблією щодо прискорення WordPress і всі знатимуть де є найповніше покрокове керівництво по прискоренню WordPress.
Перш ніж займатися прискоренням WordPress потрібно все таки задуматися про своє хостингу, можливе незначне підвищення тарифу або переїзд на інший хостинг вирішать ваші проблеми. Іноді з переїздом потрібно просто змиритися, неможливо тримати гігантський проект на найдешевших тарифних планах хостингу.
Крок 1: Підготовка
Насамперед необхідно оновити WordPress до останньої версії, яку ви можете завантажити тут.
Крок 2: wp-config.php
Файл wp-config.php - є файлом конфігурації WordPress і знаходиться в кореневій папці сайту.
Я хочу вам розповісти про кілька методів за допомогою яких ми зможемо зменшити навантаження на хостинг:
- В оригінальній збірці є мінус - те, що використовуються різні мовні файли для адміністративної частини і головної сторінки сайту. Якщо ми будемо використовувати один файл, то це нам дозволить значно знизити навантаження, для цього потрібно замінити рядок:
а якщо ми хочемо відключити ревізії, то потрібно скористатися плагіном Disable Revisions.
Крок 3: Robots.txt
Відвідування пошуковими роботами вашого сайту призводить до значного навантаження на ваш сайт. Так як нас цікавлять тільки пошукові роботи Яндекса, Google і Рамблера, в деяких випадках ще й Yahoo, то інших роботів (в тому числі різні парсери і грабери, які крадуть ваш контент), можна закрити від індексації. Для цього необхідно вставити наступні рядки в файл Robots.txt, якщо у вас його немає, то необхідно його спочатку створити в кореневій директорії сайту. Ефект настане не моментально, але протягом місяця практично всі роботи зі списку зведуть свої заходи до мінімуму або зовсім перестануть відвідувати ваш сайт.
Якщо ви хочете так само заблокувати доступ для Yahoo, що крім зниження навантаження на хостинг приховає і ваші беки за версією Yahoo, то необхідно додати ще такі рядки в Robots.txt:
Крок 4. Htaccess
Файл .Htaccess - це файл додаткової конфігурації веб-сервера. З його допомогою ми зможемо дати додаткові команди для сервера, які варто обробляти до завантаження сайту.
* У даному коді потрібно замінити yourdomain на назву вашого домену, то ж саме стосується і доменної зони. Зображення яке буде показуватися на чужих сайтах повинно знаходитися в кореневій директорії вашого сайту і мати назву stophotlinking і формат gif.
Даний метод абсолютно ніяк не завадить пошуковикам збирати з вашого сайту зображення, так як вони занесені в коді в список дозволених. Ви напевно помітили, що в списку немає Google. Цей метод не завадить Google збирати зображення з вашого сайту, так як він використовує вже кешовані версії в результатах пошуку.
Це звичайно трохи знизить навантаження на ваш хостинг, так як звернення до вашого сайту все одно буде, але вже замість всіх зображень буде передаватися одне, вказане вами. Якщо ви хочете видавати помилку на інших сайтах замість ваших зображень, що дозволяє нам звести навантаження від цих зовнішніх звернень до нуля, то потрібно замінити рядок у вище наведеному коді:
Якщо вище наведений приклад не запрацює, спробуйте альтернативний метод:
* У браузері обов'язково повинно бути включено кешування.
* На одному сайті сайті не може працювати gzip і zlib компресія, тому оберіть щось одне.
Крок 5: Пінги
Коли ви публікуєте новий матеріал на сайті, то WordPress відправляє пінг на безліч сервісів, щоб їх сповістити про це, мною був складений великий список пінг сервісів, після тестів на їхню навантаженні на сервер і ефекту індексації було прийнято рішення, що варто залишити тільки необхідні пінг для пошукових систем Яндекс і Google, а саме:
Крок 6: WordPress плагіни
- Насамперед рекомендую вам переглянути список ваших плагінів і видалити ті, якими ви не користуєтеся.
- Так само постарайтеся максимально зменшити кількість використовуваних плагінів за рахунок відключення необов'язкових і їх видалення.
- Практично кожен плагін підвантажує свої CSS і JS, їх за допомогою онлайн-сервісів: онлайн-сервіс зі стиснення CSS. онлайн сервіс зі стиснення JS коду.
- Переконайтеся що необхідні вам плагіни завантажуються тільки на необхідних вам сторінках, часто зустрічається, що плагіни завантажуються на всіх сторінках, це можна перевірити подивившись вихідний код сторінки і пошукавши назву плагіна або його скорочення. Для того, щоб плагін обративался тільки на необхідних вам сторінках потрібно буде написати умова всередині коду плагіна.
Крок 7: Оптимізація коду теми (шаблону) сайту
Для тих, хто не знає де знаходиться ваш шаблон на сайті, ви можете зайти в вихідний код сторінки натиснувши на сторінці свого сайту правою кнопкою миші і вибравши «Вихідний код сторінки», там необхідно знайти рядок:
- Насамперед потрібно видалити зайві звернення до бази даних, наприклад в файлі шапці (header.php) часто використовується стандартна вставка:
Всі ці звернення до бази даних через php запити, можна замінити на:
* Але потрібно враховувати, що якщо у вас інша кодування, то в charset = ВАШАКОДІРОВКА
Теж саме стосується посилання на стилі:
* Не забудьте замінити yourdomain.ru на ваш сайт, а так само поміняйте назву теми.
* Не забудьте замінити site.ru на ваш сайт.
* Не забудьте замінити site.ru на ваш сайт, а так же напис «ВАШ САЙТ» на назву вашого сайту.
- Так само можна видалити зайві мета-теги сайту з wp_head, вставивши наступний код в файл функцій (functions.php) вашої теми.
Який можна замінити просто на статичну назву сайту, наприклад назва мого блогу: «Блог Пузата про заробіток в інтернеті».
Якщо ваш хостинг не підтримує Zlib, то ви можете попросити супорт хостингу включити його, зараз практично кожен хостинг його включає спочатку, нам же залишається його лише прописати в header.php прямо перед! DOCTYPE .... тобто на самому початку коду.
* На одному сайті не може працювати gzip і zlib компресія, тому оберіть щось одне.
який буде очищати буфер виведення і дозволить нам завантажити CSS пов'язані з файлами в заголовку, без очікування інших файлів.
Крок 8: Зображення
Крок 9: Кешування
- Необхідно встановити плагін кешування сайту, з тих які я використовував на мій погляд найкращі WP Super Cache (безкоштовний) і скрипт Cache Maxsite (платний). Мені особисто більше сподобався Maxsite Cache, але якщо ви не готові платити 30 $ за плагін, то можна обійтися і WP Super Cache. Основний мінус WP Super Cache в тому, що він не кешує віджети, але з цією проблемою нам допоможе впоратися наступний плагін WP Widget Cache.
- Так само до вище перелічених плагинам можна додати плагін WP-CSS. який стискає CSS в GZIP, а так же плагін Autotimize. який рекомендують використовувати разом з WP Super Cache.
Крок 10: База даних
- Крім файлів сайту у нас є база даних, яку теж потрібно час від часу чистити і оптимізувати, щоб це зробити в ручну нам буде потрібно більше часу, ніж встановити плагін Optimize DB. Активуйте його тільки на час оптимізації бази даних, після чого деактивуйте, не залишайте його постійно включеним, щоб він не створював додаткове навантаження на сайт.
- Якщо ви не використовуєте ревізії, то їх таблицю можна видалити з бази даних, знайдіть таблицю з назвою «wp_post_revision» і видаліть.
Крок 11: Дрібниці
Крок 12: Сервер
У подробиці серверної настройки я не вдавався, але якщо кому потрібно, то на мій погляд, один з кращих матеріалів настройка сервера Апач на максимальну продуктивність. Власникам своїх серверів рекомендую скористатися eAccelerator і PHP-Speedy, про його роботу з WP Super Cache можна почитати тут. всі матеріали англійською мовою.