Круглосуточно24/7

Что такое Twitter Card и как она работает: разбор 2026

Обновлено: 25.03.2026 Время чтения: 8 минут 21 просмотров Автор: Дмитрий Ржанский Дмитрий Ржанский — основатель и технический SEO-специалист компании «Семантический Ёж». Дмитрий - технический блок. Архитектура сайта, сбор семантики, создание посадочных страниц. Он - начальник для всего внутряка.
Мета-тег "twitter-card"

Twitter Card — тип структурированной HTML-разметки в <head> страницы, который управляет отображением ссылки при публикации в X (Twitter): задаёт заголовок, изображение и описание карточки вместо автоматически подобранного превью.

Визуальный пример работы разметки Twitter Card: твит, в котором ссылка на сайт отображается в виде карточки с изображением, заголовком и описанием, сгенерированными из специальных мета-тегов.

Twitterbot сканирует URL из поста, читает теги twitter-card и собирает карточку вместо стандартного превью.

Пользователь публикует ссылку в X и платформа отправляет Twitterbot к этому URL — бот читает мета-теги в <head> — X собирает карточку из полученных данных и показывает её при раскрытии поста. При первом шере данные кэшируются примерно на 7 дней. 

Ребрендинг Twitter → X (2023) и смена домена на x.com (2024) синтаксис разметки не изменили. Префикс twitter: остаётся действующим — менять ничего не нужно.

Дмитрий Ржанский — основатель и технический SEO-специалист компании «Семантический Ёж».Дмитрий Ржанский - специалист в области поискового продвижения.

Twitterbot: почему разметка должна быть в статическом HTML

Twitterbot не выполняет JavaScript — он читает только статический HTML-ответ сервера в момент краулинга.

Это критично для SPA и React-сайтов. Если теги добавляются через JS после загрузки — карточка не появится никогда, сколько бы правильных twitter:-тегов ни было прописано. Решение: server-side rendering (SSR) или статическая генерация (SSG). Быстрая проверка того, что видит бот:

# Смотрим, какой HTML получает Twitterbot
curl -A "Twitterbot/1.0" https://example.com/page | grep "twitter:"

Если в ответе пусто — проблема в JS-рендеринге или robots.txt. 

Fallback-цепочка: что показывает X, если тег не заполнен

X не оставляет поля пустыми — при отсутствии twitter:-тега платформа ищет аналог в Open Graph, затем в базовом HTML.

Twitter Card тегFallback 1Fallback 2Если нет ничего
twitter:titleog:title<title>Нет заголовка
twitter:descriptionog:description<meta name="description">Нет описания
twitter:imageog:imageСлучайное изображение со страницыНет изображения
twitter:cardX не показывает карточку

Twitter Card vs Open Graph: что нужно задать отдельно

Twitter Card и Open Graph — два разных протокола с частично совпадающим набором тегов. X читает OG как fallback, но не напрямую: при отсутствии twitter:-тегов платформа подставляет значения из og:, а не просто игнорирует их.

Если OG уже настроен — основная карточка появится даже без единого twitter:-тега. Единственное исключение — twitter:card. Без него X не знает, какой тип карточки рендерить, и не показывает ничего. Это тег без fallback.

Дмитрий Ржанский — основатель и технический SEO-специалист компании «Семантический Ёж».Дмитрий Ржанский - специалист в области поискового продвижения.
Тег Twitter CardАналог в OGНужен явно?Когда задавать отдельно
twitter:cardНет аналогаВсегдаЕдинственный обязательный тег
twitter:titleog:titleНетЕсли хотите другой заголовок для X
twitter:descriptionog:descriptionНетЕсли хотите другое описание для X
twitter:imageog:imageНетЕсли хотите другое изображение для X
twitter:siteНет аналогаРекомендуетсяВсегда — OG этого не даёт
twitter:creatorНет аналогаПо задачеДля авторских материалов
twitter:image:altog:image:altНетЕсли OG alt уже задан

Минимальный сценарий при настроенном OG: добавить одну строку <meta name="twitter:card" content="summary_large_image" /> — и карточка появится. Остальные twitter:-теги нужны, только если хотите разные данные для X и других платформ.

Четыре типа Twitter Cards: когда что выбрать

X поддерживает четыре актуальных типа карточек. Photo Card и Gallery Card — они устарели и автоматически конвертируются в Summary Large Image. Если в разметке остались теги twitter:card со значением photo или gallery — X молча переключит их на summary_large_image. Это не ошибка, но лучше привести разметку в порядок.

