~ / blog

Блог — страница 17

Пишу о том, что делаю каждый день: скорость сайтов, кэш, обмен с 1С, серверы и WordPress без лишнего.

#Кэширование 2 мин

Почему ajax-блокам нужен свой кэш

admin-ajax — это POST с no-store, nginx его не кэширует: сетка на 24 карточки — 2 с, пагинация — 2,2 с. После своего кэша — 0,2 с. Главный приём: чистая функция рендера, которую зовут и ajax, и фоновый воркер.

· · ·
#Кэширование 1 мин

Анти-шторм, завязанный на функцию, которой нет

Код чистки пропускал сброс в расчёте на внешнюю функцию, а её не перенесли: страницы товаров не сбрасывались никогда. Итог — карточки без картинок на телефоне. Как проверили починку и почему тихий пропуск хуже ошибки.

· · ·
#PageSpeed 3 мин

Анимации появления и LCP: «задержка отрисовки» при загруженной картинке

Баннер загружается за 180 мс, а PageSpeed пишет «задержка отрисовки элемента 2040 мс». Так проявляется анимация появления на первом экране. Как её найти, как лечить без потери дизайна и родственная ловушка со стилями в ленивом файле.

· · ·
#Кэширование 2 мин

Анти-шторм: сбрасывать кэш только по реальным изменениям

Пустые сохранения обмена, дрожь порядка (~5000 сбросов в сутки), счётчики просмотров (2,2 ГБ сирот за ночь). Подпись значимых полей, обратная ловушка — правки контентщика перестали появляться — и телеметрия причин сбросов.

· · ·
#Кэширование 2 мин

Точечная чистка кэша по файлам и дыра с главной страницей

Ключ не вычислять — читать строку KEY в файлах кэша и сравнивать путь без параметров. Главную точечно не чистили без всякой причины, а немедленный сброс из админки не вызывался. Бонус: 449 вариантов главной от бота соцсети.

· · ·
#Кэширование 2 мин

nginx не умеет помечать устаревшим: чистка кэша без прогрева — это MISS

Удалённую копию нельзя отдать как устаревшую — следующий посетитель ждёт рендер. Греть после ответа через fastcgi_finish_request и во всех вариантах ключа: на одном адресе 8 ячеек, а прогревалась одна.

· · ·
#PageSpeed 3 мин

Googlebot не прокручивает: ленивые блоки, которых нет в поиске

259 заходов поискового робота за неделю — и ни одного запроса за содержимым ленивых блоков. Почему робот не видит блоки, которые грузятся при прокрутке, как это проверить и как починить, не потеряв в PageSpeed.

· · ·
#Кэширование 2 мин

Статус кэша в журнале nginx: разобрать жалобу на медленную загрузку за минуту

X-Cache-Status говорит, что сейчас, но не что было вчера. log_format с $upstream_cache_status, временем ответа и частями ключа: BYPASS залогиненного, холодный вариант ключа или сеть — видно по одной строке.

· · ·

$ tail -f /blog

Не пропустите новые статьи

Пишу разборы по скорости сайтов, кэшу и разработке — на живых проектах и с цифрами. Подпишитесь, и ссылка на новую статью придёт сразу после выхода. Без рекламы и спама, отписаться — в один клик.

В Telegramодна кнопка «Старт» в боте

или на почту

связаться

Расскажите о задаче