How Telegram builds a link preview
When you send a message with a link, Telegram's servers (not your phone) fetch the page with the User-Agent TelegramBot (like TwitterBot) and build what Telegram calls an instant webpage preview. The card it shows in the chat has up to four parts:
- Site name in the accent color, from
og:site_name. Without it, Telegram shows the domain. - Title in bold, from
og:title, thentwitter:title, then the page's<title>. - Description, from
og:description, thentwitter:description, then the meta description. Telegram shows more of it than most messengers, several lines. - Image, from
og:image, thentwitter:image.
The image layout depends on the image itself. A wide image (like the standard 1200×630) becomes a large photo under the text. A small or square image becomes a thumbnail in the top-right corner of the card. If your preview shows a tiny square where you expected a banner, check the image's real dimensions in the results above.
Telegram stores the preview on its servers and reuses it for everyone who shares the same URL. That's why a fixed page can keep showing the old card.
Why the Telegram link preview isn't showing
TelegramBot is blocked
Cloudflare's bot protection, a WAF rule or a "block empty User-Agent" rule on the server can answer TelegramBot with a 403 or a JavaScript challenge. The checker requests your page as TelegramBot and as a browser, and shows the difference if there is one. Allow the TelegramBot User-Agent in your firewall rules.
The meta tags are added by JavaScript
TelegramBot reads the raw HTML. If the page is a client-rendered React or Vue app, it sees an empty shell and shows only the link. You need server-side rendering or prerendering for the pages you share.
The image can't be used
Relative image URLs, SVG files, images behind hotlink protection and images that need cookies all end up as a preview without a picture. Use an absolute HTTPS URL to a JPG or PNG.
The preview is cached
If you changed the tags after the link was first shared in Telegram, everyone still gets the old version until you refresh it (see below).
The sender turned previews off
Telegram lets the sender remove or reposition the preview before sending. If only one message is missing a preview, that's the likely reason.
How to refresh a Telegram link preview
- Fix the tags and confirm the result with the checker above (press Re-check to skip our cache).
- Open @WebpageBot in Telegram and send it the exact URL you share, including any trailing slash or parameters.
- The bot replies with the updated preview. New messages with this link use it from now on.
Previews in messages that were already sent don't update. Send the link again to show the new card.
Telegram preview checklist
og:titleunder about 100 characters, with the key words first.og:descriptionof 1–3 sentences. Telegram shows more of it than WhatsApp does.og:site_nameset to your brand name.og:image: 1200×630 JPG or PNG with an absolute HTTPS URL, plusog:image:widthandog:image:height.- TelegramBot gets a 200 response, without redirects to login or consent pages.