- Інструменти для вимірювання швидкості сайту
- Важливість швидкості роботи сайту в 2018 році
- Техніки прискорення WordPress, актуальні в 2018 році
- 1.Вибор якісної теми / фреймворка
- 2. Налаштування кешування WordPress
- Модулі кешування WordPress
- Кешування в браузері - включаємо Expire Headers в WordPress
- Кешування WordPress на сервері
- Предзагрузкі (prefetch) популярних доменів
- Попереднє завантаження шрифтів Google
- Попереднє завантаження Google Code (jQuery)
- Попереднє завантаження Google Analytics
- Remove Query Strings - Видаляємо рядок запиту з статичних ресурсів
- 3. Підключення CDN (Content Delivery Network)
- Завантажуйте через CDN все, що можна
- 4. Оптимізація бази даних WordPress
- Відключення і ліміт ревізій постів WordPress
- Відключення редакцій постів WordPress
- Обмеження кількості редакцій записів в WordPress
- Видалення старих редакцій записів з бази даних WordPress
- Слідкуйте за обмеженням на 100 сторінок в WordPress
- 5. Оптимізація зображень за допомогою стиснення
- 6. Стиснення Gzip / Brotli
- Apache
- Nginx
- 7. Зменшення кількості плагінів WordPress
- 8. Оптимізація продуктивності веб-шрифтів
- 9. Оптимізація іконок Font Awesome
- 10. Lazy Load для зображень, відео та Disqus
- Відкладене завантаження зображень
- Відкладене завантаження відео
- Відкладене завантаження Disqus
- 11. Мініфікація і об'єднання CSS і Javascript файлів
- Мініфікація
- Об'єднання (конкатенація)
- 12. Зменшення кількості HTTP запитів
- граватар
- Варіант 1 - відключити граватар
- Варіант 2 - використовувати Disqus
- відключення Emoji
- Варіант 1 - WordPress плагін
- Варіант 2 - функція WordPress
- Відключення скриптів на сторінці
- відключаємо Embeds
- Варіант 1 - WordPress плагін
- Варіант 2 - функція WordPress
- відключаємо коментарі
- 13. Відключення хотлінк
- 14. Відключення Pingback і Trackback
- 15. Завдання розмірів зображень
- 16. Рішення проблеми повільного завантаження admin-ajax.php
- 17. Налаштування MySQL сервера
- 18. Вибір якісного хостингу для WordPress
WordPress - відмінна CMS для сайту, але вона досить повільна з коробки, якщо її не оптимізувати правильно. У цьому керівництві, складеному KeyCDN, ми розглянемо основні способи оптимізації і прискорення сайту на WordPress.
WordPress також одна з найпопулярніших CMS для сайтів компаній. Більше половини сайтів, на яких можна визначити систему управління контентом, працюють на WordPress. А це більш ніж 74 мільйони сайтів.
Інструменти для вимірювання швидкості сайту
Один з найбільш важливих інструментів при роботі над оптимізацією швидкості сайту - тестувальники швидкості завантаження (page speed tool). Ми рекомендуємо проводити вимірювання перед початком робіт по оптимізації, і в процесі, після кожного внесеного зміни. Це дасть краще розуміння, зміни яких параметрів роблять позитивний або негативний вплив на продуктивність.
Є багато інструментів для перевірки швидкості завантаження сайту, серед яких KeyCDN, який пропонує тести з 16 точок по всьому світу.
Важливість швидкості роботи сайту в 2018 році
В даний час швидкість сайту впливає не тільки на позиції в пошуковій видачі, але також забезпечує кращий користувальницький досвід і підвищує конверсію. Ще в 2010 році Гугл повідомив, що швидкість завантаження сайту впливає на позицію сайту в результатах пошуку. У 2018 року швидкість мобільної версії сайту також впливає на ранжування.
Таким чином, якщо ви хочете збільшити органічний трафік на сайт з деськтопной і мобільної версії, ви повинні приділити увагу правильній оптимізації сайту на WordPress.
Крім того, в разі, якщо у вас інтернет-магазин, більш висока швидкість роботи сайту може збільшити конверсію і принести додатковий прибуток. Подивимося на прикладі.
сервіс Google Impact calculator дозволяє оцінити приблизний рівень зростання річного обороту в залежності від швидкості завантаження сайту.
Наприклад, якщо ви прискорите завантаження сайту з 2,2 секунд до 1,4 секунд, при трафіку 200 000 уникав в місяць, середньому чеку $ 50 і конверсії 3%, ви можете отримати додатково $ 146 000 річного доходу.
Техніки прискорення WordPress, актуальні в 2018 році
Розглянемо найбільш ефективні рекомендації щодо оптимізації швидкості сайту на WordPress, які допоможуть зменшити час завантаження сторінки.
- Вибір теми або фреймворка
- Налаштування кешування WordPress
- підключення CDN
- Оптимізація бази даних WordPress
- Оптимізація зображень за допомогою стиснення
- Стиснення файлів Gzip
- Зменшення кількості плагінів WordPress
- Оптимізація продуктивності веб-шрифтів
- Оптимізація іконок Font Awesome
- Lazy Load для зображень, відео та Disqus
- Мініфікація і об'єднання CSS і Javascript файлів
- Зменшення кількості HTTP запитів
- відключення хотлінк
- Відключення Pingback і Trackback
- Завдання розмірів зображень
- Рішення проблеми повільного завантаження admin-ajax.php
- Налаштування MySQL сервера
- Вибір якісного хостингу для WordPress
1.Вибор якісної теми / фреймворка
Кожен сайт на WordPress зроблений на основі якоїсь теми або фреймворка-пейджбілдера. Вони зазвичай містять багато зайвого надлишкового функціоналу. У розробників тим різні підходи до створення своїх продуктів, і тому теми для WordPress значно відрізняються один від одного. Наприклад, дефолтні теми WordPress типу Twenty Seventeen зазвичай зроблені досить якісно і працюють швидко.
Потрібно дуже ретельно вибирати теми для покупки на маркетплейсах типу ThemeForest або Creative Market. Більшість тем там зроблено досить неякісно, тому що розробники женуться за універсальністю і пхають в тему все підряд. Це дає їм більше продажів, але теми в результаті виходять важкими і повільними. Зате з красивим інтерфейсом фарбування кнопок з адмінки. На таких майданчиках важливіше знайти адекватних розробників, і користуватися їх темами. наприклад, Total WordPress theme від хлопців з WPExplorer непогана тема. Маючи досить багатий функціонал, сайт на ній, наповнений контентом, завантажується в межах 800 мс.
Фреймворки Thesis Theme framework і Genesis теж мають хорошу репутацію, завдяки своїй швидкості і якості коду.
2. Налаштування кешування WordPress
Кешування - ще один потужний інструмент у боротьбі за швидкість завантаження сторінок сайту на WordPress. Кешування дозволяє зберігати сторінки і запису як статичні файли, які швидко віддаються користувачеві, не створюючи навантаження на сервер і не витрачаючи час на динамічне формування сторінок.
Кешування на WordPress організовується за допомогою плагінів, які створюють кеш сторінок на сервері і в браузері клієнта.
Модулі кешування WordPress
Для кешування сайту на WordPress найчастіше використовуються наступні плагіни:
- Cache Enabler
- W3 Total Cache
- WP Super Cache
- WP Rocket
Кешування в браузері - включаємо Expire Headers в WordPress
Посилити ефект браузерного кешування ресурсів можна за допомогою технології leverage browser caching , Додавши заголовки expire. Вони кажуть браузеру, завантажувати конкретні файли з сервера або взяти їх з кешу браузера. Це дозволить зменшити кількість запитів до сервера. Деякі кешуючий плагіни WordPress дозволяють включити expire headers в настройках, але цю функцію також можна активувати, додавши наступний код в файл .htaccess.
<IfModule mod_expires.c> # Enable expirations ExpiresActive On # Default directive ExpiresDefault "access plus 1 month" # My favicon ExpiresByType image / x-icon "access plus 1 year" # Images ExpiresByType image / gif "access plus 1 month" ExpiresByType image / png "access plus 1 month" ExpiresByType image / jpg "access plus 1 month" ExpiresByType image / jpeg "access plus 1 month" # CSS ExpiresByType text / css "access plus 1 month" # Javascript ExpiresByType application / javascript "access plus 1 year "</ IfModule>
Кешування WordPress на сервері
Крім того, що можна включити кешування сайту на WordPress в браузері, не зайвим буде налаштувати серверне кешування на хостингу. Це зазвичай робиться на високонавантажених сайтах. Ефективним інструментом кешування на сервері є Varnish, особливо в комбінації з Кешуються плагіном і підключенням CDN.
Предзагрузкі (prefetch) популярних доменів
Попереднє завантаження багато в чому схожа на кешування, в тому плані, що ми говоримо браузеру перевірити настройки DNS потрібних доменів ще до того, як вони будуть запитані. Браузер сканує сторінку і запитує задані адреси, які ще не закешовану, і в потрібний момент вони завантажаться швидше.
Активувати прездагрузку (prefetch) в WordPress можна шляхом додавання наступного коду в файл header.php між тегами <head> і </ head>. Це неблокірующій завантаження сторінки процес, і він виконується, коли є можливість. Наведемо деякі приклади:
Попереднє завантаження шрифтів Google
<Link rel = "dns-prefetch" href = "// fonts.googleapis.com">
Попереднє завантаження Google Code (jQuery)
<Link rel = "dns-prefetch" href = "// ajax.googleapis.com">
Попереднє завантаження Google Analytics
<Link rel = "dns-prefetch" href = "// www.google-analytics.com">
Remove Query Strings - Видаляємо рядок запиту з статичних ресурсів
Ця установка може дати позитивний ефект, так як закінчення файлів типу? Ver = 4.7 можуть привести до проблем з кешуванням статики, особливо при використанні проксі і CDN. Видалити Query Strings в WordPress можна декількома способами.
- Внести такі зміни в файл functions.php - вставити функцію, яка видалить query strings.
function _remove_script_version ($ src) {$ parts = explode ( '? ver', $ src); return $ parts [0]; } Add_filter ( 'script_loader_src', '_remove_script_version', 15, 1); add_filter ( 'style_loader_src', '_remove_script_version', 15, 1);
- Якщо ви використовуєте кешуючий плагін типу W3 Total Cache, для видалення query strings в ньому може бути відповідна настройка.
- Існують спеціальні плагіни для WordPress, основна функція яких полягає у видаленні query strings, такі як Query Strings Remover і Remove Query Strings From Static Resources.
3. Підключення CDN (Content Delivery Network)
Використання CDN може принести користь будь-якого сайту, незалежно від його розміру та кількості відвідувачів. Content Delivery Network завантажує статичні файли вашого сайту (CSS, Javascript, зображення) з найближчого до користувача сервера, знижуючи час завантаження сайту. Крім швидкості, використання CDN позитивним чином впливає на призначений для користувача досвід відвідувачів сайту, знижує показник відмов, збільшує час, проведений на сайті, конверсію і навіть SEO.
Для використання CDN на WordPress існують спеціальні плагіни, як правило, провайдер CDN розробляє плагін під свою мережу, наприклад, KeyCDN або Селектел.
Завантажуйте через CDN все, що можна
Переконайтеся, що ви вантажите з CDN максимально можливу кількість файлів, навіть найдрібніші, типу фавіконки.
<Link rel = "shortcut icon" href = "https://cdn.domain.com/favicon.ico" type = "image / x-icon" />
На прикладі нижче можна бачити, як 100% статики вантажаться з CDN
Граватар також можна вантажити з CDN.
4. Оптимізація бази даних WordPress
Якщо не оптимізувати базу даних, WordPress може почати працювати повільніше. Серед способів оптимізації БД WordPress видалення і обмеження або відключення редакцій записів, видалення старих ревізій, і дотримання обмеження на 100 сторінок в WordPress.
Відключення і ліміт ревізій постів WordPress
WordPress створює прийнятніший кількість редакцій постів під час їх написання. Якщо за цим не стежити, база даних заб'ється тисячами редакцій записів, що негативно позначиться на швидкості її роботи.
Для вирішення цієї проблеми можна обмежити кількість збережених ревізій або взагалі відключити їх.
Відключення редакцій постів WordPress
Для того, щоб відключити створення редакцій записів в WordPress, досить додати наступний код в файл wp-config.php. Він змінить інтервал автозбереження записів з 60 секунд до 5 хвилин і відключить створення ревізій. За замовчуванням залишиться тільки одна попередня редакція записи.
define ( 'AUTOSAVE_INTERVAL', 300); // seconds define ( 'WP_POST_REVISIONS', false);
Якщо ви не хочете колупатися в коді, можна зробити те ж саме за допомогою безкоштовного плагіна Disable Post Revision.
Обмеження кількості редакцій записів в WordPress
Для того, щоб обмежити кількість редакцій записів в WordPress, досить додати наступний код в файл wp-config.php. Він змінить інтервал автозбереження записів з 60 секунд до 5 хвилин і встановить кількість збережених редакцій до трьох. Можна задати кількість ревізій будь-яким числом.
define ( 'AUTOSAVE_INTERVAL', 300); // seconds define ( 'WP_POST_REVISIONS', 3);
Видалення старих редакцій записів з бази даних WordPress
Після відключення або обмеження кількості редакцій потрібно почистити базу даних від старих збережених ревізій. Для цієї мети можна тимчасово встановити плагін WP-Optimize .
Цей плагін дозволить видалити всі непотрібні редакції записів, автозбереження чернеток, спам, несхвалені коментарі, тимчасові настройки і інше сміття. У новій версії плагіна він дозволяє включити автоочистки за заданим розкладом.
Слідкуйте за обмеженням на 100 сторінок в WordPress
При плануванні структури сайту варто пам'ятати про те, що WordPress не був призначений для роботи з великою кількістю сторінок, більше 100. При наявності великої кількості сторінок на сайті в адмінці почнуться гальма через брак пам'яті. Втім, на фронтенді це ніяк не відіб'ється. Згадка про це обмеження є в документації WordPress.
Сторінки мають ієрархію. І будь-які дії зі сторінками вимагають завантажувати ціле дерево шаблонів на бекенд, щоб визначити взаємозв'язок сторінок один з одним. Коли ж викликається запис, вона ніяк не пов'язана з іншими записами, крім дати, і для її обробки не потрібно завантажувати велику кількість даних. Варто пам'ятати, що WordPress планувався як платформа для блогів, а не для багатосторінкових сайтів.
Рішенням цієї проблеми може бути використання кастомних типів постів. Для цього завдання можна використовувати безкоштовний плагін Post Type Switcher , Якщо потрібна велика кількість сторінок конвертувати в призначені для користувача типи записів.
5. Оптимізація зображень за допомогою стиснення
На сучасних сайтах в середньому 56% ваги сторінок складають зображення. Отже, оптимізація зображення і їх стиснення повинні бути пріоритетним завданням при прискоренні сайту на WordPress.
Залежно від конкретного файлу, зображення можна стиснути до 70% від початкового розміру. Стискати зображення можна на етапі підготовки їх до публікації в графічному редакторі, або вже на сайті за допомогою спеціальних плагінів стиснення зображення для WordPress.
6. Стиснення Gzip / Brotli
Gzip це ще одна технологія стиснення, яка використовується для стиснення сторінок, стилів і скриптів на рівні сервера перед відправкою браузеру. Перевірити, чи працює стиснення Gzip на сайті WordPress можна за допомогою сервісу Check GZIP Compression .
Apache
Налаштувати стиснення на сервері Apache можна, додавши наступний код в файл .htaccess
<IfModule mod_deflate.c> # Compress HTML, CSS, JavaScript, Text, XML and fonts AddOutputFilterByType DEFLATE application / javascript AddOutputFilterByType DEFLATE application / rss + xml AddOutputFilterByType DEFLATE application / vnd.ms-fontobject AddOutputFilterByType DEFLATE application / x-font AddOutputFilterByType DEFLATE application / x-font-opentype AddOutputFilterByType DEFLATE application / x-font-otf AddOutputFilterByType DEFLATE application / x-font-truetype AddOutputFilterByType DEFLATE application / x-font-ttf AddOutputFilterByType DEFLATE application / x-javascript AddOutputFilterByType DEFLATE application / xhtml + xml AddOutputFilterByType DEFLATE application / xml AddOutputFilterByType DEFLATE font / opentype AddOutputFilterByType DEFLATE font / otf AddOutputFilterByType DEFLATE font / ttf AddOutputFilterByType DEFLATE image / svg + xml AddOutputFilterByType DEFLATE image / x-icon AddOutputFilterByType DEFLATE text / css AddOutputFilterByType DEFLATE text / html AddOutputFilterByType DEFLATE text / javascript AddOutputFilterByType DEFLATE text / plain AddOutputFilterByType DEFLATE text / xml # Remove browser bugs (only needed for really old browsers) BrowserMatch ^ Mozilla / 4 gzip-only-text / html BrowserMatch ^ Mozilla / 4 \ .0 [678] no-gzip BrowserMatch \ bMSIE! no-gzip! gzip-only-text / html Header append Vary User-Agent </ IfModule>
Nginx
Якщо ви використовуєте веб-сервер Nginx, стиснення активується шляхом включення наступних інструкцій в файл настройок nginx.conf.
gzip on; gzip_comp_level 2; gzip_http_version 1.0; gzip_proxied any; gzip_min_length 1100; gzip_buffers 16 8k; gzip_types text / plain text / html text / css application / x-javascript text / xml application / xml application / xml + rss text / javascript; gzip_disable "MSIE [1-6]. (?!. * SV1)"; gzip_vary on;
Крім цього, можна також впровадити технологію стиснення Brotli на WordPress. Brotli це новий алгоритм стиснення, розроблений Google. Brotli показує значну перевагу перед Gzip при стисненні файлів.
7. Зменшення кількості плагінів WordPress
Поширеною причиною гальм WordPress є велика кількість встановлених плагінів, які навантажують сервер. Для підтримки оптимальної продуктивності сайту на WordPress слід обмежитися мінімально можливою кількістю плагінів.
Є плагіни, які дозволяють оцінити ступінь впливу встановлених плагінів на швидкість роботи сайту, але вони застаріли і не підтримуються розробниками. Це плагіни P3 Plugin Performance Profiler і WP Performance Profiler
При установці нових полігонів на сайт з WordPress слід звернути увагу на дату останнього оновлення плагіна і на сумісність з поточною версією WordPress. Якщо плагін давно не оновлювався, ви побачите наступне попередження:
Рекомендується утриматися від використання подібних плагінів на сайті, оскільки вони більше не підтримуються і можуть привести до проблем з продуктивністю і безпекою. Крім того, якщо є можливість реалізувати необхідний функціонал без використання плагіна, можна зробити редагуючи коду, це слід зробити.
Якість плагінів також може значним чином вплинути на продуктивність сайту на WordPress. Не всі плагіни пишуться професійними розробниками, і слід порівняти кілька плагінів, які вирішують однакове завдання, з метою вибрати найшвидший і оптимізований з них.
8. Оптимізація продуктивності веб-шрифтів
За даними досліджень, в 2018 році 57% сайтів використовують не стандартні шрифти, це зростання на 850% в порівнянні з 2011 роком. Дуже важливо використовувати тільки ті шрифти, які потрібні, в форматах WOFF і WOFF2. Сервіси типу Typekit base64 перетворять шрифти в усі можливі формати, сповільнюючи тим самим швидкість завантаження сайту.
За результатами тестів, шрифти Google показують хороший рівень продуктивності, тому що використовують CDN для завантаження і надаються тільки в форматах WOFF. Open Sans - найшвидший з 10 популярних шрифтів.
Важливо також пам'ятати про різницю між шрифтами Google і безпечними веб шрифтами, вона може досягати 200 мс. Це переважно через швидкість завантаження і додаткових HTTP запитів до серверів Google.
Ще однією можливістю оптимізації може бути переміщення шрифтів Google на вашу CDN. У порівняльних тестах завантаження шрифтів зі своєї CDN відбувається швидше, ніж з Google, тому що виробляється менше HTTP запитів, пошуків DNS, і дає більший контроль над кешуванням.
Можна піти ще далі і помістити все шрифти в окремий css файл і зберігати їх в localStorage. Браузерні кеш скидається досить часто, особливо на мобільних пристроях. А зберігаючи файли в localStorage, можна зберігати їх у користувача постійно. Smashing Magazine заощадили 700 мс при завантаженні сторінки за допомогою localStorage .
Рекомендуємо використовувати сервіс localFont tool від Jaime Caballero. Можна перетягнути свій шрифт у вікно і конвертувати його в CSS і Javascript для розміщення на сайті WordPress.
9. Оптимізація іконок Font Awesome
Якщо ви використовуєте Font Awesome, можна прискорити їх завантаження, помістивши файли на CDN. Якщо ви використовуєте тему WordPress з Font Awesome, її доведеться трохи допрацювати.
Зберігання Font Awesome на своїй CDN зменшить кількість запитів до сервера і пошуків DNS.
10. Lazy Load для зображень, відео та Disqus
Lazy loading - це технологія проштовхування об'єктів тільки в той момент, коли він потрібен. У разі WordPress це означає, що елемент не завантажується до тих пір, поки користувач не прокрутить сторінку до нього. Lazy load можна застосувати для будь-яких елементів сторінки, від зображень і відео, до блоку коментарів Disqus.
Відкладене завантаження зображень
Для відкладеної завантаження картинок на сайті WordPress можна використовувати хороший безкоштовний плагін BJ Lazy Load . Він замінює все зображення, ярлики і фрейми на сторінці плейсхолдерамі і завантажує контент в міру наближення його до кордону вікна при прокручуванні користувачем. Це також працює і для текстових віджетів. Якщо ви користуєтеся плагіном WP Rocket, в ньому є налаштування для включення Lazy Load.
Відкладене завантаження відео
Для відкладеної завантаження відео на WordPress можна використовувати безкоштовний плагін Lazy Load for Videos . Він замінює вбудоване відео Youtube і Vimeo клікабельним зображенням превью. Якщо у вас на сайті багато відео, цей плагін допоможе значно поліпшити швидкість завантаження сторінок.
Відкладене завантаження Disqus
Disqus - це дуже зручна система коментування, яка дуже добре бореться зі спамом. Але стандартний плагін Disqus створює більше 10 HTTP запитів, які можуть значно уповільнити завантаження сторінки. Щоб вирішити цю проблему, розробник James Joel зробив плагін Disqus Conditional Load , Який відкладає завантаження Disqus. Він в тому числі не шкодить SEO, тобто пошукові системи все одно можуть індексувати коментарі.
11. Мініфікація і об'єднання CSS і Javascript файлів
Мініфікація і об'єднання файлів стилів і скриптів може зіграти значну роль в прискоренні сайту на WordPress.
Мініфікація
Мініфікація файлів означає видалення зайвих символів з файлів HTML, Javascript, і CSS, таких як:
- прогалини
- перенесення рядка
- Коментарі
- роздільнікі блоків
Ця оптимізація зменшує кількість завантаженого коду і позитивно впливає на швидкість сайту.
Об'єднання (конкатенація)
Конкатенація це процес об'єднання декількох файлів стилів або скриптів в один, для того щоб мінімізувати кількість HTTP з'єднань. Іноді це може дати позитивний ефект, але іноді може уповільнити завантаження сторінки, через те, що доводиться завантажувати великі файли. Ефект від цієї функції потрібно тестувати в кожному конкретному випадку.
Для мініфікаціі і конкатенації файлів в WordPress можна використовувати плагіни, наприклад, WP Rocket
Більшість полігонів кешування для WordPress має настройку для включення цих функцій, але можна також використовувати окремі плагіни, такі як Better WordPress Minify и Autoptimize . Доброю практикою в WordPress вважається розміщення файлів стилів у верхній частині сторінки, а файлів скриптів знизу.
12. Зменшення кількості HTTP запитів
Зменшення кількості HTTP запитів, які робить сайт на WordPress в момент завантаження, дуже важливо для оптимізації швидкості.
Розглянемо кілька важливих способів щодо зменшення кількості запитів до сервера.
граватар
Якщо ви використовуєте у себе на сайті систему коментування WordPress, за замовчуванням вона формує окремий HTTP запит для кожного граватар. Якщо у вас багато коментарів на сторінці, вона буде генерувати величезну кількість потрібних і непотрібних редиректів.
Є кілька способів вирішення цієї проблеми.
Варіант 1 - відключити граватар
Можна просто відключити всі граватар користувачів, і використовувати локальні аватари. Чи не ідеальне рішення, але робочий.
Для цього потрібно встановити безкоштовний плагін WP User Avatar . І в налаштуваннях включити опцію «Відключити граватар і використовувати тільки локальні аватари»
Варіант 2 - використовувати Disqus
Можна використовувати коментарі Disqus разом з плагіном lazy load Disqus . Здається дивним, що підключати додатковий плагін, скрипти, робити виклик до стороннім сервісам краще використання рідної функціоналу. Але якщо порівняти швидкість на записи з 5 або більше коментарями, виявиться, що Disqus швидше через меншої кількості HTTP запитів.
відключення Emoji
З виходом WordPress 4.2 з'явилася підтримка Emoji. Це призвело до додаванню зайвого скрипта wp-emoji-release.min.js? Ver = 4.3.1 в хедері. Цей скрипт створює додатковий HTTP-запит, від которго потрібно позбутися, якщо ви не збираєтеся використовувати Emoji.
В інструкції нижче покажемо, як відключити Emoji і позбавитися від зайвої HTTP запиту.
В налаштуваннях «Написання» відключіть "convert emoticons".
Варіант 1 - WordPress плагін
Встановіть безкоштовний плагін для WordPress " Disable Emojis "By Ryan Hellyer. Цей плагін відключає функціонал emoji в WordPress 4.2.
Варіант 2 - функція WordPress
Щоб не перевантажувати сайт зайвими плагінами, можна позбутися від emoji шляхом додавання в functions.php наступного коду:
/ ** * Disable the emoji's * / function disable_emojis () {remove_action ( 'wp_head', 'print_emoji_detection_script', 7); remove_action ( 'admin_print_scripts', 'print_emoji_detection_script'); remove_action ( 'wp_print_styles', 'print_emoji_styles'); 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'); add_filter ( 'tiny_mce_plugins', 'disable_emojis_tinymce'); } Add_action ( 'init', 'disable_emojis'); / ** * Filter function used to remove the tinymce emoji plugin. * * @Param array $ plugins * @return array Difference betwen the two arrays * / function disable_emojis_tinymce ($ plugins) {if (is_array ($ plugins)) {return array_diff ($ plugins, array ( 'wpemoji')); } Else {return array (); }}
Відключення скриптів на сторінці
Зазвичай ми намагаємося позбутися зайвих плагінів, але є один плагін Gonzalez , Який дозволяє відключати невикористовувані скрипти на рівні сторінки або всього сайту. Наприклад, плагін Contact Form 7 завантажує свої скрипти на всіх сторінках сайту, а не тільки на тій, де використовуються форми. Те ж саме з плагінами шаринга в соцмережі. Відключивши непотрібні на даній сторінці скрипти, можна позбутися від декількох зайвих HTTP запитів. Плагін не безкоштовний, але своїх грошей коштує.
відключаємо Embeds
З версії 4.4 в WordPress завантажується новий скрипт wp-embed.min.js, який дозволяє спростити вставку відео, зображень, твітів, і т.п. Наприклад, WordPress автоматично перетворює URL в YouTube вставку і зробить превью в візуальному редакторі. Але не всім потрібна подібна функція, можна просто скопіювати готовий код для вставки з YouTube або Twitter. Проблема з цією функцією в тому, що вона завантажує свій скрипт на кожній сторінці. Є кілька способів позбавитися від нього.
Варіант 1 - WordPress плагін
Встановіть WordPress плагін " Disable Embeds "By Pascal Birchler. Він робить наступне:
- Запобігає інших від вставки вашого сайту.
- Не дає вам вставити сайти не з дозволеного списку.
- Відключає всі скрипти, пов'язані з цією функцією.
Варіант 2 - функція WordPress
Можна додати наступний код в файл functions.php, це відключить функцію вставки.
// Remove WP embed script function speed_stop_loading_wp_embed () {if (! Is_admin ()) {wp_deregister_script ( 'wp-embed'); }} Add_action ( 'init', 'speed_stop_loading_wp_embed');
відключаємо коментарі
Незалежно від того, використовуєте ви чи ні систему коментарів WordPress, скрипт comment-reply.min.js підключається на кожній сторінці сайту. Це не завжди виправдано, на сайті можуть бути не потрібні коментарі взагалі або підключений Disqus. Тоді можна відключити цей непотрібний скрипт.
Для цього можна додати наступний код в файл functions.php.
// Remove comment-reply.min.js from footer function comments_clean_header_hook () {wp_deregister_script ( 'comment-reply'); } Add_action ( 'init', 'comments_clean_header_hook');
13. Відключення хотлінк
Хотлінкінг це коли хтось використовує зображення з вашого сайту, посилаючись на них. Це створює непотрібне навантаження на сервер і зайвий трафік. Заборонити подібні речі можна, додавши наступний код в файл .htaccess:
RewriteEngine on RewriteCond% {HTTP_REFERER}! ^ $ RewriteCond% {HTTP_REFERER}! ^ Http (s)?: // (www \.)? Yourdomain.com [NC] RewriteRule \. (Jpg | jpeg | png | gif) $ - [NC, F, L]
Після цього зображення на чужих сайтах, які намагаються послатися на ваш, будуть виглядати так:
14. Відключення Pingback і Trackback
Pingback і trackbacks вважаються застарілими зараз, і можуть уповільнити сайт при завантаженні сторінок. Є багато сучасних інструментів, які дозволяють відстежувати посилання на ваш сайт.
Відключити pingback і trackback можна в налаштуваннях обговорення. Ця зміна торкнеться тільки нових записів.
15. Завдання розмірів зображень
Всі бачили схожі рекомендації при перевірці швидкості сайту Google Pagespeed:
Ці рекомендації відносяться до зображень на сайті, що масштабуються браузером. Наприклад, якщо зображення має ширину 500 пікселів, а на сторінці вміщено в колонку шириною 400 пікселів. В результаті воно буде зменшено до 400 пікс.
Правильним рішенням буде підготовка зображень потрібного розміру в графічному редакторі перед завантаженням на сайт. Це заощадить ресурси сервера і буде відповідати рекомендаціям Google Pagespeed. Ще можна завантажити на сайт зображення в різних розмірах для різних пристроїв.
16. Рішення проблеми повільного завантаження admin-ajax.php
У WordPress 3.6 бал представлений WordPress Heartbeat API , Який дозволив WordPress спілкуватися з сервером і браузером. Це поліпшило управління сесіями, контроль ревізій і автозбереження.
WordPress Heartbeat API використовує admin-ajax.php для AJAX запитів з браузера. Це може привести до підвищеного навантаження на процесор і великій кількості викликів PHP. Наприклад, якщо залишити відкритою сторінку з адмінкой, вона буде посилати POST запити до цього файлу постійно через встановлені проміжки часу.
Існує безкоштовний плагін Heartbeat control , Який дозволяє задати частоту звернень WordPress heartbeat API.
Варто пам'ятати, що розробники інших плагінів теж використовують цей файл. Якщо ви помітили затримки в роботі сайту, це може бути викликано плагіном, який запитує admin-ajax.php. Щоб розібратися, в чому справа, потрібно запустити тестування швидкості завантаження сайту, знайти виклик admin-ajax.php і подивитися інформацію про запит.
Таким чином можна обчислити, який плагін виконує запит. У цьому прикладі це був плагін соцмереж, для якого не було включено кешування. Як тільки кешування плагіна активували, постійні звернення до admin-ajax.php припинилися.
17. Налаштування MySQL сервера
Оптимізація роботи сервера баз даних MySQL також дуже важлива для швидкої роботи сайту на WordPress. Налаштування MySQL в великій мірі залежать від конфігурації серверного оточення на вашому хостингу, тому немає універсальних рекомендацій по оптимізації MySQL. Зазвичай настройки MySQL / MariaDB знаходяться в файлі /etc/my.cnf. Ось кілька параметрів, на значення яких варто звернути увагу:
- tmp_table_size
- query_cache_type
- query_cache_size
- query_cache_size
- join_buffer_size
- max_heap_table_size
Дуже корисний інструмент - скрипт MySQL Tuner . Він робить огляд продуктивності сервера і дає деякі базові рекомендації щодо можливої оптимізації. Ось ще кілька інструментів, які можуть стати в нагоді при налаштуванні MySQL:
18. Вибір якісного хостингу для WordPress
І останній, але важливий фактор оптимізації сайту на WordPress - вибір надійного продуктивного хостингу. Чи не рекомендуємо використовувати дешеві шаред хостинги, які забиті сайтами. Кращим рішенням буде використовувати VPS або WordPress хостинг з підтримкою.
Сподіваємося, наше керівництво допоможе вам поліпшити показники швидкості вашого сайту.
Оригінал статті - https://www.keycdn.com/blog/speed-up-wordpress/
Js?Http (s)?