З кожним виходом нової версії WordPress вона все більше створює навантаження на хостинг. Через що можна отримати претензію від хостингу або постійно спостерігати "гальма" в роботі сайту. Тому вже не можна сказати, що бложний движок WordPress легкий, маленький і пухнастий.
У цій статті, я хочу розібрати, що ж створює навантаження на сервер, і що можна зробити, що б знизити її.
Що створює навантаження.
1. Запити до Бази Даних (БД).
Як всім відомо, WordPress для зберігання інформації (пости-повідомлення, коментарі тощо) використовує БД MySQL. Що б отримати цю інформацію потрібно звернеться (зробити запит) до цієї БД. Звернення до БД можуть надходити від самого ядра движка, від плагінів і від шаблонів. Відповідно чим більше запитів до БД тим більше навантаження на процесор сервера. Так само залежить розмір БД, чим більше, тим буде важче вибрати інформацію з БД.
2. Генерація інформації.
Це явище зустрічається в шаблонах. Відразу наведу приклад: припустимо, потрібно, в шаблоні, вивести який сьогодні рік. Це можна зробити через PHP функцію, а можна просто написати сам рік числом. Якщо робити через PHP функцію, то скрипту доведеться звернутися зайвий раз до PHP, що б виконати цю функцію, а потім вставити результат, що не є добре. Ще приклад: припустимо, я знаю, що я не буду використовувати Віджети, але в хороших шаблонах будуть присутні різні умови, які перевіряють, активований чи Віджет, це теж зайві дії.
Звичайно це мізер, порівняно з 1 пунктом, але все ж візьмемо в рахунок.
3. Є ще неминучі фактори, такі як сама організація движка ( продуктивність WordPress , Аналіз споживання пам'яті WordPress , апетити WP2.7 ). Модулі, Шаблони, які дійсно потрібні, але написані без підходу оптимізації. Розмір БД.
Що можна зробити.
1. Перший етап. руки
Для початку потрібно вилучити всі невикористовувані плагіни і плагіни, які не особливо потрібні. Це значно скоротить кількість запитів до БД.
До речі, що б дізнатися скільки зараз робиться запитів, який час на це витрачається і скільки споживається пам'яті, потрібно в шаблоні (для зручності в footer.php) вставити ось цей код:
& Lt; ? Php $ user = wp_get_current_user (); if ($ user - & gt; id == 1) {echo "MySQL:". get_num_queries (). "Запитів / за"; timer_stop (1); echo "секунд. Споживання пам'яті:". round (memory_get_usage () / 1024/1024, 2). "MB"; var_dump ($ GLOBALS [ 'wpdb'] - & gt; queries); }? & Gt;
Або можна скористатися плагіном для аналізу WP Tuner .
Далі потрібно почистити шаблон від непотрібної генерованої інформації (про яку я говорив вище), замінити її на звичайну текстову, причому це зменшить і кількість запитів до БД. Почитати тут Оптимізація WordPress шаблонів , Практичні поради щодо оптимізації блогу на WordPress .
Можна зняти споживання ресурсів за рахунок мовного файлу Зниження споживання ресурсів WordPress .
Для Адмін-панелі, що б відключити перевірку на нові версії движка, можна почитати Знімаємо гальма з WordPress , Там же є приклад через правку коду, краще робити через нього, а не через плагін.
2.Второй етап - Кешування.
Якщо перший етап не дав очікуваних результатів, то їх можна домогтися за допомогою Кешування.
Як ми з'ясували, найбільше навантаження несуть запити до БД. Але з БД ми отримуємо зазвичай одну і ту ж інформацію (теж повідомлення, новина, коментар), так навіщо нам кожен раз лізти в БД, раз це витрачає багато ресурсів? Кешування вирішило цю проблему. Тепер при першому заході на сайт, відбуваються запити до БД, вам видається сторінка, а в той же час ця сторінка зберігається в окрему папку на сервері. І при подальшому заході на сайт, сторінка буде завантажуватися звідти, не роблячи запити до БД.
Але тут є свої мінуси:
1. Деякі плагіни потребують постійного зверненні до БД для виведення останньої інформації.
2. Місце для Кеша сторінок.
Модулі для Кешування:
1. WP-Cache .
2. WP Super Cache - Цей плагін включає в себе плагін WP-Cache плюс корисні доопрацювання, почитати про них можна ось тут .
3. Hyper Cache - Про настройку і відміну від WP Super Cache можна почитати тут .
4. WP File Cache і про нього . Цей плагін кешируєтся тільки запити до БД, але не всі. Він не створює вже готові сторінки для запуску, як попередні плагіни, а складає результати запитів в файли і при ледующем заході на сторінку, він читає інформацію звідти.
Я не став поки експериментувати з установкою цих плагінів. Поставив WP File Cache, запитів скоротилося в троє, на швидкість начебто не вплинуло, а на навантаження - час покаже.
Авто блог Automotoboom.ru , термінали платежів , кондиціонери daikin
цікаві записи
MB"; var_dump ($ GLOBALS [ 'wpdb'] - & gt; queries); }?Але з БД ми отримуємо зазвичай одну і ту ж інформацію (теж повідомлення, новина, коментар), так навіщо нам кожен раз лізти в БД, раз це витрачає багато ресурсів?