Фриланс и веб с OlegTix | WordPress
411 subscribers
262 photos
10 videos
3 files
298 links
Блог про веб-разработку и wordpress от Senior разработчика.

Youtube канал:
https://www.youtube.com/@olegtix

Тематика: wordpress, сервисы, личные мысли

Заказать сайт/предложить рекламу/админ: @oleg_tix

Позвать друзей: https://t.me/web_panda
Download Telegram
✏️ 42 000 запросов от Meta и блокировка

Нагрузка на сервер выросла внезапно.
Я увидел в логах 42 361 запрос за короткий промежуток времени. Хостинг не выдержал такого наплыва и заблокировал сайты.

Виновником стал meta-externalagent/1.1. Это робот Facebook. Он сканирует страницы для формирования превью ссылок. Иногда его алгоритмы дают сбой. Бот начинает бесконтрольно отправлять запросы. Это как DDoS-атака.

Решение проблемы находится в файле .htaccess. Я закрыл доступ для всех агрессивных и вредоносных ботов через модуль mod_rewrite.

Ниже привожу рабочий код.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} (facebookexternalhit|barkrowler|dataforseobot|bytespider|BLEXBot|SemrushBot|MJ12bot|AhrefsBot|DotBot|SeekportBot|DataForSeoBot|Jooblebot|Baiduspider|PetalBot|SputnikBot|LinkpadBot|ClaudeBot|GPTBot) [NC]
RewriteRule .* - [F,L]
</IfModule>


Этот список фильтрует лишний трафик. В него вошли боты Facebook, TikTok (bytespider) и парсеры для обучения ИИ. Правило проверяет заголовок User-Agent. Сервер отдает ошибку доступа при совпадении. Нагрузка падает мгновенно.

OlegTix | #wordpress #вебразработка #безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
1422
✏️ Перфекционизм убивает проекты

Вижу это постоянно. У себя и у клиентов.

Человек загорается идеей, садится делать, и понеслось. Три языка на сайт сразу. URL вылизать до идеала. Код переписать, чтобы «правильно». Логотип переделать в седьмой раз. Шрифт поменять. Тень у кнопки подвинуть.

Проходит два месяца. Сайт «почти готов». Бюджет сгорел. Энергия на нуле. На рекламу нет ни денег, ни желания. На развитие тем более.

Проект умирает. Не потому что идея дрянь. А потому что его залюбили до смерти, пока никто ещё даже не видел.

И вот что грустно. Этот идеальный сайт с тремя языками и чистым кодом посетило ноль человек. Ноль продаж. Ноль обратной связи.

А кривой лендинг на одну страницу, собранный за выходные, через неделю уже приносит заявки. И главное, реальное понимание, что вообще нужно людям.

Это и есть MVP. Не халтура. А минимум, который достаточен, чтобы проверить, работает идея или нет.

Нужен магазин? Запусти с одним языком и десятью товарами. Пошли продажи, добавляй остальное.

Нужен сервис? Собери на конструкторе. Убедись что людям это надо. Потом перепишешь красиво.

Лучше запущенное и кривоватое, чем идеальное, которое никто не увидел. Перфекционизм прикрывается высокими стандартами. А на деле это страх. Показать сырое. Получить критику. Узнать, что идея не зашла.

MVP лечит это быстро. Запускайся, получай обратную связь, улучшай по факту. А не по фантазиям в голове.

OlegTix | #вебразработка
Please open Telegram to view this post
VIEW IN TELEGRAM
18
Курс - Архитектор проектов с Claude Code

Мой коллега и хороший друг выложил бесплатно очень качественный курс по AI Claude. Рекомендую тем, кто хочет разобраться в этой теме.

Его телеграм канал про ai.

https://www.notion.so/Claude-Code-3128805cdaf7816ab090ea45a6701716

OlegTix | #вебразработка #ai
83
Как я веду учет заказов

Для меня самый удобный способ оказался Канбан доски. Карточки компактные, занимают мало места, все наглядно.

Раньше пользовался trello, но после санкций остановился на аналоге YouGile, которую использую уже точно больше 2-х лет. Кроссбраузерно, стикеры для задач. В общем, всего хватает.

