Оптимізація швидкості сайту: як зменшити час відповіді сервера

  1. Що таке TTFB?
  2. Як перевірити TTFB?
  3. Отримати дані з Google Analytics
  4. Використовувати PageSpeed ​​Insights
  5. Використовувати Netpeak Spider
  6. Використовувати сторонні сервіси
  7. Що може бути причиною великого TTFB?
  8. Як зменшити час відповіді сервера?
  9. Переїхати на більш продуктивний сервер
  10. Використовувати акселератори PHP
  11. Використовувати серверне кешування
  12. висновок

Час відповіді сервера - перше, на що варто звернути увагу на етапі оптимізації швидкості завантаження сайту. У цій статті рубрики «Азбука SEO» я розповім, як зменшити час відповіді сервера і зробити сайт більш «спритним».

Що таке TTFB?

TTFB (Time To First Byte) - час до отримання першого байта веб-сторінки після відправлення запиту з боку клієнта. Чим менше цей показник, тим швидше браузер почне завантажувати сторінку.

До речі, фахівці MOZ провели дослідження про зв'язок TTFB і позиції сторінки у видачі. Головний графік в статті:

Головний графік в статті:

за рекомендаціям Google , Показник TTFB не повинен перевищувати 200 мс, а в ідеалі повинен бути не більше 50 мс. Якщо час відповіді більше, потрібно визначити причину і усунути її.

Як перевірити TTFB?

Використовувати відладчик в браузері

Для перевірки TTFB можна використовувати відладчик браузера. Наприклад, в Google Chrome і Mozilla Firefox відладчик запускається комбінацією клавіш «Ctrl + Shift + I». Після цього необхідно вибрати вкладку «Network» (Мережа), перезавантажити сторінку і відфільтрувати ресурси за типом HTML (Doc). Далі потрібно вибрати поточну завантажену сторінку і у вкладці «Timing» в рядку «Waiting» буде вказано час відповіді сервера.

Отримати дані з Google Analytics

Необхідно перейти по шляху «Поведінка» - «Швидкість завантаження сайту» - «Огляд». Далі в блоці «Середній час відповіді сервера (сек.)» Буде вказано TTFB за вибраний проміжок часу.

Використовувати PageSpeed ​​Insights

Також можна використовувати інструмент PageSpeed ​​Insights . Введіть URL веб-сторінки і запустіть аналіз. Після завершення аналізу при наявності проблеми з TTFB ви зможете в побачити це показник в блоці «Скоротіть час від сервера».

Використовувати Netpeak Spider

Netpeak Spider - десктопний краулер для комплексного SEO-аудиту всього сайту. Щоб дізнатися час відповіді сервера за допомогою цього інструменту, вставте URL в адресний рядок, запустіть сканування (кнопка «Старт») і виберіть стовпець «Час відповіді сервера».

До речі, якщо TTFB сторінки складе більше 500 мс, Netpeak Spider покаже помилку середнього ступеня критичності. Всі такі сторінки можна зручно відфільтрувати після сканування - просто клікніть на шукану помилку в правій панелі:

Використовувати сторонні сервіси

Простий і зручний інструмент - Webpagetest . Дізнатися значення TTFB можна в колонці «First Byte»:

При використанні стороннього ресурсу або проксі завантаження сайту відбувається з іншого сервера, тому результати можуть сильно відрізнятися - багато що залежить від віддаленості розташування сервера, з якого відбувається завантаження, від сервера, на який проводиться завантаження даних.

Перевіряйте TTFB не тільки на головній сторінці, а й на сторінках категорій, картках товарів. Час реагування може змінюватися на різних типах сторінок.

Що може бути причиною великого TTFB?

На час відповіді сервера погано впливає:

  • повільна робота з базою даних;
  • нестача ресурсів (слабкий процесор або недостатній обсяг оперативної пам'яті);
  • неправильна конфігурація сервера;
  • відсутність кешування.

Для визначення точної причини необхідна допомога досвідченого програміста і системного адміністратора.

Як зменшити час відповіді сервера?

Оптимізувати роботу з базою даних

При формуванні сторінок сервер кожен раз звертається до бази даних, щоб отримати необхідну інформацію. Кожен запит займає певний час, і чим більше запитів, тим більше загальний час генерації сторінки.

Наприклад, при формуванні блоку «з цим товаром також купують» виконуються наступні запити:

  1. Визначити поточний товар.
  2. Визначити кількість додавань поточного товару в кошик.
  3. Визначити товар, який додавався разом з поточним в кошик.
  4. Виключити незавершені замовлення.
  5. Сформувати список найбільш часто купуються товарів разом з представленим.

Чим більше товарів і досконалих замовлень на сайті - тим більше необхідно часу на формування відповіді. Щоб зменшити кількість запитів до бази даних, можна зберігати вже сформований відповідь в кеші - так замість п'яти запитів буде виконаний всього один.

Це завдання необхідно делегувати команді досвідчених програмістів, які зможуть провести налагодження і виявити найбільш «важкі» запити і оптимізувати їх.

Переїхати на більш продуктивний сервер

Причиною довгого відповіді сервера може бути недолік продуктивності. Слабкий процесор або малий обсяг оперативної пам'яті призводять до повільної роботи або зовсім «падіння» сайту, тому необхідно завжди залишати потенціал для непередбачених стрибків навантаження.

Не варто розміщуватися на безкоштовних хостингах, або на хостингах з обмеженими можливостями. Подбайте про майбутнє і використовуйте VPS або виділені сервери - це найкраще рішення для масштабованих проектів.

Використовувати акселератори PHP

Кожен раз при завантаженні сторінки сервер обробляє PHP-файли, але часто при кожному завантаженні виконується один і той же ділянку коду. Акселератори PHP дозволяють значно зменшити TTFB шляхом попередньої компіляції PHP-коду. Це зменшить навантаження на процесор, але потребують більшого обсягу оперативної пам'яті.

Популярні акселератори:

  • Alternative PHP Cache (APC);
  • eAccelerator;
  • PhpExpress;
  • Windows Cache Extension for PHP;
  • XCache;
  • Zend OPcache.

Використовувати серверне кешування

При відсутності кешування сторінок сервер генерує запитувану сторінку при кожному зверненні користувача. Якщо кешувати сторінку цілком, при наступному зверненні користувача до файлу сервер не буде генерувати сторінку заново, а віддасть користувачеві вже згенерувала сторінку.

На тестовому сайті я налаштував серверне кешування сторінок - час відповіді сервера зменшилася в десять разів.

TTFB з відключеним кешуванням:

TTFB з увімкнутим кешуванням:

висновок

Працюйте над скороченням часу відповіді сервера і не економте на продуктивності процесорів. Якщо ваш TTFB більше 200 мс, обов'язково:

  • оптимізуйте роботу з базою даних;
  • використовуйте більш продуктивний сервер;
  • використовуйте акселератори PHP;
  • налаштуйте серверне кешування сторінок.

В результаті можна зменшити час відповіді сервера в 5-10 разів.

Читайте також, як прискорити сайт за допомогою CDN-сервісу .

Що таке TTFB?
Як перевірити TTFB?
Як зменшити час відповіді сервера?
Що таке TTFB?
Як перевірити TTFB?
Що може бути причиною великого TTFB?
Як зменшити час відповіді сервера?