Если в исходном коде страницы одновременно появляются теги Open Graph и Twitter Cards от темы, SEO-плагина и ещё одного плагина для шаринга, это быстро превращается в хаос: дубли, неверные превью, лишние запросы и конфликтующие значения og:title, og:image или twitter:card. В WordPress это встречается чаще, чем кажется, особенно после установки нескольких «полезных» плагинов подряд.
Ниже — практический сценарий: как понять, кто именно выводит мета-теги для соцсетей, как отключить лишнее без поломки превью в Telegram, Facebook, X и мессенджерах, и как проверить результат.
Когда отключение действительно нужно
Отключать Open Graph и Twitter Cards стоит не «на всякий случай», а когда есть конкретная проблема. Например:
- в коде страницы видно два набора
og:илиtwitter:тегов; - SEO-плагин уже формирует превью, а тема добавляет своё поверх него;
- соцсети подтягивают не ту картинку или старый заголовок;
- после обновления темы появились дубли мета-тегов;
- страница стала тяжелее из-за лишней логики в
<head>.
Если у вас один источник мета-тегов и он работает корректно, ничего отключать не нужно. Ошибка многих сайтов — убрать разметку полностью, а потом удивляться, что в мессенджерах пропали красивые превью.
Диагностика: кто именно выводит Open Graph и Twitter Cards
Сначала нужно понять источник. В WordPress это обычно один из трёх вариантов: тема, SEO-плагин или отдельный плагин для соцсетей. Проверять лучше не по догадке, а по исходному коду страницы.
Что искать в исходнике
Откройте страницу сайта, затем исходный код и найдите:
og:titleog:descriptionog:imagetwitter:cardtwitter:title
Если теги повторяются, сравните значения. Часто видно, что один набор приходит от SEO-плагина, а второй — от темы. Тогда отключать нужно именно второй источник, а не всё подряд.
Быстрая проверка через консоль
Если есть доступ к серверу, можно быстро посмотреть, не подмешивает ли тема свои функции в head. Для этого полезно поискать по коду темы и плагинов строки вроде add_action('wp_head', og: или twitter:.
grep -Rni "og:title\|twitter:card\|wp_head" wp-content/themes/your-theme wp-content/plugins | head -n 50Это не идеальный аудит, но он помогает быстро сузить круг поиска. Если grep показывает файл темы, значит источник можно отключать через functions.php или через настройки темы, если они есть.
Пошаговое решение: как убрать лишние мета-теги
Есть три нормальных подхода: через настройки плагина, через код в теме или через дочернюю тему/му-плагин. Выбор зависит от того, кто именно выводит теги.
| Способ | Когда подходит | Плюс | Минус |
|---|---|---|---|
| Настройки SEO-плагина | Если теги генерирует Yoast SEO, Rank Math или похожий плагин | Без кода, безопаснее для обновлений | Не всегда можно отключить только часть тегов |
| Код в дочерней теме | Если теги добавляет тема | Точный контроль | Нужно следить за обновлениями темы |
| Му-плагин | Если нужно сохранить логику независимо от темы | Не слетает при смене темы | Нужно аккуратно поддерживать код |
Вариант 1: отключить в SEO-плагине
Если Open Graph и Twitter Cards уже есть в SEO-плагине, сначала проверьте его настройки. У популярных SEO-плагинов обычно есть отдельные переключатели для соцсетей. Логика простая: если плагин уже формирует корректные превью, не дублируйте это темой.
После отключения в настройках обязательно проверьте исходный код страницы ещё раз. Иногда плагин отключает только часть тегов, а тема продолжает выводить свои.
Вариант 2: убрать вывод из темы
Если теги добавляет тема, обычно это делается через функцию, подключенную к wp_head. В таком случае лучше убрать именно этот хук в дочерней теме или в небольшом му-плагине.
<?php
// В дочерней теме или mu-plugin.
add_action('after_setup_theme', function () {
// Пример: если тема подключает собственную функцию вывода Open Graph.
// Название функции нужно взять из кода темы.
remove_action('wp_head', 'theme_open_graph_tags', 10);
remove_action('wp_head', 'theme_twitter_cards_tags', 10);
});Здесь важно не угадывать имя функции. Сначала найдите его в файлах темы. Если функция называется иначе, remove_action() просто не сработает.
Вариант 3: отключить только Twitter Cards, оставить Open Graph
Иногда нужен компромисс: Open Graph оставить для Facebook и мессенджеров, а Twitter Cards убрать, потому что они дублируются или не используются. Это разумно, если SEO-плагин уже выводит базовые og: теги, а Twitter-разметка приходит из темы и мешает.
<?php
add_action('after_setup_theme', function () {
remove_action('wp_head', 'theme_twitter_cards_tags', 10);
});Такой подход лучше, чем отключать всё сразу. Но он работает только если тема действительно разделяет эти блоки на разные функции.
Если теги генерирует плагин шаринга или кэш-плагин
Не все дубли идут от SEO-плагина. Иногда Open Graph добавляет плагин кнопок «поделиться», а кэш-плагин потом сохраняет старую версию страницы и вы продолжаете видеть устаревшие мета-теги.
В этом случае порядок действий такой:
- отключите генерацию мета-тегов в плагине шаринга, если такая опция есть;
- очистите весь кэш: плагин, серверный кэш, CDN;
- проверьте исходный код в режиме инкогнито;
- если нужно, обновите превью в Facebook Sharing Debugger или аналогичном инструменте для других платформ.
Проверка результата после внедрения
После отключения лишнего источника не ограничивайтесь визуальной проверкой страницы. Нужно убедиться, что в <head> остался один корректный набор тегов.
Чек-лист проверки
- в исходном коде нет дублей
og:title,og:image,twitter:card; - значения
og:titleиog:descriptionсоответствуют нужной записи или странице; - картинка для превью отдаётся по HTTPS и открывается без редиректов;
- в соцсетях и мессенджерах подтягивается актуальный заголовок;
- после очистки кэша изменения видны не только у вас, но и для нового посетителя.
Мини-проверка через curl
Если нужно быстро посмотреть, что реально отдаёт сервер, можно проверить HTML заголовки и сам код страницы через curl:
curl -L https://example.com/page/ | grep -Ei "og:title|og:image|twitter:card"Это полезно, когда в браузере всё выглядит нормально, а в кэше CDN ещё лежит старая версия страницы.
Частые ошибки и как их исправить
Отключили не тот источник
Самая частая ошибка — выключить Open Graph в SEO-плагине, хотя дубли шли из темы. В результате превью исчезает совсем. Исправление простое: верните нужный источник и уберите только лишний.
Удалили мета-теги, но не очистили кэш
Если стоит кэш-плагин или CDN, старые теги могут жить ещё долго. После изменений очистите кэш страницы, общий кэш плагина и, если есть, кэш на стороне сервера.
Использовали неправильное имя функции в remove_action()
remove_action() не умеет «искать по смыслу». Ему нужно точное имя callback-функции и при необходимости правильный приоритет. Если функция названа неверно, код просто ничего не сделает.
Сломали превью в мессенджерах
Если после отключения исчезли карточки в Telegram или Facebook, значит вы убрали не дубль, а единственный источник разметки. Верните его и проверьте, какой плагин или тема должны отвечать за соцсети в вашей конфигурации.
Что делать, если нужен контроль без ручного кода
Если на сайте много контента и вы не хотите каждый раз лезть в тему, удобнее централизовать техническую чистку в одном SEO-инструменте. В таких задачах обычно помогает плагин, который умеет убирать дубли, чистить лишние элементы и управлять мета-данными без правки шаблонов. Например, Clearfy Pro от WPShop может быть уместен, если вам нужен именно набор технических переключателей, а не отдельная точечная правка в теме. Ссылка: https://wpshop.ru/plugins/clearfy.
Но даже в этом случае не стоит отключать всё подряд. Сначала определите, кто выводит теги, потом убирайте только лишний слой.
Практические советы по безопасности и производительности
- Не правьте
functions.phpосновной темы напрямую, если тема обновляется. Используйте дочернюю тему или mu-плагин. - Не держите одновременно два SEO-плагина с включённой генерацией соцметок.
- После изменений проверяйте не только главную, но и обычную запись, страницу и архив, потому что шаблоны могут отличаться.
- Если картинка для Open Graph берётся из медиабиблиотеки, убедитесь, что она не слишком тяжёлая и доступна по прямой ссылке.
- При использовании CDN проверьте, не кэшируется ли старая версия
<head>отдельно от контента.
Если у вас уже есть один источник разметки и он работает стабильно, лучше не усложнять схему. В WordPress техническая чистота почти всегда важнее количества плагинов: один ответственный источник мета-тегов проще поддерживать, чем три конкурирующих.