ツイッターカードが
表示されない原因と対処法

2020-01-

WEBページのリンクをTweetするとき、画像つきで表示できるツイッターカード。

ただのURLの羅列より、ずっと興味を引きますよね。

でも、いざ導入したはいいけど、なんでか表示されない、なんてことも。

ここでは、SNS連携ボタンを作った時つまづいた、ツイッターカードが表示されない原因と対処法をまとめてみました。

\項目をタップするとジャンプできます/

OGPタグが正しく設定されていない

ツイッターカードを表示するには、HTMLファイルのhead部分に、SNS用のメタタグを設定する必要があります。

twitterカード専用のタグの他に、SNS全体に対応したOGPタグという書き方もあります。

ここでは、OGPタグを使用している例で見ていきます。

ツイッターカードを表示する場合は、OGPタグの他にツイッターカードのタイプを指定するタグが必要です。

画像小さめのツイッターカードなら、「<meta name="twitter:card" content="summary">」

画像大きめのツイッターカードなら、「<meta name="twitter:card" content="summary_large_image">」

と指定します。

他にもアプリ用、動画再生用のカードも用意されていますが、ウェブページの紹介では上記2つから選ぶのが一般的です。

HTML

<meta name="twitter:card" content="summary">
<meta property="og:url" content="ウェブページのURL">
<meta property="og:title" content="ウェブページのタイトル">
<meta property="og:description" content="ウェブページの概要">
<meta property="og:image" content="https://sample.com/img/sns.png">
まずは、これらのタグが間違っていないか確認してみましょう。

「og:image」のパス、ファイル名が間違っている

OGPのタグはばっちり!という時でも、一度確認したいのがファイルURLです。

「og:image」で指定した画像ファイルのパスや、ファイル名が間違っていないか、一度確認してみましょう。

自分で書いているだけに、ファイル名を勘違いしていると意外と気づきにくいです。

タグもパスもちゃんと出来てるけどな~、という場合は、別の原因が考えられます。

twitter側のキャッシュ

ツイッターカードが表示されない原因で一番多い原因は、たぶん、これじゃないでしょうか。

一度ツイッターカードがない状態でツイートされた記事は、そのキャッシュがツイッター側に保存されてしまい、以降もツイッターカードが表示されない事があります。

最初の表示テストでOGPタグなどにミスがあって修正した場合などに、それでもツイッターカード出ない、という時は、これが原因の事が多いかと思います。

記事のタイトルを変えた場合などに、ツイッターカードでの反映が遅れるのも、このキャッシュが残っているからです。

ツイッター側のキャッシュをクリアできれば、最新の状態に更新できます。

公式で用意されている対処法はこちら。

Twiter公式の 検証ページで、キャッシュを最新の状態に更新する方法です。

表示を確認したいページのURLを入力して「プレビューカード」ボタンを押すと、ツイッターカードの確認ができます。

ただし、画像を変えても、画像ファイルの名前が旧画像と同じだと、更新できない場合もあるようです。

この場合は、「og:image」で指定している画像URLの末尾に「?1234567890」などのパラメータを追加すると、新しい画像としてツイッターが認識してくれる事もあるようです。「?」以降の数字は適当でOKとのこと。

これでも解決しない時は、ツイッター側のキャッシュが更新されるのを待つしかありません。

通常、1週間ほどで更新されるようです。

ここまでは、一般的なツイッターが表示されない時の原因を見てきました。

一方、サイトページにSNS連携ボタンを設置している場合で、Tweetボタンを押してもツイッターカードが表示されない時は、別の原因も考えられます。

ページURLとサイト名が繋がっている

Tweetボタンを作るときは、「aタグ」でページのURLを指定しますよね。

ここで、「href」で指定するページURL先頭にサイト名などの英文字がくっつくと、「https://」が認識されず、リンクURLにならない事があります。

リンクにならないと、ツイッターカードも表示されません。

たとえばこちら。

×「href="https://twitter.com/intent/tweet?text=記事のタイトル|sitetitlehttps://ドメイン.com/sample.html"」

○「href="https://twitter.com/intent/tweet?text=記事のタイトル|sitetitle https://ドメイン.com/sample.html"」

記事のタイトルは日本語だと思いますが、そのあとにサイトタイトルなどを入れている場合は要注意。

サイトタイトルが英字の場合、「https://」との間に半角スペースがないと、リンクURLとして認識されません。

「https://」の先頭には、半角スペースを入れておくと安心です。

ハッシュタグを空にするとツイッターカードが表示されない

Tweetボタンでは、「href」でページURLの他に、ハッシュタグを指定する事ができます。

「href="https://twitter.com/intent/tweet?text=記事タイトル https://sample.com/sample.html&hashtags=ハッシュタグ"」

「&hashtags=」のあとに書いたテキストが、ツイッターカードではハッシュタグとして表示されます。

ですが、このハッシュタグ指定を書いたうえで、ハッシュタグになるテキストを入れないと、ツイッターカードになりません。

この場合、ハッシュタグテキストを入れるか、ハッシュタグ指定のタグを削除すれば、ツイッターカードが表示されます。

×「href="https://twitter.com/intent/tweet?text=記事タイトル https://sample.com/sample.html&hashtags="」

○「href="https://twitter.com/intent/tweet?text=記事タイトル https://sample.com/sample.html&hashtags=ハッシュタグにしたいテキスト"」

○「href="https://twitter.com/intent/tweet?text=記事タイトル https://sample.com/sample.html"」

ハッシュタグの指定タグを使うときは、テキストを入力しておきましょう。

ツイッターカードの表示確認はテストページで

通常、ツイッターカードが表示されるまでには、少し時間がかかります。

すぐに確認したい場合は、 twitter公式の検証ページで確認してみましょう。

ツイッターカードの確認で、キャッシュに振り回されたくない!という場合は、本番ページをコピーした別のテストページなどで、表示を確認をするのもオススメです。

SHARE

このサイトについて

「Web Work Plus」はWEB制作・ビジネスのちょい足し情報メデイアです。ちょっとしたハテナをプラスに変える役立つ備忘録を発信中!