mysurik.ru

Как я разогнал свой блог до 0.13 секунды: честный рассказ с цифрами

Как я разогнал свой блог до 0.13 секунды честный рассказ с цифрами

Захожу на свой сайт через браузер. Нажимаю Enter. И через 0.13 секунды страница уже на экране. Я просто сижу и улыбаюсь. Потому что помню, с чего всё начиналось.

Когда я только запустил блог, про скорость я вообще не думал. Реальность была такой: страница грузилась 1-2 секунды, картинки весили по 200-500KB, каждый запрос дергал базу данных. Я грешил на хостинг, на PHP, на Apache. Пока однажды не решил: хватит.

WP-Super-Cache

Оказалось, что плагин установлен, но кэш выключен. Конфиг говорил, что cache_enabled = false. Исправил на true — и сайт начал отдаваться статическим HTML. Первый пинг: 0.13 секунды.

Оптимизация базы данных

За год накопилось 216 ревизий записей и 623 спам-комментария. Всё это лежало в MySQL и ждало своего часа. Почистил — база похудела, запросы стали легче.

WebP Express

Картинки — самая тяжелая часть сайта. 179 изображений, около 600MB на диске. Поставил WebP Express, настроил конвертацию через Imagick. Теперь все новые картинки автоматически конвертируются в WebP. Браузер получает в 2-3 раза легче, качество — неотличимо.

Google Search Console и Yoast SEO

Добавил сайт в Search Console, отправил sitemap. Google теперь знает про все статьи и будет индексировать быстрее.

Системный cron

WordPress использует внутренний cron, который срабатывает только когда на сайт заходит посетитель. С кэшем посетители реже заходят на PHP — и cron тупо не выполнялся. Задания висели с мая. Настроил системный crontab — каждые 15 минут.

Результаты:
— Загрузка: было 1-2 сек, стало 0.13 сек
— TTFB: было ~0.3 сек, стало 0.038 сек
— Размер страницы: 95 KB (gzip)
— Картинки: JPEG/PNG теперь WebP
— Кэш: был выключен, теперь SuperCache
— Cron: висел с мая, теперь каждые 15 мин
— БД: 839 мусорных записей удалено

Стыдно признаться, но всё это должно было быть сделано ещё в день запуска. С другой стороны — я научился на своих граблях и могу рассказать другим, как не надо. Скорость сайта — это не магия. Это просто набор настроек, которые нужно проверить один раз. Если у вас WordPress и вы никогда не смотрели в сторону кэша — советую начать прямо сегодня. Потому что 0.13 секунды — это кайф.

Комментарии

  • 0.13 это без CDN? У меня с Cloudflare примерно столько же. Но я думал это предел. Оказывается можно и быстрее.

  • У меня на shared хостинге 2 секунды. Твой пост — триггер переезжать на VPS. Надорвусь, но сделаю.

  • У меня похожая конфигурация: FastPanel + nginx + Apache. Но скорость около 0.4с. Наверное, надо ещё картинки сжать сильнее. Каким плагином для WebP пользуешься?

  • 0.13 секунды — это круто! Я свой блог разогнал до 0.8с и думал, что всё отлично. А тут оказывается, можно ещё быстрее. Расскажи подробнее про настройку nginx, у меня там вечные проблемы с кешированием.

Ваш комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *