~ / blog

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

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

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

После выката закэшированные страницы ссылаются на удалённые скрипты

Выкат удалил старые бандлы с хэшем в имени, а страница в кэше ссылалась на них: 4 из 10 файлов отдавали 404, формы не работали. Почему сброс не всегда спасает, как защититься и проверка одной командой.

· · ·
#WordPress 3 мин

Правки мимо save_post: где WordPress меняет страницу, не сбрасывая кэш

Новая статья видна не только по своему адресу, мета и опции меняются без сохранения записи, прямой UPDATE не вызывает хуков. Пять путей изменения, которые пропускает сброс на save_post, и как найти свои дыры за полчаса.

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

Перечень ячеек собирается сам: обходчик читает разметку

Обходчик страниц вынимает из HTML контейнеры блоков с параметрами и пишет их в реестр — охват вырос с «главная и категории» до 1030 ячеек. Все параметры — в разметке, остальное — из реестра живых запросов.

· · ·
#PageSpeed 5 мин

width и height у картинок: зачем они и два бага, которые они приносят

Без размеров вёрстка прыгает (CLS 0,33 → 0 после правки), а ленивая загрузка тянет картинки в окно первой отрисовки. С размерами — две ловушки: карточки втрое выше и сдвиг из-за размеров коробки вместо файла.

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

WP_HOME из заголовка Host: кэш-код видит чужой домен

Выкат первым заметил бот на www. и dev. — код прогрева искал свой сервер по чужому имени, очередь не встала, в кэше 12 файлов на 6 часов. Тихий вариант: прогрев греет ячейки чужого хоста. Лечение — адрес прямо из базы.

· · ·
#WordPress 3 мин

wp-cron на сайте с кэшем страниц: почему задачи не запускаются и как правильно

Страница из кэша не доходит до PHP, и встроенный крон WordPress почти перестаёт работать. Системный крон раз в минуту, и две грабли: задание от root (140 523 чужих файла кэша) и зонды, которые сами запускают очередь.

· · ·
#PageSpeed 3 мин

Аудит начертаний: дубли, мёртвые шрифты и синтетический жирный

Bold и ExtraBold одним файлом, 47 КБ ради одного заголовка, три семейства без единого использования и «жирный», нарисованный браузером. Чек-лист из пяти пунктов и что должно остаться после аудита.

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

Обходчик затирает новую очередь: get_option кэширует опцию на весь запрос

Воркер в конце прогона записывал старый остаток поверх нового круга после выката — главная оставалась холодной. Повторный get_option возвращает снимок начала запроса. wp_cache_delete, номер круга и слияние вместо перезаписи.

· · ·
#WordPress 3 мин

Один HTML на всех: что можно печатать в кэшируемую страницу WordPress

Страница в кэше живёт неделю и уходит всем одинаковой. Таблица «можно и нельзя в разметку», три пути для меняющегося — в ключ, в обход, на клиент, — и короткий список того, что у нас идёт мимо кэша.

· · ·

$ tail -f /blog

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

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

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

или на почту

связаться

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