Под клиентские задачи сделал доску с колонками:
1) Жду информацию
2) На сегодня
3) В работе
4) Сделано
5) Отложено

Через стикеры ставлю приоритет, стоимость, дедлайн, заметку, источник.

Наглядно, просто, не перегружено.

А вы как ведёте клиентов и задачи?

#продуктивность
82
Неожиданная ошибка от WordPress меню

Столкнулся с интересной проблемой. Сайт падал с 504 ошибкой (тайм-аут) при сохранении меню WordPress. Сервер очень мощный. Начал разбираться.

Как оказалось, меню было слишком большим для WP. Оно на 50-60 пунктов. С технической точки зрения, когда вы сохраняете меню в WordPress, то каждый пункт отправляется как набор полей. Там всякие заголовки, ссылки, порядок, родительские элементы, CSS-классы...

В итоге у нас получается ОГРОМНЫЙ POST-запрос. И сервер просто не успевает его обработать до конца => сервер падает.

Исправляется это путем увеличения max_input_vars для PHP. Надо ставить 10 000 вместо дефолтных 1 000, а где-то и 20 000 может не хватить.

Также надо не забыть про max_execution_time и max_input_time. Им поставить 300 секунд. А также memory_limit 512M.

Если всё это не помогло, то надо копаться в Nginx/Apache в зависимости от стека.

Однако это всё скорее костыль, чем решение. Для меня загадка, как так разрабы WP не предусмотрели такую оптимизацию... Самое лучшее решение в случае мегаменю — отказаться от WordPress меню и накодить его с помощью того же ACF. Либо вариант более элегантный, оставить только верхние уровни, а нижние выводить динамически через PHP.

Если у вас небольшое меню, то беспокоиться не о чем.

OlegTix | #вебразработка #wordpress
1483
⬜️ Почему я отказался от Advanced Themer спустя 2+ года использования ⬜️

В этом видео делюсь личным опытом использования плагина Advanced Themer for Bricks. Я провел с ним больше двух лет, построил не один десяток сайтов, но в итоге принял решение полностью исключить его из своего рабочего процесса.

Почему инструмент, который когда-то казался must-have, перестал быть нужным? Что изменилось в самом Bricks Builder и в моем подходе к разработке?

Это не хейт в сторону разработчиков (спасибо им за огромную работу), а трезвый взгляд на эволюцию самого bricks и смену приоритетов.

😉 Смотреть

🤝 Убедительная просьба, ставить лайк не только на пост в телеграм, но и на ютуб видео. Это поможет в его продвижении.

📌 Если статья была полезна, то буду рад, если вы поделитесь ей с друзьями разработчиками.

OlegTix | #wordpress #bricks
Please open Telegram to view this post
VIEW IN TELEGRAM
1742
OlegTix | #мем
😁1232
Ссылки телеграма заблокированы

Я думаю, что все уже видели новость, что домен t.me был отключен и все ссылки на аккаунты и так далее стали нерабочими.

В сети советуют использовать telegram.me ссылку, чтобы обойти данную блокировку. Лично у меня такая ссылка не работает и не работала после блокировки t.me.

Однако почему-то никто не пишет про зеркальный домен telegram.dog, который замечательно работает и находится в другой доменной зоне, что значительно снижает риск его блокировки, как в случае с зоной .me

Просто заменяете t.me на telegram.dog и все ссылки станут рабочими.

Пример
https://telegram.dog/oleg_tix

OlegTix | #сайты
12
Как вы боретесь с атаками на сайт, когда сайт находится на виртуальном хостинге?

В последнее время начал часто сталкиваться с атаками на сайт, которые отправляют тысячи запросов (паразитный ботовый трафик и L7-флуд), тем самым сайт ложится, хостинг кричит, клиент тоже... приходится чинить.

Раньше была волшебная таблетка: cloudflare. Подключаешь его к сайту, а он не только защищает его бесплатно, но и ускоряет. Сейчас его нет. Быстрый ресерч альтернативных СНГ решений дал только платные сервисы с действительно дорогими ценами, особенно в пропорции со стоимостью самого хостинга. Приходится что-то выдумывать, плагины защиты (а-ля wordfence или aios) особо не помогают, только окончательно добивают полулежащий сайт, такие плагины создают очень большую нагрузку на бд и прочее, потому что они работают ВНУТРИ PHP, который и так уже загружен на 100%.

