Caching & Invalidation

How Telegram caches link preview data and how to force a refresh

How caching works

Telegram caches preview data on its servers with no documented TTL. In practice, cached previews persist indefinitely until manually refreshed. Once TelegramBot fetches your page, that data is served to everyone who shares the same URL.

Forcing a refresh with @WebpageBot

Telegram actually gives you an official cache-clearing tool, @WebpageBot:

  1. Open a chat with @WebpageBot
  2. Send /start if it’s your first time
  3. Send the URL you want to refresh (or /updatepreview <url>)
  4. The bot re-fetches the page and confirms the update

You can submit up to 10 links at a time. New shares of that URL will use the fresh data.

Existing messages don’t update

Refreshing the cache only affects new shares. Messages already sent keep their original preview data permanently. There’s no way to retroactively update delivered previews.

The noindex memory problem

If your page ever served <meta name="robots" content="noindex"> while TelegramBot was crawling, Telegram remembers it. Removing the directive from your page isn’t enough; you must also use @WebpageBot to force a re-crawl.

Tips

  • Get your tags right before the URL is first shared, since corrections require a manual @WebpageBot refresh
  • Test with @WebpageBot before sharing in group chats or channels
  • The ?v=2 query parameter trick doesn’t reliably work on Telegram because the bot normalizes certain URL parameters