Skip to main content

Twitter/X-Kartenbild fehlt? So behebst du es

4 min read

Du teilst einen Link auf X (Twitter) und bekommst eine kleine Textkarte mit grauem Platzhalter statt großer Bildvorschau. X braucht Twitter-Card-Tags und eine erreichbare Bilddatei. Fehlendes twitter:card, falscher Card-Typ oder kaputte twitter:image-URL sind die üblichen Ursachen.

Kurzantwort

twitter:card auf summary_large_image setzen, twitter:image mit absoluter HTTPS-URL ergänzen und passendes og:image als Fallback. Unter cards-dev.twitter.com/validator prüfen, dann auf Xs Cache-Update warten. Scheitert das Bild weiterhin: Dateigröße, Abmessungen und ob der Server Xs Crawler blockiert.

Wie X das Karten-Layout wählt

X unterstützt mehrere Card-Typen. Die Bildgröße steuert twitter:card:

Card-TypErgebnis
summary_large_imageGroßes Bild oben, Text darunter (Standard für die meisten Sites)
summaryKleines Quadrat links
playerVideo/Audio-Embed
appApp-Download-Karte

Fehlt twitter:card, nutzt X summary (kleines Thumbnail). Lädt das Bild nicht, bleibt eine Textkarte mit Platzhalter-Icon.

Pflicht-Tags für große Bildkarte:

<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Dein Seitentitel">
<meta name="twitter:description" content="Kurze Beschreibung.">
<meta name="twitter:image" content="https://beispiel.de/og.jpg">

Open-Graph-Tags mit einbinden. X greift auf og:image zurück, wenn Twitter-Tags unvollständig sind. Details: Open Graph vs. Twitter Card.

Schritt 1: Tags im Server-HTML bestätigen

Xs Crawler (Twitterbot) liest die erste HTML-Antwort. Kein JavaScript.

  1. Seitenquelltext anzeigen.
  2. Nach twitter:card und twitter:image suchen.
  3. twitter:card muss summary_large_image sein, nicht summary.

Tags nur in DevTools nach Page Load? Dann serverseitig ausliefern (SSR, generateMetadata in Next.js oder statisches HTML).

Schritt 2: Bild-URL testen

twitter:image (oder og:image) im Browser öffnen:

  • HTTP 200
  • HTTPS
  • Kein Login nötig
  • Kein Redirect auf HTML-Seite
  • Empfohlen: 1200 × 630 px, unter 5 MB

Dynamische OG-Image-Routen (z. B. /opengraph-image) können scheitern bei Timeout, HTML-Fehlern oder Bot-Block. Statisches .jpg oder .png auf dem CDN ist zuverlässiger.

Schritt 3: X-Cache validieren und aktualisieren

  1. cards-dev.twitter.com/validator öffnen.
  2. URL einfügen und Preview card klicken.
  3. Warnungen und Fehler prüfen.
  4. Nach Fixes erneut previewen.

X cached Karten-Daten aggressiv. Eine Validierung aktualisiert Live-Tweets nicht immer sofort. 15-30 Minuten einplanen, dann neuen Tweet testen.

Anders als Facebook gibt es bei X keinen separaten „Erneut scrapen"-Button außer erneutem Validator-Lauf.

Warum kleine statt große Karte

twitter:card auf summary

Auf summary_large_image ändern. Häufigster Fix.

Bild zu klein

Unter 300 × 157 px rendert X oft kein Large Card. 1200 × 630 px nutzen.

Nur og:image, keine Twitter-Tags

Funktioniert meist, explizite twitter:card und twitter:image sind aber sicherer.

twitter:image weicht von og:image ab

Zeigt twitter:image auf kaputte URL, og:image aber funktioniert, kann X die kaputte nehmen. Beide auf dieselbe funktionierende URL setzen.

Dynamische Image-Route scheitert für Bots

Next.js opengraph-image.tsx kann für Crawler timeouten oder 404 liefern. Bild-URL direkt testen. Statisches Fallback erwägen.

Server-Probleme, die Twitterbot blockieren

robots.txt

Twitterbot erlauben:

User-agent: Twitterbot
Allow: /

Firewall / Bot-Schutz

Twitterbot in Cloudflare oder WAF whitelisten. Aggressive Bot-Challenges blockieren Bild-Abrufe.

SSL- oder Redirect-Probleme

Abgelaufene Zertifikate und lange Redirect-Ketten verursachen Fetch-Fehler. Tags auf finale HTTPS-URL zeigen.

X-Cache vs. kaputtes Bild

SituationWas du siehstFix
Nie ein Bild gezeigtPlatzhalter vom ersten fehlgeschlagenen FetchTags und Bild-URL fixen, neu validieren
Bild war da, jetzt altGecachte Karte vom alten ScrapeNeu validieren, warten, erneut tweeten
Große Karte wurde kleintwitter:card auf summary geändertsummary_large_image setzen
Validator OK, Tweet nichtCache-Verzögerung30 Min. warten, frische URL mit ?x=1 posten

Allgemeine Fixes für fehlende Bilder: Fehlendes OG-Bild beheben.

Bild-Specs für X (2026)

EigenschaftWert
Empfohlene Größe1200 × 630 px (1.91:1)
Minimum für Large Card300 × 157 px
FormateJPG, PNG, WEBP, GIF (kein animiertes GIF in Cards)
Max. Dateigröße5 MB
URLAbsolute HTTPS

FAQ

Nutzt X Open Graph oder Twitter Card?

Beides. Twitter-Card-Tags haben Priorität. og:image ist Fallback.

Warum auf Facebook OK, auf X nicht?

Getrennte Crawler und Caches. Twitter-Tags separat fixen und auf X validieren.

Brauche ich twitter:site fürs Bild?

Nein. twitter:site verlinkt den Account, ist für Bildkarten nicht Pflicht.

Gleiches Bild für alle Plattformen?

Ja. 1200 × 630 JPG funktioniert für X, Facebook, LinkedIn und WhatsApp.

Warum wird mein Next.js opengraph-image nicht erkannt?

Die Route muss öffentlich erreichbar sein, Image-Content-Type liefern und innerhalb von Xs Timeout antworten. URL im Inkognito-Tab testen.

Löscht ein Tweet den Karten-Cache?

Nein. X cached pro URL. Query-String ändern oder nach Tag-Fix auf Cache-Ablauf warten.

Fazit

Fehlendes Bild auf X beginnt mit twitter:card = summary_large_image und funktionierender twitter:image-URL im Server-HTML. Im Card Validator prüfen, Bot-Zugriff und Bild-Specs fixen, frischen Tweet testen. Facebook-Fixes allein lösen X-spezifische Card-Probleme nicht.