2026年5月20日

2026年5月20日

WordPressのTwitterカードが表示されない場合の解決方法

はじめに

X(旧Twitter)でWordPressの記事URLをツイートしても、リンクカードが表示されずURLだけが貼られる、画像のサムネイルが出ない、タイトルと説明文が表示されない。Twitterカードはメタタグの設定が必要で、OGPとは別途対応が必要なケースがあります。

症状・原因

Twitterカードが表示されない原因:

  • twitter:cardタグが未設定がHTML内にない
  • Twitterのキャッシュが古い:Card Validatorで更新が必要
  • noindexページ:Twitterはnoindexページのカードを表示しないケースがある
  • og:imageがhttps未対応:httpのURLでは画像が読み込まれない
  • 画像サイズが小さい:summary_large_imageには最低300×157px以上が必要

解決手順

ステップ1:Twitterカードのタグを確認する

ページのソースでtwitter:を検索します。

<!-- summary_large_image(大きい画像カード)の場合 -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@yourhandle" />
<meta name="twitter:title" content="記事タイトル" />
<meta name="twitter:description" content="記事の説明文(最大200文字)" />
<meta name="twitter:image" content="https://yoursite.com/ogp.jpg" />

<!-- summary(小さいサムネイル)の場合 -->
<meta name="twitter:card" content="summary" />

ステップ2:Yoast SEOでTwitterカードを有効化する

1. Yoast SEO設定ソーシャル

2. X(Twitter) タブを開く

3. 「Twitterのカードメタデータを追加する」をオンにする

4. 各記事の Yoast SEOパネルソーシャルXイメージ を設定

ステップ3:functions.phpで手動実装する

// functions.php — Twitterカードを手動で出力
add_action('wp_head', function() {
    if (!is_singular()) return;
    
    global $post;
    
    $title       = get_the_title($post);
    $description = has_excerpt($post)
        ? get_the_excerpt($post)
        : mb_substr(strip_tags($post->post_content), 0, 200);
    
    // アイキャッチ画像があればlarge_image、なければsummary
    if (has_post_thumbnail($post)) {
        $card  = 'summary_large_image';
        $image = get_the_post_thumbnail_url($post, 'large');
    } else {
        $card  = 'summary';
        $image = get_site_icon_url(512);
    }
    
    echo '<meta name="twitter:card" content="' . esc_attr($card) . '" />' . "\n";
    echo '<meta name="twitter:site" content="@yourhandle" />' . "\n";
    echo '<meta name="twitter:title" content="' . esc_attr($title) . '" />' . "\n";
    echo '<meta name="twitter:description" content="' . esc_attr($description) . '" />' . "\n";
    
    if ($image) {
        echo '<meta name="twitter:image" content="' . esc_url($image) . '" />' . "\n";
    }
}, 5);

ステップ4:Card Validatorでキャッシュをクリアする

TwitterのCard Validatorでカードが正しく表示されるか確認・キャッシュをクリアできます。

1. Twitter Card Validatorcards-dev.twitter.com/validator)にアクセス

2. 記事URLを入力して「Preview card」をクリック

3. エラーが出る場合はエラーメッセージを確認して修正

ステップ5:画像サイズと比率を確認する

| カードタイプ | 推奨サイズ | 最小サイズ | 比率 |

|------------|----------|----------|------|

| summary_large_image | 1200×628px | 300×157px | 2:1 |

| summary | 512×512px | 144×144px | 1:1 |

// functions.php — Twitter用画像サイズを登録
add_action('after_setup_theme', function() {
    add_image_size('twitter-card', 1200, 628, true);
});

ステップ6:og:タグをTwitterカードのフォールバックとして使う

TwitterはOGPタグも読み取ります。twitter:タグがない場合はog:タグを使用します。

<!-- og:タグがあればtwitter:imageは省略可能 -->
<meta property="og:image" content="https://yoursite.com/ogp.jpg" />
<!-- Twitterはこれをフォールバックとして使用する -->

注意事項

  • summary_large_imageは画像の比率が2:1でないと正しく表示されません。
  • 同一URLで頻繁にOGP情報を変更するとTwitterのキャッシュが長く残ることがあります。
  • 個人アカウントはCard Validatorにサインインが必要です。

まとめ

TwitterカードはYoast SEOのX設定を有効化するか、twitter:cardメタタグを手動で追加することで解決します。Card Validatorでキャッシュをクリアし、画像サイズが推奨サイズ(1200×628px)になっているか確認しましょう。関連記事:OGPが正しく設定されない場合SNSシェアボタンの設置

お気軽にご相談ください

お見積りへ お問い合わせへ