Platform Guide8 min read

Telegram Open Graph Tags: How Telegram Generates Link Previews

A complete guide to Telegram link previews — which OG tags Telegram reads, image size requirements, why previews fail, how the Telegram bot crawler works, and how to validate your tags.

You paste a URL into a Telegram chat and a rich preview card appears below your message — a large image, a bold title, and a short description. When it works, the preview dramatically increases click-through. When it doesn't, users see a bare link they're unlikely to tap. Telegram has its own crawler behavior and specific requirements that differ from other platforms. This guide explains exactly what Telegram reads, what causes preview failures, and how to get reliable link cards in every Telegram chat.

How Telegram Generates Link Previews

When a user sends a URL in Telegram, Telegram's server-side bot (not the recipient's device) fetches the target page and extracts meta tags from the HTML. This happens on Telegram's infrastructure, not on the sender's or receiver's device, which means the page must be publicly accessible from Telegram's servers.

Telegram's crawler does not execute JavaScript. Open Graph tags and Twitter Card tags must be present in the static, server-rendered HTML that your server returns. Client-side rendering frameworks (React, Vue, Angular, Svelte) that inject meta tags at runtime — without server-side rendering or a static pre-render — will not work. Telegram will see an empty <head> and either show no preview or fall back to the page <title> with no image.

Telegram caches link previews server-side for a period that can range from minutes to hours depending on the URL. Once a link is cached, all users who share it in any chat will see the same cached preview until the cache expires.

Which Meta Tags Telegram Reads

Telegram reads both Open Graph (og:) tags and Twitter Card (twitter:) tags, with Open Graph taking precedence when both are present. There is no Telegram-specific tag namespace. The tags that control your Telegram link preview are:

  • og:title — the bold headline displayed at the top of the preview card (required)
  • og:description — the supporting text below the title (strongly recommended)
  • og:image — the large image displayed in the card (strongly recommended)
  • og:image:width and og:image:height — tell Telegram the image dimensions so it can render without waiting for a second fetch
  • og:url — the canonical URL; Telegram displays the domain as a colored label in the card
  • og:site_name — shown above the title as a source label in some Telegram clients
  • og:type — read but has minimal effect on rendering; use "website" or "article"
  • twitter:card — fallback for twitter card type; use "summary_large_image" for a wide image layout
  • twitter:title and twitter:description — used as fallbacks if og: equivalents are missing

The Minimum Tag Set for Telegram

<!-- Required for Telegram previews -->
<meta property="og:title" content="Your Page Title" />
<meta property="og:description" content="A concise 1–2 sentence description." />
<meta property="og:image" content="https://example.com/og-image.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" />
<meta property="og:site_name" content="Your Brand Name" />

<!-- Twitter card fallback — Telegram reads this too -->
<meta name="twitter:card" content="summary_large_image" />

These eight tags give Telegram everything it needs to generate a rich preview card with a large image, title, description, and source domain label.

Telegram Image Requirements

Telegram supports two distinct preview layouts depending on the image dimensions:

  • Large image card (summary_large_image style): Use 1200×630px at a 1.91:1 ratio — Telegram renders this as a wide banner spanning the full chat width above the title and description. This is the recommended layout for articles, blog posts, and product pages.
  • Square thumbnail card (summary style): Use 400×400px or larger at a 1:1 ratio — Telegram renders this as a small square image on the left side of the title/description text. Use this for app icons or profile-style images.
  • Minimum dimensions: approximately 200×200px. Below this Telegram drops the image and shows text-only.
  • Maximum file size: keep images under 5MB. For reliable loading in group chats, aim for under 500KB.
  • Formats: JPEG and PNG are universally supported. WebP is supported in recent Telegram clients.
  • URL must be HTTPS — Telegram will not load images served over plain HTTP.
  • Image must be publicly accessible — images behind authentication, private CDNs, or bot-blocking middleware will not load.
TipTelegram desktop renders link cards prominently in the message timeline. Telegram mobile shows them inline below the message. Always test at both sizes — a 1200×630px image that looks perfect on desktop should still be legible when scaled down to mobile thumbnail size.

What a Telegram Link Preview Looks Like

Telegram renders a bordered preview card attached directly below the message text. The layout has these elements:

  • Colored vertical bar on the left — uses the accent color from og:site_name or the Telegram theme color
  • Source domain label — derived from og:url or og:site_name, shown in the accent color
  • Title — from og:title, rendered in bold; truncated around 80–100 characters
  • Description — from og:description, shown in lighter text below the title; truncated around 200 characters
  • Image — displayed below the text for large-format cards, or as a left-side thumbnail for square cards

Common Telegram Preview Failures

1. No preview generated at all

