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

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

швидкість

Час відповіді сервера - перше, на що варто звернути увагу на етапі оптимізації сайту, а саме швидкості завантаження. Це, на додачу до мікророзмітки, деяких тегів та robots.txt, є важливою частиною роботи SEO-спеціаліста. То ж як зменшити час відповіді сервера і зробити сайт більш спритним?

Що таке TTFB

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

Результати дослідження про зв'язок TTFB і позиції сторінки у видачі спостерігайте у графіку:

TTFB

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

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

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

таймінг

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

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

Google_Analytics

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

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

PageSpeed_Insights

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

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

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

Netpeak_Spider

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

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

Webpagetest

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

Перевіряйте 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 разів.

Фото: flickr.com
Обробка: Vinci
назад
далі