Задать вопрос
  • Как сделать сайт на WordPress с высокой производительностью?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Как сделать сайт на WordPress с высокой производительностью?

    Вначале необходимо определить, что такое "высокая производительность". Обычно, под производительностью сервера (WP сайт это как раз тот самый сервер) подразумевается показатель RPS (Requests Per Second) - максимальное количество запросов к серверу в секунду. Именно максимальное, т.е. в какой то "час-пик". Предположим, что сайты на WP обычно используют небольшие, ну максимум средние компании, с соответствующим ожиданием по нагрузке в своем сегменте.

    Возьмем голую тему без плагинов, которая выводит 10 изображений, с подключением 5 статических файлов (css/js), итого около 20 запросов от одного не кэшированного визита посетителя. Если на наш сайт зайдут 5 посетителей в секунду, они сгенерируют 100 RPS (5 * 20). Может показаться, что 5 визитов в секунду - это мало, но в минуту это будет уже 300 визитов, а в час 18000 визитов, что как бы дохрена, для малого-среднего бизнеса. Повторюсь, речь идет про "час-пик", т.к. нагрузка в другой промежуток времени нас не интересует.

    По моим наблюдениям, WP без проблем выдерживает 50-100 RPS на нормальном хостинге с начальным тарифом без кэширования.

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

    Я придерживаюсь следующего плана оптимизации WP сайта, от простого к сложному:
    1. Кэширование плагином - самое быстрое и относительно дешевое решение, гуглить WordPress caching plugins. Обычно, вместе с такими плагинами идет опция с оптимизацией изображения до .webp или .avif формата и оптимизацией css/js файлов, если же нет, то это должен быть следующим пунктом оптимизации. Например, для W3 Total Cache имеются плагины Smush и ShortPixel.
    2. Хостинг - арендовать более производительный shared-хостинг и подключить CDN.
    3. VDS/DS хостинг - переезд на производительный VDS/DS хостинг, настройка обратного прокси Nginx и перекладка на его плечи задачи кэширования. Иногда получается сделать так, что до WP вообще не доходит запросов, все отрабатывает Nginx (это идеальный сценарий, но не всегда выполнимый). Здесь можно снять несколько сотен-тысяч RPS, что уже очень прилично, для такого уровня сайтов.
    4. Больше серверов - докупка VDS/DS серверов с балансировкой, либо руками, либо средствами хостера. Здесь можно снять ЕЩЕ несколько сотен-тысяч RPS дополнительно к п3. Обычно, такая производительность нужна каким то интернет-каталогам/магазинам.

    Конечно, можно переписать саму тему с плагинами (написать с нуля), но не факт, что это будет дешевле и быстрее, чем пункты выше. Бизнесу вообще глубоко фиолетово, на чем написан инструмент (сайт), главное, чтобы он приносил деньги, стоил максимально дешево и мог быстро нарастить производительность под новую нишу, если это понадобится.

    Ну и как уже сказали другие, elementor противоречит слову "производительность", хотя и его наличие можно на время закидать кэшированием-серверами-деньгами.

    Рекомендую почитать:
    WordPress Developer Resources - Optimization
    The Ultimate Guide to Boost WordPress Speed & Perf...
    Page Speed Optimization for WordPress
    Как понять, где лучше использовать плагин, а где лучше разобраться и вставить код?
    Какие плагины обязательны? А какие замедлят сайт?

    Отслеживать производительность можно плагинами New Relic и Query Monitor, а тестировать нагрузку Load Impact и Apache Benchmark. Это поможет понять, где узкие места.
    Ответ написан
    5 комментариев
  • Как исправить ошибку в WP /wp-json/wp/v2/users/me?_locale=user 403?

    Kozack
    @Kozack Куратор тега WordPress
    Thinking about a11y
    Похоже что сломана авторизация. Проверьте
    1. .htaccess и wp-config.php на предмет чего-то чего там быть не должно
    2. Переустановите само ядро ВП.
    Ответ написан
    1 комментарий
  • Посадка верстки на WP?

    zorca
    @zorca Куратор тега WordPress
    Elementor сейчас самый популярный вариант, что называется на подъёме. Единственный минус - большая вложенность тегов, но это неизбежно для конструктора. Приходите в группу в Телеграмм, подскажем:
    https://t.me/elementor_ru
    Ответ написан
    3 комментария
  • Сколько стоит час веб-разработчика-фрилансера?

    xmoonlight
    @xmoonlight
    https://sitecoder.blogspot.com
    Ставите среднюю по рынку на выбранное направление и ждёте заказов.
    Много - поднимаете ставку.
    Мало - опускаете ставку.
    Всё предельно просто!
    Ответ написан
    Комментировать
  • После изменения файла PHP, данные на сайте долго обновляются. Хостинг REG.RU. В чем проблема?

    @DimonWebb
    Какое кеширование стоит на сервере, можно посмотреть, вызвав phpinfo().
    В моем случае помогло добавление в .htaccess строки:
    php_flag opcache.enable Off
    Ответ написан
    2 комментария
  • Как сделать уведомление на email клиенту при изменении поля "Статус заказа" в базе данных mysql с помощью php?

    lightalex
    @lightalex
    Есть несколько вариантов:
    1) При изменении статуса сразу же слать сообщение
    2) Создать таблицу "для уведомления об изменении статуса". При изменении статуса добавлять запись в эту таблицу. А через CRON организовать периодический вызов php скрипта отсылающего сообщения по данным из таблицы
    3) Создать поле "уведомить о статусе". И также как во втором пункте через CRON запускать php скрипт который будет выбирать заказы, где стоит флажок в данном поле и отсылать данные
    Разумеется лучше всего первое, но тут не предусмотрен контроль количества писем, в отличии от второго и третьего вариантов
    Ответ написан
    Комментировать
  • Как сделать уведомление на email клиенту при изменении поля "Статус заказа" в базе данных mysql с помощью php?

    Vinstrok
    @Vinstrok
    Веб разработчик
    самое разумное это дописать метод отправки уведомления клиенту в том же скрипте где меняется сам статус заказа
    Ответ написан
    Комментировать