Telegram Link Preview Not Working — How to Fix It
When you share a URL in a Telegram chat or channel, Telegram's servers fetch the page and generate a preview card. If the preview is missing, shows only a URL, or displays the wrong content, your Open Graph tags are the first thing to check.
How Telegram Generates Link Previews
Telegram uses a server-side bot to fetch URLs and read their metadata. Telegram prioritises, in order:
- Open Graph tags —
og:title,og:description,og:image - Twitter Card tags —
twitter:title,twitter:image(used as fallback) <title>tag — final fallback for the headline
Like all major messaging platforms, Telegram's preview bot does not execute JavaScript. All meta tags must be present in the raw HTML response.
Common Reasons Telegram Link Previews Fail
Missing og:title or og:image
Telegram requires at least og:title to generate a preview card. Without it, only the bare URL is shown. Without og:image, the preview renders as text-only.
Image format not supported
Telegram supports JPEG and PNG for preview images. WebP and GIF are not reliably rendered in preview cards. Use JPEG for photos and PNG for graphics.
Image file is too large
Very large images (over 5 MB) may be skipped by Telegram's fetcher. Keep preview images under 1 MB at 1200×630 px.
Page requires JavaScript to render
Telegram's bot reads raw HTML. JavaScript-rendered meta tags are invisible to it. The og: tags must be in the server-sent HTML, not injected by React, Vue, or Angular.
Blocked server or geo-restriction
If your server blocks Telegram's crawl bot IPs or returns different content based on user-agent, the preview will fail. Telegram's bot uses a generic user-agent — ensure your server responds normally to it.
Telegram has cached a failed fetch
Telegram caches both successful previews and failed fetches. Once a URL fails, Telegram may not retry for hours.
How to Fix Telegram Link Previews
- Add Open Graph tags to your page's
<head>:
<meta property="og:title" content="Your Page Title" />
<meta property="og:description" content="A concise description." />
<meta property="og:image" content="https://example.com/preview.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:url" content="https://example.com/your-page" />
- Confirm server-rendering — check with
curl:
curl -s -A "TelegramBot" https://example.com/your-page | grep 'og:'
If the tags don't appear, they're JavaScript-injected and invisible to Telegram.
Check your image format and size — use JPEG or PNG, keep the file under 1 MB, and use 1200×630 px dimensions.
Test with TryUnfurl — paste your URL at TryUnfurl to validate your og: tags and see exactly what Telegram's bot will read, without posting in a real Telegram chat.
Force a fresh preview in Telegram — Telegram does not have a public cache-clearing tool. To force a refresh, append a dummy query string (e.g.,
?v=2) to the URL when sharing. This creates a new cache key for Telegram.
Telegram Preview vs. Instant View
Telegram also has an Instant View feature that opens articles directly inside the Telegram app without opening a browser. Instant View uses a separate template system (configured via Telegram's Instant View editor) and is distinct from the basic link preview card.
The link preview card (title + description + image) is controlled by og: tags. Instant View is a richer reading experience and requires a separate setup.
Frequently Asked Questions
Why does my Telegram preview only show a URL with no card?
This usually means og:title is missing from the raw HTML, or Telegram's bot couldn't reach your page. Check server accessibility and og: tags.
How do I refresh a Telegram link preview cache?
Telegram has no public cache-clearing endpoint. The cleanest workaround is to add a query parameter to the URL when sharing (e.g., ?ref=tg). Telegram treats this as a new URL and fetches it fresh.
Does Telegram show link previews for all URLs?
Telegram generates previews for public URLs. It also respects x-frame-options and some server-side signals, though the main requirement is that the page is publicly accessible and has og: tags.
Does Telegram support Twitter Card tags?
Partially. Telegram may read twitter:image as a fallback if og:image is absent, but this behaviour is not guaranteed. Always set og: tags explicitly.
Why does my preview image show in Twitter but not Telegram?
Twitter's card validator and Telegram's bot use different crawlers with different user-agents and caching layers. If your server responds differently based on user-agent, that can cause this discrepancy. Use TryUnfurl to simulate different platform crawlers against your URL.
Can Telegram show animated GIF previews?
Telegram's link preview card does not support animated GIFs as the og:image. Use a static JPEG or PNG.