Тип карточкиЗначение twitter:cardВизуалМин. размерРек. размерКогда использовать
Summary CardsummaryМиниатюра рядом с текстом (1:1)144×144 px1024×1024 pxСтатьи, справочники, текстовый контент
Summary with Large Imagesummary_large_imageШирокое изображение над текстом (2:1)300×157 px1024×512 pxМедиа, лендинги, e-commerce, визуальный контент
App CardappИконка + рейтинг + кнопкаМобильные приложения (iOS + Android)
Player CardplayerВидео/аудио плеерВидео, подкасты — требует одобрения X

Алгоритм выбора типа карточки

Прежде чем выбирать — ответьте на три вопроса последовательно.

Это мобильное приложение в App Store или Google Play?
→ Да → app. X автоматически подтянет иконку, рейтинг и цену по ID из магазина.

Это видео или аудио с постоянным URL-потоком?
→ Да + есть вайтлист X → player. Без одобрения X карточка не появится, даже при правильной разметке.

У страницы есть сильное изображение (не логотип, не заглушка, не иконка)?
→ Да → summary_large_image. Large Image занимает всю ширину ленты — захватывает больше экранного пространства.
→ Нет → summary. Аккуратная квадратная миниатюра лучше, чем Large Image с размытым заполнителем.

Для большинства контентных сайтов — summary_large_image. Для текстовых форматов (документация, ЧаВо, новостные агрегаторы) — summary.

App Card и Player Card: специфика и ограничения

App Card проще в настройке: данные подтягиваются из iTunes или Google Play автоматически по ID через теги twitter:app:id:iphone и twitter:app:id:googleplay. Player Card — сложнее: требует HTTPS для iFrame, кодеки и размер проверяются вручную командой X, одобрение не гарантировано.

Теги Twitter Card: что означает каждый и какие лимиты реально работают

twitter:card — единственный обязательный тег. Официальная документация X устанавливает лимит заголовка в 70 символов, описания — в 200. На практике усечение начинается раньше: X обрезает twitter:title в районе 50–55 символов в зависимости от устройства и ширины карточки. Спецификация X Ads явно рекомендует не более 50 символов заголовка для гарантированного отображения без усечения.

ТегОбязательныйОфициальный лимитБезопасный лимитFallback при отсутствии
twitter:cardДаНет карточки
twitter:titleРек.70 симв.50 симв.og:title<title>
twitter:descriptionНет200 симв.до 200 симв.og:description<meta description>
twitter:imageНет5 МБ5 МБog:image → случайное фото
twitter:image:altНет420 симв.420 симв.Нет alt-текста
twitter:siteНетНет атрибуции сайта
twitter:creatorНетНет атрибуции автора

