~ / blog

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

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

#WordPress 2 мин

Согласие на обработку данных в форме: галочка, сервер и редакция текста

Галочку, которую проверяет только браузер, обходят одним запросом. Сервер проверяет согласие сам, а вместе с заявкой хранит время и редакцию текста. Почему это не мешает кэшу и что с плашкой про cookie.

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

wp_schedule_single_event молча не ставит дубль в пределах 10 минут

Разовая чистка через 180 с после выката не сработала: такое же событие уже стояло — 32 981 мёртвый ключ провисел 20 минут. Приём: вешать разовую работу на идущий воркер и сравнивать версию кода, а не время. 4568 ключей за 0,03 с.

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

Перенос кэша фрагментов из wp_options в Redis

Таблица опций — 88 % базы, 3,24 ГБ при 739 МБ полезных. Чистка и OPTIMIZE: база 3,7 ГБ → 1 ГБ. Redis с noeviction, версией кода в имени ключа и сжатием в 27,6 раза, откат на временные записи и виджет, который врал в 8 раз.

· · ·
#PageSpeed 3 мин

Инлайн критического CSS: два неудачных опыта и один удачный

Дважды встроенный CSS делал хуже, и мы откатывали. Один раз — товарная 80 → 88, первая отрисовка 1286 → 209 мс при обещанных отчётом 150 мс. Чем отличались эти случаи и как понять, нужен ли инлайн вашей странице.

· · ·
#WordPress 2 мин

Маска телефона по разметке, проверка по куке: верный номер отвергнут

Флаг и маску рисует разметка из кэша, а сервер проверяет номер по куке страны. Они расходятся — и правильный +7 под флагом «Россия» отвергается. Решение без синхронизации: принимать номер, подходящий под шаблон любой известной страны.

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

Очередь, вставшая намертво: одноразовое событие wp-cron

Прогон вышел по замку и не поставил следующее событие — очередь из 42 задач стояла, пока кто-нибудь не добавит новую. Одна функция планирования, сторож на тике крона и доказательство: событие снесли руками, через 130 с очередь пуста сама.

· · ·
#WordPress 2 мин

Залипшая ошибка поля глушит форму навсегда

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

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

Что выпадает из прогрева: поддомены, языковая кука, служебные типы

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

· · ·
#PageSpeed 3 мин

AVIF и WebP на сайте с кэшем: разметка без современных форматов замерзает на неделю

Форматы делаются в фоне, а страница кэшируется раньше — и неделю отдаёт PNG на 122 КБ при готовом AVIF на 14 КБ рядом. Как поймать (curl, а не Lighthouse), как лечить за 0,5 мс на страницу и сколько стоит AVIF для сервера.

· · ·

$ tail -f /blog

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

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

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

или на почту

связаться

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