Разработка на WordPress

Yandex CDN — один из самых частых технических запросов к материалам GLM-DEV: люди ищут ускорение сайта через облачную сеть доставки. Отдельный пласт вопросов — именно WordPress: как заменить ссылки на...Yandex CDN — один из самых частых технических запросов к материалам GLM-DEV: люди ищут ускорение сайта через облачную сеть доставки. Отдельный пласт вопросов — именно WordPress: как заменить ссылки на CDN, почему картинки всё ещё с origin и как отключить *.yandexcloud.net, если что-то пошло не так. Ниже — практический слой поверх общего руководства по CDN: что сделать на WP, чтобы CDN реально работал, а не «был включён в кабинете». Полные правила кэша и примеры конфигов — в полном гайде по Yandex Cloud CDN. Зачем WordPress вообще CDN CDN кэширует статику ближе к пользователю: изображения, CSS, JS, шрифты, иногда видео-превью. Это бьёт в: LCP (особенно hero-картинки и крупные фото услуг); TTFB статики и стабильность при всплеске Директа; разгрузку origin-сервера, когда одновременно открывают много страниц с медиа. CDN не лечит медленный PHP, тяжёлую тему, неоптимизированные запросы к БД и «зоопарк» плагинов. Сначала кэш страниц и оптимизация изображений, потом CDN — иначе вы ускоряете доставку «кирпичей». Когда CDN особенно оправдан: аудитория из разных городов/регионов; много медиа (клиники, каталоги, портфолио); рекламный трафик с мобильных устройств; origin на одном VPS, который уже упирается в отдачу статики. Схема подключения: по шагам Создать ресурс CDN в Yandex Cloud, origin — ваш домен/сервер (или бакет Object Storage, если статика там). Настроить HTTPS и CNAME (например, cdn.example.ru) либо использовать выданный хост облака — для продакшена обычно свой CNAME. Задать правила кэша для статики: расширения, TTL, поведение query string. Проверить, что origin отдаёт корректный Cache-Control / Expires для файлов, которые должны кэшироваться. На WordPress переписать URL статики на CDN-домен (плагин, фильтры или контент). Проверить заголовки HIT / Age / Cache-Control на повторном запросе. Прогреть ключевые URL (главная, услуги, hero) и замерить PageSpeed / полевые метрики на мобилке. Не включайте CDN «на всё подряд», включая HTML личного кабинета и ответы с персональными cookie — получите странные сессии и устаревшие экраны. Как заменить ссылки на CDN в WordPress Есть три рабочих подхода. Часто комбинируют 2 и 3. 1. Плагин CDN / оптимизации (если уже в стеке: WP Rocket, LiteSpeed, отдельный CDN-плагин и т.п.). Плюс — быстро. Минус — ещё один слой абстракции и риск конфликта с page cache. 2. Константы и фильтры темы / mu-plugin. Типичная идея: для вложений, стилей и скриптов подменять origin на CDN-хост. Упрощённый пример (адаптируйте под свой CDN-домен и исключения): /** * Подмена URL медиа и ассетов на CDN. * Не копируйте в прод без staging и списка исключений. */ add_filter('wp_get_attachment_url', 'glm_cdn_rewrite_url'); add_filter('style_loader_src', 'glm_cdn_rewrite_url', 10, 1); add_filter('script_loader_src', 'glm_cdn_rewrite_url', 10, 1); function glm_cdn_rewrite_url($url) { if (is_admin() || empty($url)) { return $url; } $cdn = 'https://cdn.example.ru'; $host = home_url(); // Не трогаем preview и временные query if (strpos($url, 'preview=true') !== false) { return $url; } return str_replace($host, $cdn, $url); } На практике часто нужны исключения: админка, preview, некоторые плагины, signed URL, карты, виджеты с чужих доменов. Отдельно проверьте srcset и WebP-версии — иначе LCP-картинка останется на origin, а мелкие превью уйдут на CDN. 3. Замена только в контенте (фильтр the_content / the_excerpt или разовая миграция в БД). Помогает, если в постах захардкожены абсолютные URL на старый домен. add_filter('the_content', function ($content) { $cdn = 'https://cdn.example.ru'; $host = home_url(); return str_replace($host . '/wp-content/uploads', $cdn . '/wp-content/uploads', $content); }); Важно: после смены домена CDN сделайте purge и проверьте страницы услуг/блога, не только главную. Иначе редактор увидит «старое» из page cache, а пользователь — смесь origin и CDN. Что проверить после включения (HIT и заголовки) Картинка/CSS открываются с CDN-домена в HTML, не только «ресурс создан в облаке». В ответе есть признак HIT после повторного запроса (зависит от заголовков провайдера: статус кэша, Age и т.п.). Нет mixed content (http на https-странице). WebP / ресайзы WP / srcset тоже идут через CDN. Формы, AJAX, админка и preview не сломались. LCP главного экрана реально улучшился на мобилке (лаборатория + поле, если есть). После деплоя CSS/JS purge срабатывает: пользователи не видят «сломанную вёрстку». Если URL уже на CDN, а HIT нет — смотрите: Cache-Control: private/no-store на origin; cookies, которые делают ответ «персональным»; query string (?ver=...) и правила игнора/учёта параметров; неверный origin или редиректы origin → www/https; правило CDN не матчит путь /wp-content/ или нужное расширение. Как отключить Yandex Cloud CDN без боли Запрос «cloud cdn yandex.net как отключить» обычно значит: сайт отдаёт старые URL, CDN мешает отладке или ресурс больше не нужен. Верните origin-URL в WordPress (отключите плагин/фильтр замены, уберите CDN-домен из настроек). Очистите кэш WP (page cache + object cache при наличии) и CDN (purge). Проверьте HTML: больше нет yandexcloud.net / вашего CNAME на статике. Прогоните ключевые страницы, формы, корзину/запись, админку. Только после этого остановите или удалите ресурс в кабинете облака. Резкое отключение только в облаке при живых CDN-ссылках на сайте даёт битые картинки и стили — поэтому порядок важен. Если часть URL всё ещё в старых постах, сделайте точечную замену в контенте или временный редирект со старого CDN-хоста (если он ещё жив). Типичные ошибки на WordPress CDN включили, URL не переписали — эффекта нет. Кэшируют HTML с Set-Cookie — «странное» поведение личного кабинета и корзины. Два кэша (плагин + CDN) без понимания, кто что хранит. Забыли purge после деплоя CSS — «у меня не обновились стили». Тянут через CDN админку и preview. Ожидают, что CDN ускорит медленный TTFB PHP. Переписали только wp_get_attachment_url, забыли srcset / content. Смешали http и https, получили mixed content на рекламных посадочных. Связка с рекламой, SEO и Core Web Vitals CDN — часть подготовки к Директу и Core Web Vitals, а не отдельная «галочка для SEO». Имеет смысл: ускорить статику через CDN; сжать hero и отложить виджеты (чат, пиксели, тяжёлые карты); проверить посадочные URL из объявлений на мобилке; смотреть LCP/INP/CLS до и после, а не только «баллы PageSpeed». Если готовите запуск рекламы, CDN хорошо стыкуется с чеклистом готовности посадочных: скорость, стабильность вёрстки, рабочие формы. Полезный соседний материал — Core Web Vitals перед запуском Директа: CDN там не замена оптимизации, а один из рычагов. Для поискового продвижения статья закрывает частотный запрос yandex cdn и длинные хвосты про WordPress-замену ссылок и отключение — то, что уже даёт показы в Вебмастере. Помните: CDN усиливает хороший фронт. Если тема тащит 2 МБ скриптов до LCP, облако не сделает из этого быстрый сайт — только чуть быстрее доставит тяжёлые файлы. Object Storage vs origin-сайт: что выбрать Частый вопрос: отдавать медиа с сервера WordPress или вынести в Object Storage и повесить CDN поверх бакета. Origin = сайт — проще старт, WP продолжает писать в uploads, меньше инфраструктуры. Минус: origin всё ещё отдаёт файлы при MISS и при прогреве. Origin = бакет — удобно при большом объёме медиа и желании разгрузить VPS. Минус: нужна синхронизация загрузок (плагин/хук), аккуратная политика публичного доступа и отдельные правила кэша. Для большинства сайтов услуг на WordPress достаточно CDN поверх origin-сайта + перепись URL. Бакет имеет смысл, когда медиа действительно давят диск/трафик сервера или медиаконтур общий для нескольких приложений. Что делать при деплое и смене темы После обновления темы, критического CSS или массовой замены изображений: задеплойте файлы на origin; сделайте purge CDN по путям или полный (если объём небольшой); очистите page cache WordPress; откройте посадочную в режиме инкогнито и проверьте Network: новые хэши/версии файлов и HIT после второго запроса; проверьте LCP-элемент: это всё ещё то же изображение/блок, что вы оптимизировали. Без этой дисциплины команда «CDN тормозит обновления» появляется через неделю после запуска — хотя виноват не CDN, а отсутствие purge в процессе релиза. Практический мини-чеклист GLM-DEV Origin и HTTPS в CDN настроены, CNAME резолвится. Правила кэша покрывают /wp-content/uploads, CSS, JS, шрифты. На WP включена перепись URL (и проверена на staging). Повторный запрос статики даёт HIT / растущий Age. Админка и preview на origin. Есть понятный план rollback (как отключить без битых URL). После деплоя — процедура purge. Замер LCP на ключевых посадочных до/после. Краткий итог Связка WordPress + Yandex Cloud CDN работает, когда настроены origin, HTTPS, правила кэша и перепись URL статики. Проверяйте HIT, не ломайте админку и умейте безопасно отключить CDN. Ускорение статики усиливает, но не заменяет нормальный хостинг, кэш страниц и чистый фронт — особенно перед Директом и работой над Core Web Vitals. Нужна настройка CDN под ваш WP или аудит скорости — можно обратиться в GLM-DEV. Если нужен глубокий разбор правил кэша в облаке — начните с полного руководства по Yandex Cloud CDN.
Yandex CDN — один из самых частых технических запросов к материалам GLM-DEV: люди ищут ускорение сайта через облачную сеть доставки. Отдельный пласт...
Заявка Contact Form 7 приходит в Telegram, MAX и WhatsApp — плагин CF7 Messengers

Сайт на WordPress собрал заявку через Contact Form 7, письмо ушло на почту — и дальше тишина. Менеджер в Telegram, продажи в WhatsApp, кто-то уже сидит в MAX. Пока письмо...Сайт на WordPress собрал заявку через Contact Form 7, письмо ушло на почту — и дальше тишина. Менеджер в Telegram, продажи в WhatsApp, кто-то уже сидит в MAX. Пока письмо доезжает или падает в спам, человек на том конце уже пишет конкуренту. Задача не в том, чтобы «заменить CF7». Форма как была, так и остаётся. Нужен второй канал: та же отправка — сразу в мессенджер, где вы реально отвечаете. Ниже — рабочая схема 2026 года: зачем мессенджер сильнее почты, как настроить Telegram за несколько минут и когда имеет смысл открывать MAX, WhatsApp, VK и Одноклассники. Инструмент, на котором собрана эта схема, — плагин CF7 Messengers: Free закрывает Telegram без срока, Pro добавляет остальные каналы одним шаблоном и бессрочным ключом на один домен. Почему заявка в мессенджере быстрее письма из CF7 Contact Form 7 из коробки умеет одно: отправить письмо. Это нормально как резерв и как юридический след. Как операционный канал — слабо. письмо легко уходит в спам или «Промоакции»; задержка SMTP на дешёвом хостинге — минуты, не секунды; телефонные уведомления о новой почте почти никто не держит включёнными; команда уже живёт в чатах, а не в ящике info@. Сообщение в Telegram или MAX приходит как обычный чат: звук, превью, можно перезвонить, пока человек ещё на сайте. Для рекламы в Директе это не «удобство», а цена лида: SLA ответа в первые минуты сильно бьёт в конверсию в сделку. Почту при этом лучше не выключать. Мессенджер — дубль туда, где отвечают. Письмо — страховка, если API канала моргнул. Что Contact Form 7 не умеет сам У CF7 нет встроенной отправки в Telegram, MAX или WhatsApp. Есть хуки после успешной отправки (wpcf7_mail_sent) — на них и вешаются плагины и самописный код. Типичные обходные пути, которые мы встречаем на аудитах: Переслать письмо в Telegram через IFTTT / почтовый бот. Дёшево, но хрупко: задержка, кривая вёрстка, нет теста соединения, нет фильтра форм. Zapier / Make / Albato. Удобно на этапе эксперимента. Минус — подписка, ещё одна точка отказа, данные уезжают на сторону. Самописный хук на Bot API. Гибко, но каждый канал — свой код, свои ошибки SSL, свои «почему молчит». Отдельный плагин только под Telegram. Закрывает один мессенджер. Как только продажи просят WhatsApp или MAX — начинается зоопарк. Если форм несколько, команда в разных мессенджерах и вы не хотите платить SaaS за «уведомления из форм», разумнее один плагин с общим шаблоном. Именно так устроен CF7 Messengers. CF7 Messengers: что это и чем отличается от «ещё одного бота» CF7 Messengers — плагин для WordPress, который забирает успешную отправку Contact Form 7 и дублирует её в выбранные каналы. Он не заменяет CF7 и не рисует свои формы. Не создаёт ботов за вас: вы подключаете уже существующие API (Telegram Bot, MAX Bot, WhatsApp Cloud API, ключи сообщества VK и ОК). Важные ограничения, которые лучше знать сразу: нужны WordPress 5.8+, PHP 7.4+ и установленный Contact Form 7; Pro — дополнение, не отдельный плагин: сначала Free, потом ключ во вкладке «Лицензия»; плагин использует публичные API и не аффилирован с Telegram, Meta, VK и другими сервисами; ключ Pro привязан к одному домену навсегда, перенос на другой сайт не предусмотрен. Подробности, тарифы и скачивание Free — на странице CF7 Messengers. Free и Pro: что реально входит Free не «обрезанный Telegram на 10 заявок». Реальные заявки в Telegram уходят без ключа и без срока. Pro нужен, когда менеджеры сидят не только в Telegram. Возможность Free Pro Telegram: реальные заявки, без срока Да Да Тест соединения, шаблон, подписи полей Да Да Фильтр форм Contact Form 7 Да Да IP, страница, браузер, источник перехода Да Да MAX (официальный Bot API) — Да WhatsApp Cloud API — Да VK и Одноклассники — Да Лицензия GPL, бесплатно 1 990 ₽ · 1 домен · бессрочно Каналы включаются по отдельности. Можно оставить только Telegram, только MAX или любую комбинацию. Текст заявки один — не нужно настраивать пять шаблонов. Четыре шага до первой заявки в Telegram Типовой запуск Free занимает несколько минут, если бот уже есть. Если бота нет — прибавьте время на @BotFather. 1. Поставьте Free и не забудьте Contact Form 7 Скачайте ZIP с страницы плагина, загрузите в «Плагины → Добавить новый → Загрузить» и активируйте. Pro без Free не заработает: это аддон, отдельного меню у него нет. Проверьте, что на сайте реально стоит Contact Form 7 и хотя бы одна форма публикуется шорткодом. Если форма «есть в админке», но не выведена на странице — тестировать будет нечего. 2. Подключите бота и chat ID Короткий чеклист Telegram: Создайте бота у @BotFather, скопируйте токен. Напишите боту /start в личку или добавьте его в группу/канал и дайте право писать сообщения. Узнайте chat ID (личный чат, группа или канал — разные ID, у групп часто со знаком минус). Вставьте токен и ID в CF7 Messengers → Telegram. Нажмите «Тест соединения». Тест — не косметика. Он показывает, жив ли токен, верный ли чат, проходит ли SSL. Ошибка должна всплыть в админке, а не после первой настоящей заявки с рекламы. 3. Настройте шаблон сообщения Один шаблон на все включённые каналы. WhatsApp получает упрощённую текстовую версию сам: Cloud API не любит HTML. Плейсхолдеры, которые стоит заложить с первого дня: {fields} — все заполненные поля формы; {form_title} и {form_id} — какая форма сработала, если их несколько; {time}, {site_url}, {page_url} — когда и с какой страницы; {ip}, {browser}, {referer} — если включили доп. данные о визите. Подписи полей лучше задать человеческим языком. В чат должно уходить «Телефон», а не your-tel. Это мелочь, из-за которой менеджер не путает заявки с квиза и с «Перезвоните мне». Рабочий каркас шаблона: {form_title} {fields} Время: {time} Страница: {page_url} Сайт: {site_url} 4. Включите только нужные формы Фильтр общий: выбранные формы уходят во все включённые каналы. Не гоните в Telegram служебные формы (подписка, «скачать прайс», внутренние тесты) — зашумите чат и начнёте игнорировать уведомления. Отдельно решите, нужны ли IP, браузер и referer. Для разбора «откуда пришёл человек» это полезно. Для политики персональных данных — это уже обработка ПДн: включили — отразите в политике и в тексте согласия у формы. Куда ещё слать заявки: MAX, WhatsApp, VK, ОК Free закрывает сценарий «владелец сам в Telegram». Pro нужен, когда каналов несколько или Telegram в компании не основной. MAX Официальный Bot API: токен и chat_id. Плагин подскажет ID чата — не нужно гадать по документации. Имеет смысл, если менеджеры уже переехали в MAX и не хотят держать второй мессенджер «только ради заявок». WhatsApp Cloud API Это не «подключили номер и всё». Нужен кабинет Meta, Cloud API, шаблоны/окно переписки по правилам платформы. Заявка уходит менеджеру обычным текстом. Подходит отделам продаж, которые живут в WhatsApp и не открывают почту вообще. Не путайте Cloud API с неофициальными «накрутками на WhatsApp Web»: они ломаются, нарушают правила и могут стоить номера. VK Сообщение от имени сообщества в диалог администратора. Удобно, если заявки и так разбирают из кабинета VK, а сайт — только витрина. Нужны ключи сообщества, не личный токен «на всякий случай». Одноклассники Заявка публикуется постом в группу — схема для тех, кто отвечает клиентам в ОК, а не в почте. Если группа модерируется вручную, договоритесь, кто закрывает такие посты, иначе заявки повиснут как обычный контент. Как выглядит нормальный поток заявки Скучная и правильная цепочка: Человек отправил форму Contact Form 7, валидация прошла. CF7 отправил письмо (если почта включена). Плагин собрал поля, подписи, время, URL страницы. Сообщение ушло в каждый включённый канал по своему API. Ошибка канала не должна «ронять» саму форму: пользователь видит успех, вы видите лог/тест. Если лиды потом должны оказаться в amoCRM или Bitrix24, мессенджер не заменяет CRM. Это разные слои: чат — чтобы успеть ответить, CRM — чтобы не потерять статус и UTM. Рабочую схему «форма → сделка» мы разбирали отдельно: Contact Form 7 → amoCRM и Bitrix24. Типичные ошибки, из-за которых «в чат ничего не приходит» Бот не добавлен в группу или без права писать. Тест в личку проходит, заявки в группу — нет. Неверный chat ID. Канал, супергруппа и «личный чат с ботом» — разные сущности. Сначала тест, потом реклама. Хук повесили до успешной отправки. Форма показала ошибку валидации, а в Telegram уже улетело пустое. CF7 Messengers забирает состоявшуюся отправку, не клик по кнопке. Фильтр форм выключил ту самую форму, которую тестируете на лендинге. На хостинге режут исходящий HTTPS к api.telegram.org / Cloud API. Тест соединения это обычно показывает сразу. Поставили только Pro без Free. Аддон не поднимется. Ждут заявки в WhatsApp, не собрав Cloud API. Токен «из зелёного приложения на телефоне» сюда не подходит. Отдельно: кастомная валидация CF7. Если вы дописывали свои правила к полям, убедитесь, что они срабатывают до отправки, а не после. Иначе в чат попадут заявки, которые на сайте «как будто не ушли». База по хукам валидации — в статье кастомная валидация Contact Form 7. Чеклист перед запуском рекламы Имеет смысл прогнать до Директа, не после первых сгоревших кликов: тестовая заявка с телефона приходит в чат за несколько секунд; «Тест соединения» зелёный по каждому включённому каналу; в сообщении есть имя, телефон, какая форма и URL страницы; служебные формы отфильтрованы; почта CF7 всё ещё уходит — как резерв; цель в Метрике/Директе — успешная отправка, не клик по кнопке; в политике и чекбоксе согласия отражены мессенджеры и опциональный IP, если его включили; менеджер знает, из какого чата брать лид и какой SLA. Скорость ответа менеджера не спасёт медленную посадочную. Перед бюджетом пройдитесь по чек-листу перед запуском рекламы и по Core Web Vitals. Кому Free достаточно, а кому брать Pro Ситуация Что брать Один человек, отвечает сам, живёт в Telegram Free Нужен MAX как основной рабочий мессенджер Pro Продажи в WhatsApp, владелец в Telegram Pro, два канала Заявки разбирают из сообщества VK или группы ОК Pro Несколько сайтов / доменов Отдельный ключ на каждый домен Нужна воронка, статусы, UTM в карточке Мессенджер + CRM, не «вместо» Pro — разовый платёж 1 990 ₽, один домен, без подписки. После оплаты на email приходят ключ и кассовый чек. Активация: CF7 Messengers → Лицензия. Условия — оферта, пользовательское соглашение и политика возврата на странице продукта. Краткий итог Связка Contact Form 7 → Telegram в 2026 году — базовый минимум, если вы вообще принимаете заявки с сайта. Письмо слишком легко потерять. Free CF7 Messengers закрывает этот минимум без ключа и без срока: бот, chat ID, шаблон, тест соединения, фильтр форм. Pro имеет смысл, когда команда сидит в MAX, WhatsApp, VK или ОК и вы не хотите собирать пять разных плагинов. Один шаблон, каналы включаются по отдельности, ключ на домен без ежемесячной подписки. Скачать Free и купить Pro можно на glm-dev.ru/cf7-messengers. Если нужно внедрить под ключ — формы, валидацию, мессенджеры и передачу в CRM — этим как раз занимается GLM-DEV.
Сайт на WordPress собрал заявку через Contact Form 7, письмо ушло на почту — и дальше тишина. Менеджер в Telegram, продажи в...
Contact Form 7 → amoCRM и Bitrix24: рабочая схема передачи лидов

Сайт приносит заявки, а отдел продаж работает в CRM. Между ними часто — почта, Excel или «перешлите, пожалуйста, скрин формы». На этом этапе теряются скорость, UTM и часть лидов. Contact...Сайт приносит заявки, а отдел продаж работает в CRM. Между ними часто — почта, Excel или «перешлите, пожалуйста, скрин формы». На этом этапе теряются скорость, UTM и часть лидов. Contact Form 7 остаётся одним из самых частых способов собрать заявку на WordPress. amoCRM и Bitrix24 — самые частые CRM у малого и среднего бизнеса в РФ. Связка между ними должна быть скучной и надёжной: человек отправил форму → через секунды сделка/лид в воронке с нужными полями. Ниже — практическая схема без воды: что передавать, какими способами, как не сломать аналитику Директа и что проверить перед запуском рекламы. Зачем вообще тянуть CF7 в CRM Почта как «интеграция» ломается в трёх местах: менеджер видит заявку с задержкой; UTM и источник не попадают в карточку; нет единого статуса: кто взял лид, кто забыл. CRM закрывает это: очередь, ответственный, задача «перезвонить за 5 минут», отчёты по источникам. Для SEO и рекламы важно другое: вы начинаете видеть, какие посадочные и ключи реально дают квалифицированные заявки, а не только «отправки формы». Что должно уходить в карточку лида Минимальный набор для услуг / клиники / B2B: Данные Зачем Имя / компания Обращение Телефон Главный контакт Email Если нужен для КП Комментарий / услуга Квалификация Страница отправки Какая посадочная сработала UTM (source, medium, campaign, content, term) Аналитика рекламы ym_client_id / clientID Метрики Сквозная аналитика Дата и время SLA ответа Технический ID заявки Антидубли и отладка Телефон лучше нормализовать (+7…), иначе в CRM появятся дубли «8…» и «+7…». Маску в CF7 настраивайте аккуратно: она не должна ломать мобильный ввод и INP (отзывчивость кнопки). Три рабочих способа интеграции 1. Официальные / готовые плагины и коннекторы. Плюсы: быстрее запуск, меньше кода. Минусы: лишние скрипты на сайте, ограничения по полям, зависимость от обновлений. Подходит для типовой воронки «имя + телефон + комментарий». 2. Вебхук / исходящий запрос при wpcf7_mail_sent. Плюсы: контроль полей, меньше «зоопарка» плагинов, проще логировать ошибки. Минусы: нужна аккуратная разработка и обработка сбоев API. Оптимальный вариант для большинства проектов GLM-DEV. 3. Промежуточный слой (Make, Albato, ApiMonster и аналоги). Плюсы: визуальные сценарии, быстрые правки без релиза. Минусы: подписка, ещё одна точка отказа, иногда задержка. Удобно на этапе теста связки. Правило: чем критичнее лид (медицина, дорогой B2B), тем лучше прямой вебхук с логом и повторной отправкой при ошибке 5xx. Схема для amoCRM Типовой поток: CF7 успешно отправил форму (mail_sent). Бэкенд собирает поля + UTM из cookie/hidden. Создаётся сделка (или контакт + сделка) через API. В примечание — комментарий и URL страницы. Назначается ответственный / задача «связаться». При ошибке API — запись в лог + уведомление админу (не только «тихий fail»). Полезные детали: не создавайте новый контакт на каждый дубль телефона — ищите существующий; источник сделки заполняйте из UTM, а не вручную «сайт»; отдельные воронки под рекламу и под органику упрощают отчётность; тестовые заявки помечайте тегом test, чтобы не портить статистику. Схема для Bitrix24 Логика похожа, меняются сущности: лид или сделка, поля смарт-процесса, открытые линии. На что смотреть: куда писать: лид (входящий поток) или сразу сделка (если квалификация на сайте сильная); пользовательские поля под услугу, филиал, врача, город; роботы: «назначить», «поставить задачу», «написать в чат»; вебхук входящий Bitrix24 проще для старта, чем полноценное приложение — для малого бизнеса часто достаточно. Если уже есть открытые линии и чат на сайте, не дублируйте один и тот же лид из формы и из виджета без правила дедупликации. UTM и скрытые поля в Contact Form 7 Без UTM CRM покажет «заявки с сайта», и вы не поймёте, какая кампания Директа окупилась. Рабочий минимум: На посадочной JS читает UTM из URL и пишет в cookie/localStorage (чтобы сохранить при внутреннем переходе). В CF7 — скрытые поля utm_source, utm_medium, utm_campaign, utm_content, utm_term, landing_page. При отправке значения подставляются в форму и уходят в CRM. В Метрике цель «отправка формы» совпадает с реальной успешной отправкой (после ответа сервера, не по клику на кнопку). Проверьте сценарий: зашёл с UTM → полистал 2 страницы → отправил форму. Метки должны сохраниться. Отдельно заложите согласие на обработку персональных данных и понятный текст у кнопки. Для медицины и финансов это не «галочка для юриста», а часть доверия к форме. Пример логики на стороне WordPress Идея обработчика простая: Хукаемся на успешную отправку CF7. Забираем posted_data и скрытые UTM. Нормализуем телефон. Ищем контакт в CRM по телефону/email. Создаём или обновляем сделку/лид. Пишем примечание с URL и комментарием. Ставим задачу ответственному. Пишем результат в лог (успех / код ошибки API). На продакшене добавьте таймауты, повтор при 429/5xx и защиту от двойного клика. Не вызывайте внешнее API так, чтобы пользователь 15 секунд смотрел на спиннер — лучше быстрый ответ формы и очередь на отправку в CRM, если интеграция нестабильна. Типичные ошибки, из-за которых «лиды не доходят» Интеграция на wpcf7_before_send_mail, а валидация потом падает — в CRM пусто, пользователь видит ошибку. Нет обработки ошибок API — ключ истёк, лиды недели молча терялись. Дубли при повторной отправке — нет идемпотентности / защиты от double submit. Телефон как текст без нормализации — не срабатывает поиск контакта. Тяжёлый плагин интеграции грузится на всём сайте — страдает скорость и Core Web Vitals. Цель в Директе = клик по кнопке, а не успешная отправка — оптимизация рекламы едет в никуда. Разные формы на лендингах без единой схемы полей — в CRM каша. Чеклист перед запуском Директа Тестовая заявка с мобильного создаёт карточку за < 30 секунд. Телефон, имя, страница, UTM на месте. Повторная отправка не плодит 5 сделок. Ошибка API уведомляет вас (почта/Telegram), а не только лог на сервере. Цель Метрики/Директа срабатывает на успех. Скрипты интеграции не блокируют LCP/INP на посадочной. Есть инструкция для менеджера: где брать лид и какой SLA. Скорость сайта и скорость ответа менеджера — две половины одной цены лида. Интеграцию дополняйте подготовкой посадочных: см. Core Web Vitals перед Директом и чек-лист перед рекламой. Плагин или код: что выбрать в 2026 Ситуация Решение Одна простая форма, стандартные поля Коннектор / no-code Несколько форм, услуги, филиалы, антидубли Свой обработчик на mail_sent Частые правки логики маркетологом Make/Albato + строгий контракт полей Высокий бюджет Директа Прямой API + логи + алерты Не ставьте три плагина «на всякий случай». Один надёжный канал лучше зоопарка. Кому особенно нужна такая связка клиникам и сервисам с записью/заявкой; подрядчикам и студиям с дорогим лидом; любому бизнесу с бюджетом в Директе от заметных сумм в месяц; командам, где продажи уже в CRM, а сайт всё ещё «шлёт на почту». Если заявок 2–3 в неделю и менеджер один, можно начать с коннектора. Если заявки идут пачками с рекламы — сразу проектируйте устойчивость: логи, алерты, дедуп, SLA. Краткий итог Рабочая схема Contact Form 7 → amoCRM / Bitrix24 выглядит так: успешная отправка → сбор полей и UTM → создание лида/сделки через API или коннектор → задача менеджеру → лог ошибок. Почта как единственный канал в 2026 году — слабое звено. Если нужно внедрить передачу лидов «под ключ» или проверить, почему заявки не доходят до воронки — можно обратиться в GLM-DEV: настроим CF7, поля, UTM и стабильный вебхук в вашу CRM.
Сайт приносит заявки, а отдел продаж работает в CRM. Между ними часто — почта, Excel или «перешлите, пожалуйста, скрин формы». На этом...
contact form 7

Contact Form 7 — это один из самых популярных плагинов для создания форм обратной связи на WordPress. Однако, в стандартной конфигурации он может не включать специфические проверки полей, которые часто...Contact Form 7 — это один из самых популярных плагинов для создания форм обратной связи на WordPress. Однако, в стандартной конфигурации он может не включать специфические проверки полей, которые часто нужны для улучшения пользовательского опыта или предотвращения спама. В этой статье мы рассмотрим, как реализовать кастомную валидацию полей формы, написав несколько PHP-функций, которые будут проверять поля на соответствие требованиям. Мы создадим код, который добавит проверку для полей электронной почты, телефона и текстовой области на наличие ссылок. Эти изменения можно внедрить в файл functions.php вашей темы WordPress. Давайте разберем код по шагам и посмотрим, как работает кастомная валидация в Contact Form 7. Основы кастомной валидации в Contact Form 7 Для того чтобы добавить кастомную валидацию в Contact Form 7, необходимо использовать фильтры WordPress, которые предоставляет плагин. В частности, мы будем использовать фильтры вида wpcf7_validate_email*, wpcf7_validate_tel* и wpcf7_validate_textarea*. Эти фильтры позволяют добавлять кастомные правила валидации для полей электронной почты, номера телефона и текстовых областей. Для этого вам понадобится: Открыть файл functions.php в вашей теме WordPress. Добавить код для кастомной валидации полей. Часть 1. Проверка email Первый шаг — валидация поля электронной почты. Обычно необходимо проверить, чтобы адрес email соответствовал определённому формату и включал только доверенные домены, такие как gmail.com, yandex.ru или mail.ru. Также можно добавить проверку на пустое значение, чтобы предотвратить отправку формы без заполненного поля email. Код для валидации email Вот пример функции, которая выполняет такие проверки: // Валидация email add_filter('wpcf7_validate_email*', 'custom_email_validation_filter', 20, 2); function custom_email_validation_filter($result, $tag) { $email = isset($_POST[$tag->name]) ? trim($_POST[$tag->name]) : ''; // Проверка на пустое значение if (empty($email)) { $result->invalidate($tag, "Поле email не должно быть пустым."); return $result; } // Регулярное выражение для проверки доменов почты if (!preg_match('/^[a-zA-Z0-9._%+-]+@(mail.ru|gmail.com|yandex.ru)$/', $email)) { $result->invalidate($tag, "Введите корректный email"); } return $result; } Пояснение кода Проверка на пустое значение: если поле пустое, функция сразу возвращает сообщение об ошибке и прерывает выполнение дальнейшей проверки. Проверка домена: используется регулярное выражение, которое проверяет, чтобы email заканчивался только на один из допустимых доменов (mail.ru, gmail.com, yandex.ru). Если домен не подходит, пользователь увидит сообщение об ошибке. Как это работает? Данный фильтр вызывается при отправке формы. Если email не соответствует правилам, форма не отправляется, и пользователю выводится сообщение с объяснением. Читайте также Создание выгрузки YML для сайта на Wordpress Подробнее Часть 2. Проверка номера телефона Следующий шаг — это проверка номера телефона. Мы хотим убедиться, что пользователь ввел 10-значный номер телефона, без дополнительных символов или пробелов. Для этого можно использовать регулярное выражение, чтобы отфильтровать все нечисловые символы, и затем проверять длину строки. Код для валидации телефона // Валидация телефона add_filter('wpcf7_validate_tel*', 'custom_phone_validation_filter', 20, 2); function custom_phone_validation_filter($result, $tag) { $phone = isset($_POST[$tag->name]) ? trim($_POST[$tag->name]) : ''; $phoneValue = preg_replace('/D/', '', $phone); // Проверяем длину номера телефона if (strlen($phoneValue) !== 10) { $result->invalidate($tag, "Введите корректный номер телефона (10 цифр)."); } return $result; } Пояснение кода Удаление всех нечисловых символов: сначала мы убираем все символы, кроме цифр, чтобы получить чистую строку из чисел. Проверка длины: если длина полученной строки не равна 10 символам, функция возвращает ошибку. Часть 3. Проверка текстовой области на наличие ссылок Часто бывает полезно запретить пользователям вставлять ссылки в текстовые области, чтобы предотвратить спам. Также можно добавить проверку на пустое значение, чтобы пользователь не отправил пустое поле. Код для проверки текстовой области // Валидация текстовой области add_filter('wpcf7_validate_textarea*', 'custom_review_validation_filter', 20, 2); function custom_review_validation_filter($result, $tag) { $review = isset($_POST[$tag->name]) ? trim($_POST[$tag->name]) : ''; // Проверяем наличие ссылок if (preg_match('/https?://[^s]+|www.[^s]+/i', $review)) { $result->invalidate($tag, "Ваше сообщение не должно содержать ссылки."); } // Проверка на пустое значение if (empty($review)) { $result->invalidate($tag, "Поле не должно быть пустым."); } return $result; } Пояснение кода Проверка наличия ссылок: используется регулярное выражение, которое ищет ссылки в тексте. Если в тексте есть http://, https:// или www., функция возвращает ошибку. Проверка на пустое значение: если поле пустое, отображается соответствующее сообщение. Как это работает? Когда пользователь пытается отправить форму с ссылкой в текстовой области, Contact Form 7 отклоняет отправку и выводит сообщение об ошибке. Как применить кастомную валидацию в вашем проекте? Теперь, когда у меня есть рабочий код, давайте подытожим, как его применить: Скопируйте весь код, представленный выше, в файл functions.php вашей темы. Проверьте, чтобы в вашей форме в админке были установлены обязательные поля для email, телефона и текстовой области. Сохраните изменения и протестируйте форму, проверяя, что сообщения с ошибками отображаются корректно. Советы по доработке и улучшению Дополнительные проверки. Вы можете добавить проверку на минимальную длину для текстовых полей или другие домены для email, если это требуется. Сообщения об ошибках. Настройте сообщения так, чтобы они были более информативными для пользователей. Локализация. Если ваш сайт поддерживает несколько языков, создайте разные сообщения для каждого из них. Настройка кастомной валидации для Contact Form 7 дает вам больше контроля над отправкой данных. Такие проверки, как запрет на использование определенных доменов почты или фильтрация ссылок, помогают улучшить качество данных и избежать лишнего спама. Надеемся, что этот пример кода и объяснения помогут вам настроить проверку на вашем сайте WordPress.
Contact Form 7 — это один из самых популярных плагинов для создания форм обратной связи на WordPress. Однако, в стандартной конфигурации он...

Перелинковка — это один из важнейших аспектов SEO-оптимизации, который часто остается незамеченным многими веб-разработчиками и маркетологами. Однако правильная настройка внутренней ссылочной структуры может существенно повлиять на видимость сайта в поисковых...Перелинковка — это один из важнейших аспектов SEO-оптимизации, который часто остается незамеченным многими веб-разработчиками и маркетологами. Однако правильная настройка внутренней ссылочной структуры может существенно повлиять на видимость сайта в поисковых системах, таких как Google и Яндекс. В этой статье мы подробно рассмотрим, что такое перелинковка, как она влияет на SEO, на поведение поисковых роботов, на вес страницы, а также дадим рекомендации по внедрению перелинковки на сайте, созданном на WordPress. Что такое перелинковка? Перелинковка — это процесс создания ссылок между различными страницами одного сайта. Она может быть как внутренней (ссылки на страницы одного домена), так и внешней (ссылки на страницы других доменов). Внутренние ссылки помогают распределять «вес» страниц, улучшать навигацию и повышать время пребывания пользователей на сайте. Виды перелинковки Навигационная перелинковка: Ссылки в меню, подменю и боковых панелях. Контекстная перелинковка: Ссылки внутри текста статьи, ведущие на другие релевантные материалы. Футерные ссылки: Ссылки в нижней части страницы, часто ведущие на страницы с политиками и условиями. Ссылки на похожие статьи: Блоки с предложениями других статей в конце поста. Как перелинковка влияет на SEO? Перелинковка играет ключевую роль в SEO-оптимизации. Она помогает не только пользователям, но и поисковым системам понять структуру сайта и важность страниц. 1. Улучшение индексации страниц Поисковые роботы используют внутренние ссылки для нахождения и индексации страниц. Если страница не имеет внутренних ссылок, поисковые системы могут не обнаружить её, что приведёт к тому, что она не будет отображаться в результатах поиска. 2. Распределение веса страниц «Вес страницы» (или PageRank) — это значение, которое показывает, насколько страница важна и авторитетна. Он передается через ссылки. Чем больше качественных ссылок ведет на страницу, тем выше её вес. Перелинковка позволяет распределять вес между страницами сайта, что помогает повысить видимость менее популярных страниц. 3. Увеличение времени на сайте Хорошо настроенная внутренняя перелинковка способствует тому, что пользователи остаются на сайте дольше, переходя по ссылкам на релевантные материалы. Это снижает показатель отказов и увеличивает время, проведенное на сайте, что положительно сказывается на SEO-рейтингах. 4. Улучшение юзабилити Перелинковка упрощает навигацию по сайту, что делает его более удобным для пользователей. Удобство использования сайта также учитывается поисковыми системами при ранжировании. Как поисковые роботы реагируют на перелинковку? Поисковые роботы, такие как Googlebot и Яндекс.Спайдер, используют алгоритмы для оценки и индексации страниц. Перелинковка помогает им определить структуру сайта и связность между страницами. Важно, чтобы внутренние ссылки были логичными и не вели на страницы с низким качеством или нерелевантным контентом. Как поисковики определяют качество перелинковки? Частота ссылок: Чем больше качественных внутренних ссылок, тем выше вероятность, что страница будет проиндексирована. Контекстность: Ссылки должны быть тематически связаны с контентом страницы. Проверка на наличие битых ссылок: Поисковики избегают страниц с битым контентом и недоступными ссылками. Что такое вес страницы и как перелинковка влияет на него? Вес страницы определяется несколькими факторами, включая количество и качество внешних и внутренних ссылок. Внутренние ссылки помогают передавать вес между страницами, повышая их авторитет. Как перелинковка влияет на вес страницы: Увеличение количества ссылок: Чем больше внутренних ссылок на страницу, тем больше её вес. Качество страниц-ссылок: Ссылки с авторитетных страниц повышают вес целевой страницы. Структура ссылок: Правильная и логичная структура ссылок помогает передавать вес более эффективно. Как сделать перелинковку на сайте WordPress Теперь, когда мы обсудили важность перелинковки, давайте рассмотрим, как реализовать её на сайте WordPress. Существует два основных способа внедрения перелинковки: с помощью плагинов и вручную с использованием кода. Рассмотрим оба подхода. 1. Используйте плагины для перелинковки Существуют плагины, такие как Yoast SEO, Link Whisper и Internal Link Juicer, которые помогают автоматизировать процесс создания внутренних ссылок. Эти плагины могут предложить ссылки на основе ключевых слов, что упрощает задачу. 2. Внедрение перелинковки кодом на сайте WordPress Если вы хотите внедрить перелинковку вручную с использованием кода, вот подробная инструкция: Шаг 1: Определите страницы для перелинковки Перед тем как добавлять ссылки, определите страницы, между которыми вы хотите создать внутренние ссылки. Это могут быть страницы с схожей тематикой или статьи, которые дополняют друг друга. Шаг 2: Создайте ссылки в коде Вы можете редактировать код вашего WordPress-сайта через редактор тем или плагин для кастомизации. Вот пример, как добавить ссылку в HTML-код: <a href="URL_вашей_страницы" title="Описание ссылки">Текст ссылки</a> Пример: Если вы хотите добавить ссылку на статью о SEO, вы можете написать следующее: <a href="https://вашсайт.com/seo-оптимизация" title="Узнайте больше о SEO-оптимизации">Читать о SEO-оптимизации</a> Шаг 3: Добавление ссылок в текстовые блоки При написании статей, используйте редактор WordPress для добавления ссылок в текстовые блоки: В редакторе выберите текст, который вы хотите сделать ссылкой. Нажмите на иконку ссылки (обычно она выглядит как цепочка). Вставьте URL нужной страницы и нажмите «Добавить ссылку». Шаг 4: Проверка и оптимизация После добавления ссылок проверьте их на наличие битых ссылок. Вы можете использовать плагины, такие как Broken Link Checker, для автоматической проверки. Также не забывайте оптимизировать анкорные тексты, чтобы они были информативными и соответствовали содержимому страницы. Шаг 5: Обновление старых постов Не забывайте о старых постах. Регулярно просматривайте контент на вашем сайте и добавляйте новые ссылки на актуальные страницы, что поможет улучшить общую структуру перелинковки.   Перелинковка является важным элементом SEO-оптимизации, способствующим повышению видимости сайта и улучшению пользовательского опыта. Правильная настройка внутренних ссылок помогает поисковым системам понять структуру и важность страниц, а также увеличивает время, проведенное пользователями на сайте. Реализация перелинковки на платформе WordPress не требует особых навыков и может быть выполнена как вручную, так и с помощью плагинов.
Перелинковка — это один из важнейших аспектов SEO-оптимизации, который часто остается незамеченным многими веб-разработчиками и маркетологами. Однако правильная настройка внутренней ссылочной структуры...

SEO (Search Engine Optimization) – это набор мер, направленных на повышение видимости вашего сайта в поисковых системах, таких как Google, Yandex и другие. Правильная SEO-оптимизация увеличивает трафик на сайт и...SEO (Search Engine Optimization) – это набор мер, направленных на повышение видимости вашего сайта в поисковых системах, таких как Google, Yandex и другие. Правильная SEO-оптимизация увеличивает трафик на сайт и улучшает его позиции в поисковой выдаче. WordPress, как одна из самых популярных платформ для создания сайтов, предлагает множество инструментов для улучшения SEO, и одним из лучших является плагин Yoast SEO. В этой статье мы рассмотрим, как настроить Yoast SEO на вашем сайте, чтобы он эффективно помогал улучшать ваши позиции в поисковой выдаче. Что такое Yoast SEO и почему он важен? Yoast SEO — это плагин для WordPress, который упрощает процесс оптимизации сайта для поисковых систем. Он помогает создавать правильно структурированные страницы с хорошо продуманными ключевыми словами, метаописаниями, заголовками и внутренней перелинковкой, что способствует улучшению ранжирования вашего сайта. Преимущества использования Yoast SEO: Автоматическая оптимизация метатегов и структуры сайта. Анализ ключевых слов и плотности их использования на странице. Генерация карты сайта для улучшения индексации. Проверка читабельности контента. Поддержка Open Graph и Twitter Cards, что улучшает внешний вид постов при их публикации в социальных сетях. Установка и базовая настройка плагина Yoast SEO Шаг 1: Установка Yoast SEO Для установки плагина Yoast SEO выполните следующие шаги: Зайдите в панель администратора WordPress. Перейдите в раздел «Плагины» -> «Добавить новый». Введите в поисковой строке «Yoast SEO». Нажмите «Установить» и после установки «Активировать». После активации плагина в панели инструментов WordPress появится новый раздел «SEO», где можно настроить и управлять плагином. Шаг 2: Базовые настройки Yoast SEO Когда Yoast SEO активирован, перейдите в его настройки: Конфигуратор мастера настройки (Configuration wizard): Yoast предлагает мастер настройки, который проведет вас через основные шаги настройки плагина. Это простой способ быстро настроить базовые параметры SEO для сайта. Основные настройки: В разделе «Основное» можно настроить различные технические параметры, например, управление мета тегами. Убедитесь, что опция «Отображать сайт в поисковых системах» включена, чтобы ваш сайт индексировался. Функции: Убедитесь, что следующие опции включены: Читабельность контента – помогает улучшить восприятие текста. Анализ SEO – проверяет, как ваши статьи оптимизированы под ключевые слова. Оптимизация контента с Yoast SEO 1. Использование ключевых слов Главный аспект SEO-оптимизации — правильное использование ключевых слов. Ключевое слово должно быть максимально релевантным и часто встречаться в поисковых запросах вашей целевой аудитории. Вот несколько советов по работе с ключевыми словами: Выбирайте основное ключевое слово для каждой страницы или статьи. Основное ключевое слово должно быть использовано в следующих местах: Заголовок (H1) URL страницы В первых 100 словах текста В заголовках H2 и H3 (в зависимости от структуры статьи) В метаописании Избегайте чрезмерной плотности ключевых слов (keyword stuffing). Yoast подскажет, если плотность ключевых слов станет слишком высокой, что может негативно сказаться на ранжировании. Пример: Если ваше ключевое слово – «SEO-оптимизация на WordPress», то структура статьи может выглядеть так: H1: SEO-оптимизация на WordPress: Полное руководство H2: Почему SEO важно для WordPress? H3: Основные шаги для SEO-оптимизации на WordPress 2. Создание заголовков и метатегов Мета-заголовки (Title) и метаописания (Meta Description) — важнейшие элементы SEO, так как они показываются в поисковой выдаче. Yoast SEO позволяет редактировать их для каждой страницы или записи. Title — должен включать основное ключевое слово и быть коротким, но информативным (до 60 символов). Meta Description — краткое описание страницы (до 160 символов), которое должно мотивировать пользователя кликнуть по ссылке. Yoast предоставляет инструмент для предварительного просмотра того, как будет выглядеть ваша страница в результатах поиска, что помогает отредактировать текст для максимальной привлекательности. Пример: Title: SEO-оптимизация на WordPress: Полное руководство 2024 Meta Description: Узнайте, как настроить Yoast SEO на WordPress для улучшения позиций в поисковой выдаче. Простые советы для повышения видимости вашего сайта. 3. Читабельность текста Yoast SEO проверяет текст на читабельность, анализируя такие элементы, как: Длина предложений и абзацев. Использование переходных слов и союзов. Наличие подзаголовков для разбивки текста. Читабельность является важным фактором SEO, так как поисковые системы учитывают поведение пользователей. Если текст легко читается и воспринимается, пользователи дольше остаются на странице, что положительно влияет на её ранжирование. Внутренняя перелинковка и структура сайта 1. Внутренняя перелинковка Важная часть SEO — это внутренняя перелинковка, которая помогает поисковым системам и пользователям лучше ориентироваться на сайте. Использование внутренних ссылок увеличивает «вес» страниц и помогает лучше индексировать их. Yoast SEO рекомендует добавлять несколько внутренних ссылок на каждую статью. Вставляйте ссылки на релевантные статьи или разделы сайта, чтобы повысить их видимость. Пример: В статье о SEO-оптимизации можно добавить ссылки на связанные темы: «Как ускорить работу сайта на WordPress» «Лучшие плагины для SEO на WordPress» 2. Создание карты сайта Карта сайта помогает поисковым роботам быстрее и эффективнее индексировать страницы. Yoast SEO автоматически генерирует XML-карту сайта, которая содержит ссылки на все важные страницы. Чтобы включить карту сайта, перейдите в настройки плагина: Перейдите в раздел «SEO» -> «Общее» -> «Особенности». Включите опцию «XML-карта сайта». Читайте также Создание выгрузки YML для сайта на Wordpress Подробнее Плагин Yoast SEO — это мощный инструмент для улучшения SEO вашего сайта на WordPress. Следуя рекомендациям по настройке плагина и оптимизации контента, вы сможете увеличить позиции в поисковой выдаче, привлечь больше посетителей и улучшить общее качество сайта. Ключевые аспекты успешной оптимизации с Yoast SEO включают работу с ключевыми словами, создание качественного контента, настройку метатегов, внутреннюю перелинковку и использование графических элементов. Регулярная проверка и обновление контента с помощью Yoast SEO помогут вашему сайту оставаться конкурентоспособным в долгосрочной перспективе.
SEO (Search Engine Optimization) – это набор мер, направленных на повышение видимости вашего сайта в поисковых системах, таких как Google, Yandex и...

Увеличьте продажи на вашем сайте WordPress Выгрузка YML — это ключ к интеграции вашего сайта с популярными маркетплейсами и агрегаторами. В этой статье мы расскажем, как создать выгрузку YML для...Увеличьте продажи на вашем сайте WordPress Выгрузка YML — это ключ к интеграции вашего сайта с популярными маркетплейсами и агрегаторами. В этой статье мы расскажем, как создать выгрузку YML для вашего сайта на WordPress и поделимся полезными советами по ее настройке и оптимизации. Работа с фидом для передачи товаров, услуг и предложений Чтобы ваши товары, услуги и предложения выглядели в результатах поиска Яндекса информативно и привлекательно, передавайте информацию с помощью YML-фида. Дополненное представление, сформированное на его основе, позволит привлекать больше заинтересованной аудитории. PHP скрипт для создания выгрузки YML Для создания выгрузки в YML необходимо создать PHP скрипт. Пример PHP скрипта представлен ниже: <?php require_once($_SERVER['DOCUMENT_ROOT'] . '/wp-load.php'); // Заголовки для указания, что это XML файл header('Content-Type: application/xml; charset=utf-8'); // Начало XML if(false): echo '<?xml version="1.0" encoding="UTF-8"?>'; endif; $date = date("Y-m-d")."T".date("H:i"); echo '<yml_catalog date="'.$date.'">'; echo '<shop>'; // Основная информация о клинике echo '<name>Название</name>'; echo '<company>' . htmlspecialchars('ООО «Название организации»', ENT_XML1, 'UTF-8') . '</company>'; echo '<url>https://example.ru/</url>'; echo '<picture>https://example.ru/wp-content/themes/child-theme/assets/img/logo.png</picture>'; echo '<description>Каталог врачей и медицинских услуг</description>'; echo '<currencies><currency id="RUR" rate="1"/></currencies>'; echo '<categories><category id="1">Врачи</category></categories>'; echo '<sets>'; $taxonomy = 'doctors-cat'; // Получаем все термины таксономии $terms = get_terms(array( 'taxonomy' => $taxonomy, 'hide_empty' => true, )); if (!empty($terms) && !is_wp_error($terms)) { foreach ($terms as $term) { // Выводим каждый терм как сет echo '<set id="' . $term->term_id . '">'; echo '<name>' . htmlspecialchars($term->name, ENT_XML1, 'UTF-8') . '</name>'; echo '</set>'; } } echo '</sets>'; // Предложения (врачи) echo '<offers>'; $args = array( 'post_type' => 'doctors', 'posts_per_page' => -1, ); $query = new WP_Query($args); if ($query->have_posts()) { while ($query->have_posts()) { $query->the_post(); $categories = wp_get_post_terms(get_the_ID(), 'doctors-cat'); echo '<offer id="' . get_the_ID() . '">'; echo '<name>' . strip_tags(htmlspecialchars(get_the_title(), ENT_XML1, 'UTF-8')) . '</name>'; echo '<url>' . get_the_permalink() . '</url>'; echo '<price>0</price>'; echo '<currencyId>RUR</currencyId>'; echo '<set-ids>'; foreach ($categories as $key => $category): if($key): echo ','; endif; echo $category->term_id; endforeach; echo '</set-ids>'; echo '<categoryId>1</categoryId>'; if( trim(get_field('pt_doctors_experience')) != '' ): $experience = preg_replace('/[^0-9]/', '', get_field('pt_doctors_experience')); else: $experience = 0; endif; echo '<param name="Годы опыта">'. $experience .'</param>'; echo '<param name="Город">г. Москва</param>'; echo '<param name="Название клиники">Название организации</param>'; echo '<param name="Адрес клиники">Москва, м. Кунцево ул. Перовская, д. 77</param>'; echo '</offer>'; } } // Сброс глобальной переменной и запроса wp_reset_postdata(); echo '</offers>'; echo '</shop>'; echo '</yml_catalog>'; ?> Настройка .htaccess Для корректной работы скрипта необходимо добавить следующие строки в файл .htaccess RewriteCond %{REQUEST_FILENAME} /doctors.yml RewriteCond %{DOCUMENT_ROOT}/wp-content/themes/child-theme/inc/doctors-feed.php -f RewriteRule ^(.*)$ wp-content/themes/child-theme/inc/doctors-feed.php [L] Подробное описание настроек .htaccess RewriteCond %{REQUEST_FILENAME} /doctors.yml: Это условие проверяет, является ли запрашиваемый файл/путь на сервере /doctors.yml. Если это так, то правила перенаправления, указанные далее в коде, будут выполняться. RewriteCond %{DOCUMENT_ROOT}/wp-content/themes/child-theme/inc/doctors-feed.php -f: Это условие проверяет, существует ли файл/путь на сервере wp-content/themes/child-theme/inc/doctors-feed.php. Если файл существует, то правила перенаправления будут продолжаться. RewriteRule ^(.*)$ wp-content/themes/child-theme/inc/doctors-feed.php [L]: Это правило перенаправляет все запросы в папку wp-content/themes/child-theme/inc/doctors-feed.php. Флаг [L] указывает на то, что это последнее правило, которое должно быть выполнено для данного запроса. Таким образом, эти строки кода позволяют серверу перенаправить все запросы к файлу /doctors.yml или существующему файлу wp-content/themes/child-theme/inc/doctors-feed.php на указанный путь и файл. Создание выгрузки YML для сайта на WordPress — это важный шаг для интеграции вашего сайта с популярными маркетплейсами и агрегаторами. С помощью этого PHP скрипта и настроек .htaccess вы можете создать выгрузку YML, которая позволит вам увеличить продажи и расширить аудиторию вашего интернет-магазина.
Увеличьте продажи на вашем сайте WordPress Выгрузка YML — это ключ к интеграции вашего сайта с популярными маркетплейсами и агрегаторами. В этой...
Прокрутить вверх