Preview Not Showing in Teams

Why your URL shows as plain text with no link unfurl

Admin policy disabled URL previews

Teams is an enterprise product. If your organization’s admin has disabled URL previews in the messaging policy, no URLs will generate unfurls for anyone in that tenant. Ask your Teams administrator to check the “URL Previews” toggle in the Teams Admin Center. Individual users cannot override this.

Page requires authentication

A 401 or 403 response to SkypeUriPreview means no unfurl. Common with intranet pages, SSO-protected pages, and staging environments.

curl -A "SkypeUriPreview Preview/0.5" -I https://yoursite.com/page

Anything other than 200 means the crawler is blocked.

JavaScript-rendered meta tags

SkypeUriPreview does not run JavaScript. Client-side frameworks (React, Vue, Angular, Next.js in client-only mode) that inject OG tags after page load produce no unfurl. Use SSR, pre-rendering, or static meta tags in your HTML template.

Stale client cache showing blank preview

If your page previously returned an error or had no OG tags, Teams caches that empty state for about 30 minutes server-side (and longer in local client caches). After fixing your tags, either wait 30 minutes or append a query parameter: https://yoursite.com/page?v=2

robots.txt blocking the crawler

SkypeUriPreview respects robots.txt. Add an explicit allow rule:

User-agent: SkypeUriPreview
Allow: /

Diagnosis checklist

  1. Check admin policy – are URL previews enabled in the tenant?
  2. Check HTTP response – curl with the SkypeUriPreview user agent, verify 200 OK
  3. Check for SSR – are meta tags in the raw HTML, not JavaScript-injected?
  4. Check robots.txt – is SkypeUriPreview allowed?
  5. Check the cache – wait 30 minutes or query-parameter bust
  6. Check the image – SVG or unreachable images can cause the entire unfurl to fail