Требования к изображению:

  • Форматы: JPG, PNG, WEBP, GIF (только первый кадр анимации). SVG — не поддерживается
  • Максимальный размер файла: 5 МБ
  • URL: только абсолютный (полный путь, включая https://)
  • Протокол: только HTTPS — HTTP-изображение не загрузится
  • GIF: X отображает исключительно первый кадр, анимация игнорируется

twitter:image:alt — тег доступности для пользователей с ограниченными возможностями. Лимит — 420 символов. Рекомендую добавлять всегда: хорошая практика и дополнительный сигнал качества разметки.

Дмитрий Ржанский — основатель и технический SEO-специалист компании «Семантический Ёж».Дмитрий Ржанский - специалист в области поискового продвижения.

Устаревшие теги Twitter Card: что удалить при аудите

При аудите старых сайтов регулярно встречаются теги, которые больше не работают или игнорируются X. Оставлять их в <head> — лишний шум, ничего не ломает, но и смысла ноль.

Устаревший тег / значениеСтатусЧто делать
twitter:card = photoDeprecated → конвертируется в summary_large_imageЗаменить на актуальное значение
twitter:card = galleryDeprecated → конвертируется в summary_large_imageЗаменить на актуальное значение
twitter:domainИгнорируется XУдалить
twitter:label1 / twitter:data1Работают только в контексте Slack — не отображаются в XУдалить, если не нужен Slack-сниппет
twitter:label2 / twitter:data2АналогичноУдалить
twitter:urlИгнорируется X; платформа использует og:urlУдалить

Если на сайте стоит SEO-плагин 2018–2020 годов без обновлений — проверьте через curl -A "Twitterbot/1.0" или валидатор: есть шанс найти весь этот набор в <head>.

Как добавить Twitter Card на сайт: код и инструкция для WordPress

Минимальная Twitter Card требует одного тега. Расширенный шаблон объединяет Open Graph и Twitter Cards, не дублируя поля без нужды.

Шаблон 1 — Минимальный (при уже настроенном Open Graph):

<head>
  <!-- Достаточно одного тега, если OG уже настроен -->
  <meta name="twitter:card" content="summary_large_image" />
  <meta name="twitter:site" content="@ваш_аккаунт" />
  <meta name="twitter:image:alt" content="Краткое описание изображения" />
</head>

Шаблон 2 — Полный (без настроенного Open Graph):

<head>
  <!-- Twitter Card — ставим первым -->
  <meta name="twitter:card" content="summary_large_image" />
  <meta name="twitter:title" content="Заголовок страницы до 50 симв." />
  <meta name="twitter:description" content="Описание до 200 символов." />
  <meta name="twitter:image" content="https://example.com/images/cover.jpg" />
  <meta name="twitter:image:alt" content="Краткое описание изображения" />
  <meta name="twitter:site" content="@ваш_аккаунт" />
  <meta name="twitter:creator" content="@аккаунт_автора" />

  <!-- Open Graph — для остальных платформ -->
  <meta property="og:type" content="article" />
  <meta property="og:title" content="Заголовок страницы" />
  <meta property="og:description" content="Описание страницы." />
  <meta property="og:image" content="https://example.com/images/cover.jpg" />
  <meta property="og:url" content="https://example.com/page/" />
  <meta property="og:site_name" content="Название сайта" />
</head>

WordPress: настройка через Yoast SEO

Yoast SEO включает X Card разметку по умолчанию. Проверить и активировать при необходимости:

  1. Перейдите: Yoast SEO → Settings → Site features → Social sharing
  2. Убедитесь, что переключатель X (Twitter) активен
  3. Сохраните изменения
  4. Для настройки аккаунта сайта: Yoast SEO → Settings → Site representation → вкладка Socials → поле X username
  5. Для настройки карточки на конкретной странице: откройте пост → в правой панели Yoast SEO → раздел Social media appearance → вкладка X

Важный момент: Yoast SEO устанавливает тип карточки summary_large_image по умолчанию для всех страниц с изображением. Возможности переключить тип на summary через интерфейс нет — это поведение зафиксировано в плагине. Если нужен summary на конкретной странице — добавьте тег вручную через дополнительный php-фильтр или напрямую в <head>.

Дмитрий Ржанский — основатель и технический SEO-специалист компании «Семантический Ёж».Дмитрий Ржанский - специалист в области поискового продвижения.

Ручное добавление в PHP без CMS:

<?php
// В файле header.php — динамические теги Twitter Card
$title       = get_the_title();
$description = get_the_excerpt();
$image       = get_post_thumbnail_url(null, 'large');
?>

<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content="<?php echo esc_attr(mb_substr($title, 0, 50)); ?>" />
<meta name="twitter:description" content="<?php echo esc_attr(mb_substr($description, 0, 200)); ?>" />
<meta name="twitter:image" content="<?php echo esc_url($image); ?>" />
<meta name="twitter:image:alt" content="<?php echo esc_attr($title); ?>" />
<meta name="twitter:site" content="@ваш_аккаунт" />

mb_substr($title, 0, 50) обрезает заголовок по безопасному лимиту X. Лучше контролировать это программно, чем надеяться, что редактор не выйдет за 50 символов.

Как проверить Twitter Card и обновить кэш X

Официальный Card Validator Twitter/X упразднён в 2022 году — предпросмотр карточки теперь доступен только через сторонние инструменты или Tweet Composer.

X кэширует данные карточки около 7 дней — это официальная цифра из документации X Developer Platform. Текстовые данные (title, description) обновляются при новом шере. Изображение кэшируется отдельно и агрессивнее — официального способа принудительного сброса нет.

ИнструментАвторизацияЧто показывает
opentweet.ioНе нужнаПревью + анализ тегов
socialrails.comНе нужнаПревью + диагностика
socialpreviewhub.comНе нужнаПревью + кроп изображения
Tweet Composer (x.com)Аккаунт XРеальный предпросмотр

Workaround для обновления изображения — query string к URL:

<!-- Изображение не обновилось — меняем URL через параметр -->

<!-- Было: -->
<meta name="twitter:image" content="https://example.com/images/cover.jpg" />

<!-- Стало (X воспринимает как новый URL): -->
<meta name="twitter:image" content="https://example.com/images/cover.jpg?v=2" />

X кэширует изображения по URL. Альтернативный вариант — загрузить изображение под новым именем файла. Оба метода работают.

Почему Twitter Card не появляется: чеклист диагностики

В 95% случаев Twitter Card не появляется по одной из семи причин — большинство диагностируются за две минуты.

1. twitter:card не прописан — Симптом: карточки нет, только ссылка — Решение: добавьте <meta name="twitter:card" content="summary_large_image" />

2. Twitterbot заблокирован в robots.txt — Симптом: карточка не появляется, хотя теги правильные — Решение: проверьте robots.txt — Twitterbot должен иметь доступ к странице и к изображению

# robots.txt — разрешить Twitterbot явно
User-agent: Twitterbot
Disallow:

3. Теги генерируются через JavaScript (SPA/React без SSR) — Симптом: Twitterbot не видит теги, хотя в браузере они есть — Решение: SSR или статическая генерация; проверяйте через curl -A "Twitterbot/1.0" URL

4. Изображение по HTTP, а не HTTPS — Симптом: карточка появляется, но без изображения — Решение: URL изображения — только https://

5. Изображение больше 5 МБ или в неподдерживаемом формате (SVG, BMP, TIFF) — Симптом: карточка без изображения — Решение: конвертируйте в JPG/PNG/WEBP, уменьшите вес до < 5 МБ

6. URL изображения относительный, а не абсолютный — Симптом: карточка без изображения — Решение: пишите полный URL — https://example.com/images/cover.jpg, не /images/cover.jpg

7. Сервер возвращает код не 200 или страница > 2 МБ — Симптом: карточка не появляется вообще — Решение: убедитесь, что страница отдаёт 200 OK; уменьшите HTML, если он > 2 МБ

Пункты 3 и 6 — самые частые у клиентов с React-сайтами без SSR и самописными CMS.

FAQ

Часто задаваемые вопросы

Краткие ответы по теме этой статьи.

Оставить заявку

Twitter Card — это несколько строк HTML-кода в <head> страницы, которые говорят X, что показать при шеринге ссылки: какое изображение, какой заголовок, какое описание. Без них X сам выбирает картинку — и обычно выбирает неудачно.

Если OG уже настроен, X прочитает og:title, og:description и og:image как fallback — карточка появится. Единственный тег без fallback — twitter:card: без него X не покажет карточку, даже при полностью заполненном Open Graph. Минимальный шаг — одна строка: <meta name="twitter:card" content="summary_large_image" />.

Twitter Cards напрямую не влияют на позиции в Google — официальная позиция отражена в публичных ответах Джона Мюллера (Google Search Advocate): Twitter-разметка не является сигналом ранжирования. Косвенно карточки увеличивают CTR в ленте X, что ведёт к большему числу шеров и внешних ссылок. Для нишевых тем с активным распространением через X этот косвенный эффект может быть заметен.

Нет. Префикс twitter: остаётся действующим — X Developer Platform документирует его без изменений. Если явно прописывали ссылки на twitter.com в контенте сайта — их стоит обновить. Разметку трогать не нужно.

Функцию предпросмотра удалили в 2022 году, официального инструмента нет по состоянию на март 2026 года. Используйте: opentweet.io, socialrails.com, socialpreviewhub.com. Для предпросмотра в реальном интерфейсе X — Tweet Composer на x.com (вставьте ссылку в поле написания поста — карточка появится без публикации).

Да. Если задать twitter:image с другим URL — X будет использовать его, а не og:image. Facebook, LinkedIn и ВКонтакте продолжат использовать og:image. Это стандартный способ адаптировать визуал под конкретную платформу: разные соотношения сторон (1:1 для OG, 2:1 для Large Image) в одной разметке.

Нет. Telegram читает Open Graph (og:title, og:description, og:image) для превью ссылок — twitter:-теги игнорируются. Это не баг: Telegram намеренно использует стандартный OG-протокол. Для корректных превью в Telegram достаточно настроить Open Graph.

Три шага: убедитесь, что twitter:image содержит правильный абсолютный HTTPS-URL → добавьте query string к URL изображения (?v=2) — X кэширует по URL и воспримет его как новый → если не помогло, загрузите изображение под новым именем файла. Принудительного инвалидирования кэша X не предоставляет.

Заявка

Нужно SEO-продвижение?

Оставьте заявку — свяжемся с вами в ближайшее время, уточним сайт и задачи по продвижению.

Telegram @dmitriywebrzhan
Режим работы Круглосуточно, 24/7
Оставить заявку

Нажимая кнопку, вы соглашаетесь с политикой конфиденциальности.