Задать вопрос
  • Как сделать сайт на 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 комментариев
  • Как купить ACF Pro из России?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    На ggsel можно купить одноразовую виртуалку с суммой в баксах или евро. Тебе дадут данные (номер-дата годности-cvc) и даже имя и некоторые реквизиты, нужные для оплаты в штатах сгенерят. Порно только оплатить нельзя. Я так в RAID донаты делаю.

    Правда там курс $1 = 150 руб примерно. И еще комиссия платежной системы есть.
    Ответ написан
    2 комментария
  • Как купить ACF Pro из России?

    @Belvarm
    Java TeamLead, интеграционные решения
    Получить не российскую карту и оплатить, либо найти посредника предоставляющего услуги оплаты сервисов. Конечно это будет дороже чем сама цена подписки.
    Ответ написан
    Комментировать
  • Как анализировать востребованность технологии?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Обратил внимание, что последние пару лет все чаще слышу про fastapi, насколько он уже созрел на рынке? "Слышать" это одно (субъективщина, хайп и все такие), может есть какие-то метрики, как определять востребованность конкретной технологии относительно другой, например django и fastapi

    Я придерживаюсь 2х критериев для ЯП, которые используются в малых-средний проектах, это сайт с поиском работы (hh), и фриланс площадки. Вот инфа по hh на 10.03.2025:

    Без взаимоисключений:
    - Django: 184 вакансии.
    - FastAPI: 172 вакансии.

    Взаимоисключающие django и fastapi:
    - Django: 100 вакансий.
    - FastAPI: 89 вакансий.

    Всего пару лет назад FastAPI составлял 30% от django, сейчас же они сравнялись (тенденция на лицо), на фрилансе FastAPI так же часто мелькает, а учитывая, что это относительно django новая технология, то на него обязательно стоит обратить внимание, т.к. вполне вероятно, что его рост на рынке продолжится.

    FastAPI изначально идет практически голым по функциональности, в отличие от django, т.е. разработчик должен иметь более высокую квалификацию, чтобы выполнять те же самые задачи. Скорее всего, это отразится на стоимости конечного проекта, хотя и производительность проекта будет сильно больше.
    Ответ написан
    1 комментарий
  • Как изменить html при помощи jquery?

    @alexalexes
    Выкидываем Jquery. Где видим $() - подразумеваем, что это оператор маскирует в себе document.querySelector() - для извлечения одного элемента, и document.querySelectorAll() для извлечения коллекции элементов.
    А вот как получить li с определённым классом? Т.е. получить li допустим с классом li7.

    Так, только нужно уточнить, из какого списка ul:
    let li1_li7 = document.querySelector('ul.ul1 li.li7');
    let li2_li7 = document.querySelector('ul.ul2 li.li7');

    Как ни странно, учим синтаксис CSS-селекторов, чтобы не задавать этих вопросов.
    Теперь надо заменить к примеру span1 на span3. Получить то я получаю.

    В вашем случае для замены чего-либо в li элементах с определенным классом:
    let li1_span_title = document.querySelector('ul.ul1 li.li1 span.title');
    let li2_span_title = document.querySelector('ul.ul2 li.li1 span.title');
    li1_span_title.innerHTML = li2_span_title.innerHTML;

    Если что-то нужно делать с неопределенным числом списков ul, тогда условие задачи существенно меняется, и код тоже существенно изменится. Вот тогда вы будете что-то перебирать в нескольких списках циклом, возможно, несколькими вложенными циклами.
    Ответ написан
    5 комментариев
  • Какой SEO-плагин поставить для для Wordpress в 2025м?

    Mike_Ro
    @Mike_Ro Куратор тега Поисковая оптимизация
    Python, JS, WordPress, SEO, Bots, Adversting
    Переезд на зарубежные сервера чреват потерей позиций сайта (тестировала, так и случилось).

    От смены сервера позиции не проседают, что то другое повлияло.
    Какой SEO-плагин поставить для для Wordpress в 2025м?

    Тот же, что и в 24 году - Yoast SEO или All in One SEO Pack.
    Ответ написан
    3 комментария
  • Как правильно написать техническое задание для разработки одностраничного вебсайта?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    На странице пациент вводит 30 значений в соответствующие 30 ячеек. На сервере значения обрабатываются и выводится результат. (Не знаю, будет ли это называться второй страницей сайта?)

    Обычный серверный яп, например python/php:
    1. Рендер обычной html страницы.
    2. Форма, которая отправляет данные при submit.
    3. Сервер принимает данные из п2 и возвращает результат в виде той же страницы из п1, но уже с блоком данных из п2.

    Если на JS:
    1. Форма с 30 полями.
    2. JS отправляет форму при submit на сервер, показывая имитацию загрузки для пользователя (чтобы он не бздел).
    3. Сервер обрабатывает данные и возвращает результат.
    4. JS обновляет нужный блок на той же странице с теме данными, которые пришли из п2-п3.
    Где, на каком "бюджетном сервере" лучше размесить первую страницу?

    На любом, shared или vds сервере, стоимость там обычно 200-400р/мес.
    На каком сервере разместить обработку защищенного алгоритма (тот который обрабатывает 30 значений)?

    На том же, только подключите бесплатный https сертификат, например letsencrypt.
    Насколько целесообразна регистрация пользователей сразу или дать возможность бесплатно провести тест работы алгоритма? И как сделать абонентскую плату 100 руб в месяц?

    Проведите А/Б тестирование.
    Сколько будет стоить разработка такого сайта?

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

    Обязательно разместите информацию о политике обработки персональных данных и пользователь должен с ними согласиться, либо рано или поздно вас настигнет что то не очень приятное..
    Ответ написан
    5 комментариев
  • Есть ли в питоне файл проекта?

    Mike_Ro
    @Mike_Ro Куратор тега Python
    Python, JS, WordPress, SEO, Bots, Adversting
    Нет такого, единственное что есть зрелое, так это pyproject.toml и poetry.lock (poetry), в котором описывается версия python и необходимых библиотек для текущего проекта. А от циклических импортов можно спастись лишь руками, заранее грамотно проектируя проект и вынося нужный функционал в модули и пакеты.
    Ответ написан
    1 комментарий
  • Метод разработки и обновления сайта?

    Mike_Ro
    @Mike_Ro Куратор тега JavaScript
    Python, JS, WordPress, SEO, Bots, Adversting
    Все зависит от организации работы в конкретной конторе и конкретного разработчика, но лично у меня работает следующий подход:
    1. Пишем начальное тз, минимальный необходимый перечень.
    2. Говнокодим на основание п1 по принципу - "сделать быстро и чтобы работало по тз".
    3. Пушим п2 в гит и разворачиваем сайт (или компонент на сайте).
    4. Записываем фидбэк о компоненте, что не работает, как хотелось бы чтобы работало итп. Если это не критические замечания (безопасность или что то основное не работает), то откладываем изменения на месяц, квартал или год.
    5. При накопление критической массы замечаний в п4 (ну или у Вас просто не осталось задач на настоящий момент) - добавляем рефакторинг п3 в очередь задач.
    6. Повторяем 3-6 пункты до бесконечности.

    При данном режиме работы решается сразу 3 задачи:
    - Не требуется детальное тз на старте, в котором все равно не удастся предвидеть все наперед, соответственно сокращается общее время разработки и его стоимость.
    - Сайт или компонент сайта выпускается в релиз очень быстро, а значит решает задачу бизнеса так же быстро.
    - Прозрачный и прогнозируемый по срокам и стоимости режим релизов.

    Важное уточнение!

    Схема с минимальным ТЗ и говнокодом работает лишь с теми заказчиками, которым Вы подробно разъяснили, почему сроки и стоимость ниже, почему за каждую "хотелку" не указанную в тз придется доплачивать, и почему необходим рефакторинг.

    Идеальный вариант, донести до заказчика мысль, что проект будет требовать постоянного финансирования (в определенном ежемесячном объеме) на разработку новых или рефакторинг старых компонентов. В таком случае у Вас всегда будет под рукой разработчик, который сможет оперативно и за привычную стоимость решить поставленную задачу, который уже привык работать в таком режиме и ему не нужно лишний раз объяснять одно и то же.
    Ответ написан
    Комментировать
  • Как пофиксить пустое пространство при переносе строки?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    только так:

    <div class="items__item">Длинное&nbsp;описание&nbsp;на 11111111</div>

    .items {
      width: min-content;
    }
    Ответ написан
    Комментировать
  • Как посадить сайт созданный с помощью webpack на wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Возможно ли это?

    Оо, это Вы по адресу, чего изволите?
    - Обычная статика без шаблонизатора.
    - Статика с шаблонизатором.
    - Статика с шаблонизатором и внедрением react.
    - React фронт без api.
    Как мне это сделать я очень сильно запутался и ничего не понимаю. Возможно ли это?

    Возможно, необходимо:
    1. Собрать статику.
    2. Перебить пути до изображений (если используется шаблонизатор).
    3. Срезать шапку и подвал у каждого html из п1.
    4. Конвертировать п1 и п3 в php файлы.
    5. Врезать wp/php код из п4.
    6. Врезать wp/php код с метатегами в header.php.
    7. (опционально) встряхнуть (tree-shaking) css и js файлы, вырезав весь не используемый код.
    8. (опционально) произвести оптимизацию статики, не только вес, но и размер изображений под разные размеры дисплеев устройств.
    Мне хочется посадить сайт созданный с помощью webpack

    Webpack не создаёт сайт, а собирает.

    Эта тема очень обширна, нужен более точный вопрос.
    Ответ написан
    5 комментариев
  • Индексация страниц с переадресацией в гугле?

    pro100taa
    @pro100taa
    Гугл может выпендриваться. Писать, что переадресация, а на самом деле он считает страницы малозначительными т. к. нет контента и они по сути являются метками разводящими. Хотя очень часто он метки индексирует.

    Попробуйте тексты какие-нибудь добавить.

    И надо определиться: вы хотите продвижения этих страниц чтобы они трафик привлекали? Если не собираетесь их продвигать, то лучше закрыть от индексации.
    Ответ написан
    Комментировать
  • Индексация страниц с переадресацией в гугле?

    я бы сделал так:
    1) проверил ответ сервера для подборок - вдруг там на самом деле переадресация используется, должен быть ответ "200", естественно.
    2) добавил бы ссылки на подборки в google вручную - то есть заставил бы его переиндексировать их.
    обычно на до подождать пару недель. и потом посмотреть - может страницы будут уже в индексе.
    Ответ написан
    Комментировать
  • Как и откуда формируются страницы ?postID в wordpress?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    1. При переходе на https://easyvisavdk.ru/stranica-vizy/ - выдает пустую страницу, но с кодом 200.
    2. При переходе на https://easyvisavdk.ru/stranica-vizy/?postID=1238:
    2.1. Вначале сервер отдает страницу "Процесс оформления визы в Германию" (да да, мы загружали Мексику).
    2.2. Затем, происходит динамическая замена контента на Мексику. Для этого, в п2.1. предусмотрен div#usa_visa, который заменяется контентом в скрипте https://easyvisavdk.ru/wp-content/themes/visa-lend... на 189 строке. Данные запрашиваются из API WP по адресу https://easyvisainc.ru/wp-json/wp/v2/posts/1238.
    КартинкО

    66b0aaddb8e90296004489.png

    66b0ab0c45c81425402865.png

    Т.к. не видно самих постов в админке, то предположу один из вариантов:
    - Используется всего 1 страница со слагом stranica-vizy, где с помощью ACF полей созданы данные под каждую страну, которые потом динамически заменяют основной контент страницы.
    - Используется какой то CPT (Custom Post Types) со своими записями, тогда надо искать плагин, который взаимодействует с такими записями.
    - Данные зашиты в файлы, без возможности изменения из админки.

    P.S. SEO будет хромать!

    P.P.S. Точно нужно писать в консоль все данные о записи?
    КартинкО
    66b0ab4881c55369561823.png

    Ответ написан
    1 комментарий
  • Как изменить текст вукомерс при предложении войти в личный аккаунт на сайте (скрин прикрепляю)?

    @Refguser
    Решения для бизнеса: от создания ИМ до...
    Все фразы на не английском - это переводы. Соответственно изменять их можно в переводах.
    Loco Translate в руки и.. кастомное расположение лангпака (Индивидуальный в loco)
    Ответ написан
    Комментировать
  • Как добавить плитку тегов в записи wordpress?

    @Kypidon4ik
    Фрилансер, Wordpress developer
    Привет.
    Тебе нужно их выводить через the_tags()
    Ну а далее стилизовать так, как в макете
    Ответ написан
    1 комментарий
  • Как вывести определенный пост на страницу?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Ответ написан
    Комментировать
  • Как воспроизвести видео с youtube в wordpress?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    https://github.com/MuhammadSaim/tubecatcher - a wordpress plugin to download videos from youtube.
    Ответ написан
    Комментировать
  • Как сделать тайтл записи в формате: Название - Рубрика?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Попробуйте так:
    add_filter('document_title_parts', 'test', 10, 1);
    
    function test($title) {
        if (is_single()) {
            $categories = get_the_category();
            if (!empty($categories)) {
                $title['title'] .= ' — ' . $categories[0]->name;
            }
        } elseif (is_category()) {
            $title['title'] = single_cat_title('', false);
        }
    
        return $title;
    }
    Ответ написан
    Комментировать
  • Перезд разных сайтов к одному провайдеру. Организация инфраструктуры?

    Mike_Ro
    @Mike_Ro Куратор тега WordPress
    Python, JS, WordPress, SEO, Bots, Adversting
    Всего пока 4 сайта, на разных CMS (Wordpress, Joomla).

    1. С чего нужно начинать, чтобы подготовить сайт(ы) к переезду?

    Любой хостинг (shared с поддержкой MySQL и PHP) или VDS/DS.
    2. Что нужно подготовить на новом пустом сервере?

    Что такое "пустой сервер"? Если это VDS/DS, то гуглим, если это shared хостинг, то "создать сайты" (так обычно называется манипуляция у хостера, которая регистрирует место для расположения файлов для сайта) и MySQL БД для сайтов.
    3. Нужен ли для каждого сайта (их четыре) свой виртуальный сервер (VM)?

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

    Падение хостера достаточно редкое явление, чаще происходит дедос, который как раз и блокирует доступ к сайтам. Если критически важно, чтобы одновременно не легли все сайты, то нужны физически разные сервера и возможно, у разных хостеров.
    5. ... какие советы дадите

    Задавать более конкретные вопросы.
    Ответ написан
    Комментировать