Не начинайте с тарифа — сначала измерьте время по этапам

Если TTFB высокий, оптимизация картинок почти не поможет. Если HTML приходит быстро, а страница долго становится интерактивной, проблема чаще во frontend, изображениях или JavaScript.

Измерить DNS, connect, TTFB и полное время

BASH
curl -sS -L -o /dev/null   -w "dns=%{time_namelookup}s\nconnect=%{time_connect}s\ntls=%{time_appconnect}s\nttfb=%{time_starttransfer}s\ntotal=%{time_total}s\n"   https://example.com/

Метрика → вероятный слой

Что медленноЧто проверять
DNSDNS-провайдер, цепочку CNAME
Connect/TLSсеть, TLS, прокси/CDN
TTFBPHP, БД, API, cache, server load
Downloadразмер HTML/изображений
Render/INPJavaScript, main thread, сторонние скрипты
LCPглавный ресурс, сервер, preload/cache

Что открыть в Chrome DevTools

  • Network: сортировка по Duration и Size;
  • Disable cache для чистого теста;
  • Performance: длинные задачи и main thread;
  • Lighthouse: Performance и рекомендации;
  • Coverage — если нужно найти крупный неиспользуемый CSS/JS.

Сервер: базовая проверка ресурсов

BASH
uptime
free -h
df -h
df -i

# Если установлено:
top
iostat -xz 1 5

ps aux --sort=-%cpu | head
ps aux --sort=-%mem | head

Если медленный именно backend

Проверьте PHP-FPM pool, медленные SQL-запросы, внешние API, отсутствие application cache и задачи, выполняющиеся синхронно при каждом открытии страницы. Один медленный запрос к внешнему сервису может увеличить TTFB на секунды даже на мощном сервере.

Когда новый сервер действительно нужен

Масштабирование оправдано, когда измерения показывают стабильное исчерпание CPU/RAM/I/O/worker pool при нормальном приложении. Если один SQL-запрос выполняется 4 секунды, перенос на сервер в два раза мощнее редко решает корень проблемы.

Скачать набор диагностики

RuJul Site Diagnostics — один ZIP

Связанные инструкции