Самое лучшее решение, по моему мнению: перейти на выделенный сервер, там нормальный ssh доступ, поставил себе все сервисы, имеешь полный контроль, настроил защиту, лимиты, заблокировал подсети вредоносных ip и прочего из логов, на крайняк распределил нагрузку между воркерами, чтобы посетитель всегда получал сайт, даже если в него будет долбиться тысячи роботов в секунду (кейс такой совсем недавно был).

Но что делать, если все же нужно что-то придумать на виртуальном хостинге, и да, желательно без танцев с бубнами на горе?

Мое решение сейчас:
1) статический кеш, чтобы снизить нагрузку на бд
2) блокировка агрессивных user-agent прямо в .htaccess
3) закрытие xmlrpc.php, /wp-json/wp/v2/users, лимит на wp-login.php;
4) отключить wp-cron (DISABLE_WP_CRON) и повесить его на серверный крон, иначе каждый бот-запрос запускает планировщик;
5) дешёвый VPS за 300–500 ₽ как reverse-proxy с nginx перед шаредом: фильтрация до того, как трафик дойдёт до хостинга. Часто дешевле любого WAF.

Делитесь своими решениями и идеями в комментариях.

OlegTix | #сайты #безопасность
1122
⬜️ Выложил урок про WP-CLI ⬜️

Разбираем на практике:

— как за минуту сверить файлы ядра с эталоном и найти чужой код, и почему по умолчанию корень сайта не проверяется, а кладут туда чаще всего
— порядок действий, если сайт уже взломали: дамп, переустановка ядра поверх, смена солей, проверка администраторов
— почему фатал в плагине роняет не только сайт, но и консоль, и какой флаг спасает
— массовые операции: удалить все ревизии, вычистить спам, снять с публикации товары без цены - одной строкой
— автозагрузка wp_options: почему из-за неё тормозит весь сайт целиком и почему этой цифры нет ни на одном экране админки
— работа с базой напрямую: дамп с датой, запрос из командной строки, оптимизация таблиц
— почему домен нельзя менять запросом в SQL и что писать в search-replace всегда
— WP-Cron: почему без трафика задачи не выполняются неделями
— профилирование: команда называет виновника с точностью до файла и строки
— свой PHP без плагина: eval, eval-file и интерактивный shell


😉 Смотреть

🤝 Убедительная просьба, ставить лайк не только на пост в телеграм, но и на ютуб видео. Это поможет в его продвижении.

📌 Если статья была полезна, то буду рад, если вы поделитесь ей с друзьями разработчиками.

OlegTix | #wordpress
Please open Telegram to view this post
VIEW IN TELEGRAM
113
Яндекс начал вставлять рекламу прямо в карты на сайтах 😳

Сегодня открыл сайт и сначала реально подумал, что его взломали или на нём какой-то рекламный вирус.

Прямо поверх Яндекс Карты появился огромный баннер:

«500₽ за установку Яндекс Браузера для организаций»

Начал проверять сайт, код, сторонние скрипты — а оказалось, что это реклама от самого Яндекса 🙂

Причём речь именно про карту, встроенную на сайт через Конструктор Яндекс Карт. Раньше такого я там не встречал. Максимум были логотип Яндекса, ссылки на карты и стандартные элементы управления. Теперь, судя по всему, решили монетизировать ещё и этот формат.

И выглядит это, мягко говоря, ужасно. Ты ставишь карту на коммерческий сайт, аккуратно вписываешь её в дизайн, а потом Яндекс без твоего участия вешает поверх рекламный баннер.

Особенно весело, когда клиент увидит это раньше тебя и спросит:

«А почему у нас на сайте реклама Яндекс Браузера?»

Пока что не знаю, насколько массово они это раскатывают и будет ли реклама показываться постоянно, но сам факт довольно неприятный.

Если это станет постоянной практикой, будет резкий повод не встраивать Яндекс Карты в таком виде и искать альтернативы.

Кто-нибудь ещё уже такое видел?

OlegTix | #сайты #вебразработка
Please open Telegram to view this post
VIEW IN TELEGRAM
64😁2