This happens when Telegram cannot reach your page, finds no OG tags in the server-rendered HTML, or the page blocks Telegram's crawler with a robots.txt "Disallow: /" rule or a firewall that blocks Telegram's IP ranges.

2. Preview shows title and description but no image

Most often caused by: the og:image URL is HTTP (not HTTPS), the image requires authentication to access, the image URL returns a redirect that Telegram does not follow, or the image is hosted on a CDN that blocks bots.

3. Old preview still showing after you updated your tags

Telegram caches previews server-side. There is no official way to force a cache bust, but adding a query parameter to the URL (e.g., ?v=2) creates a new cache key and forces Telegram to re-fetch. Alternatively, wait for the cache to expire — typically a few hours.

4. Preview works in direct messages but not in group channels

In large Telegram channels with link preview disabled by the channel admin, link cards will not appear regardless of your OG tags. This is a Telegram setting, not a tag issue.

5. Preview shows wrong image or text from a previous version

This is a caching issue. Telegram fetched the page before your latest changes and cached the old data. Add a query parameter, or wait for the cache to expire. You can also use Telegram's @WebpageBot to test URLs — it shows the current cached preview and allows you to request a refresh.

Telegram-Specific Behavior to Know

  • Telegram's crawler User-Agent is typically TelegramBot (like TwitterBot, it identifies as a bot) — if your server blocks non-browser User-Agents, Telegram will see blocked content or a 403, not your HTML.
  • Telegram respects x-robots-tag HTTP headers. If you send "noindex" or "none" headers, Telegram may skip link preview generation.
  • Telegram supports instant view for some article URLs — a separate system that shows article content inline without a browser redirect. Instant View uses its own rules and is opt-in for publishers.
  • Private Telegram channels disable link previews by default. This is a channel setting, not a technical issue with your tags.
  • Telegram's preview cache is not per-user. Once a URL is cached on Telegram's servers, all users sharing that link get the same cached preview.

Testing Telegram Link Previews

There are several ways to test and debug your Telegram link previews:

  • @WebpageBot — Telegram's official bot for testing link previews. Message it with your URL and it returns the current cached preview and allows you to request a fresh fetch. This is the most reliable Telegram-native testing tool.
  • OGProof — simulates how crawlers including Telegram-style server-side bots fetch your page without executing JavaScript. It parses OG tags from the raw server HTML, validates image accessibility, and renders a preview of how the card will appear across multiple platforms including Telegram.
  • curl test — verify your OG tags are in the server HTML with: curl -s -A "TelegramBot/1.0" https://yoursite.com/page | grep og:. If the tags appear, Telegram can find them.
  • Network tab check — in Chrome DevTools, throttle to "Fast 3G" and check that your og:image URL loads within 2–3 seconds. Slow image loads can cause Telegram to skip the image in the preview.
TipRun your URL through OGProof before sharing in Telegram. OGProof emulates the server-side fetch Telegram performs, validates that OG tags are present in static HTML (not injected by JavaScript), confirms the image is HTTPS and accessible, and shows you a rendered preview of the link card.

Clearing Telegram Link Preview Cache

Telegram's server-side cache means you cannot clear a preview by clearing a browser cache or device cache. Options to force a re-fetch:

  • Add a query parameter — appending ?v=2 (or any unique parameter) to the URL creates a new cache key. The preview will be fresh, but the URL changes.
  • Use @WebpageBot — message the bot with your URL and request a cache refresh. This is the most direct way to force Telegram to re-fetch.
  • Wait for natural expiry — Telegram's preview cache typically expires within a few hours for most URLs.
  • Use a URL shortener with redirect — some services allow you to change the destination URL. Telegram will re-fetch the preview when it encounters a URL it has not seen, but the shortener URL itself may have its own cache.

Telegram OG Tag Checklist

  • og:title — present and under 80 characters to avoid truncation in Telegram previews
  • og:description — present and under 200 characters for full display in the card
  • og:image — absolute HTTPS URL, 1200×630px for large card or 400×400px for square thumbnail
  • og:image:width and og:image:height — always include so Telegram can render without a second fetch
  • og:url — canonical HTTPS URL; Telegram uses the domain as the source label
  • og:site_name — your brand name, displayed above the title
  • OG tags present in server-rendered HTML — not injected by client-side JavaScript
  • Image URL is HTTPS — HTTP image URLs will not load in Telegram
  • Image is publicly accessible — no authentication, no bot-blocking middleware
  • Image loads within 2–3 seconds — slow images cause Telegram to skip the preview image
  • robots.txt does not block TelegramBot or all bots — verify with @WebpageBot
  • Validate with OGProof to confirm tags are in static HTML and the preview renders correctly

Validate your OG tags now

Paste any URL and see exactly how it renders on Twitter, LinkedIn, Facebook, Discord, Slack, and iMessage — in seconds.

Try OGProof free →