Platform Guide7 min read

Reddit Open Graph Tags: How Reddit Renders Link Previews

Learn how Reddit fetches and displays link previews, which OG tags the Reddit crawler reads, image size requirements, and how to validate your tags for maximum upvote-worthy previews.

Reddit is one of the largest link-sharing platforms on the internet, with over 1.5 billion monthly visitors. When you share a URL in a Reddit post or comment, Reddit's crawler fetches the page and renders a preview card below the link — showing a title, description, and thumbnail image. If your Open Graph tags are misconfigured, your link looks bare and gets fewer clicks. Here is exactly how Reddit's preview system works and how to optimize for it.

How Reddit Fetches Link Previews

When a link is submitted to Reddit, Reddit's backend crawler (user-agent: "Redditbot") sends an HTTP GET request to fetch the linked page's HTML. The crawler reads the static HTML returned by your server — it does not execute JavaScript. OG meta tags injected by client-side scripts will not be seen.

Reddit generates a preview thumbnail and stores it on its CDN (i.redd.it). The preview is generated at submission time, not on every page view, so if you fix broken OG tags after a post is submitted the old (broken) preview will persist for that post.

Which Tags Reddit Reads

Reddit's crawler prioritizes tags in this order:

  • og:title — the card heading; truncated at approximately 300 characters (but keep it under 100 for readability)
  • og:description — shown as the card body; truncated at approximately 300 characters
  • og:image — the preview thumbnail displayed with the link
  • og:url — canonical URL used for deduplication across subreddits
  • og:site_name — displayed as the source domain label
  • twitter:title / twitter:image — used as fallback if OG equivalents are absent
  • HTML <title> — last resort if no social meta tags are present

Recommended Tag Set for Reddit

<!-- Core OG tags — required for Reddit link previews -->
<meta property="og:title" content="Your Page Title — Under 100 Characters" />
<meta property="og:description" content="A clear, engaging description under 300 characters." />
<meta property="og:image" content="https://yourdomain.com/og-image.jpg" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:url" content="https://yourdomain.com/your-page" />
<meta property="og:type" content="website" />
<meta property="og:site_name" content="Your Brand" />

<!-- Twitter card as fallback for Reddit's secondary parser -->
<meta name="twitter:card" content="summary_large_image" />

Image Requirements for Reddit

Reddit's image fetching has some specific constraints that differ from other platforms:

  • Recommended size: 1200×630px at 1.91:1 aspect ratio
  • Minimum width: 108px — images smaller than this are rejected and no thumbnail is shown
  • Maximum file size: 20MB (Reddit re-encodes images on its CDN, so smaller originals load faster)
  • Supported formats: JPG, PNG, GIF (Reddit may convert to JPEG), WEBP
  • Image must be served over HTTPS — HTTP image URLs may be blocked
  • Image URL must return the image directly — HTML pages at the image URL are not followed
  • Redirects are followed up to a limit; keep image URLs direct
  • Square images (1:1) render as a thumbnail on the left of the link card
  • Landscape images (1.91:1 or wider) fill the link card preview area

Reddit Link Preview Layouts

Reddit renders link previews differently depending on the post type and client:

  • Link posts: A large thumbnail or hero image appears above or beside the title on the feed card. This uses og:image.
  • Comments/text posts with URLs: A smaller inline preview card appears below the URL with og:title and og:image thumbnail.
  • Reddit redesign (new.reddit.com): Previews are richer, showing og:description below the title.
  • Old Reddit (old.reddit.com): A small square thumbnail is shown to the left of the post title.
  • Reddit mobile app: Full-width image cards for link posts; inline thumbnails for URL comments.

Common Reasons Reddit Shows No Preview

  • OG tags injected by JavaScript — Redditbot sees only the server-rendered HTML
  • og:image served over HTTP instead of HTTPS
  • og:image dimensions below 108px wide
  • Page returns a non-200 status code (404, 500, or redirect chain that exceeds limit)
  • og:title missing or empty — Reddit requires a title to generate a preview
  • og:image URL requires cookies, authentication, or returns a 403
  • Robots.txt blocking Redditbot (check for "User-agent: *" disallow rules)
  • Page response too slow — Reddit's crawler has a strict timeout
  • Self-post domains like i.redd.it or v.redd.it cannot have custom OG tags

Checking if Redditbot is Blocked

If your site has a restrictive robots.txt or Cloudflare bot protection, Redditbot may be blocked from crawling your page. Check your robots.txt first:

# Fetch your robots.txt
curl -s https://yourdomain.com/robots.txt

# Simulate Redditbot fetch
curl -s -A "Redditbot/1.0 (+http://www.reddit.com)" https://yourdomain.com/your-page \
  | grep -iE 'og:title|og:description|og:image|og:url'

If the OG tags appear in the curl output, Redditbot can read them. If they are absent or you get a 403, your server is likely blocking the bot. Add Redditbot to your allowlist in both robots.txt and any bot-protection middleware.

Next.js App Router: Server-Side Rendering is Required

With Next.js App Router, metadata is server-rendered by default — exactly what Redditbot needs. Export a metadata object from your page and Next.js will inject the OG tags into the static HTML:

// app/your-page/page.tsx
import type { Metadata } from 'next';

export const metadata: Metadata = {
  title: 'Your Page Title',
  description: 'Description under 300 characters.',
  openGraph: {
    title: 'Your Page Title',
    description: 'Description for Reddit and other social platforms.',
    url: 'https://yourdomain.com/your-page',
    siteName: 'Your Brand',
    images: [
      {
        url: 'https://yourdomain.com/og-image.jpg',
        width: 1200,
        height: 630,
        alt: 'Preview image for Your Page Title',
      },
    ],
    type: 'website',
  },
  twitter: {
    card: 'summary_large_image',
    title: 'Your Page Title',
    description: 'Description for Twitter/X.',
  },
};
TipReddit caches link previews at submission time. If you fix broken OG tags after a post is submitted, the fix will not apply to existing posts — only to future posts sharing the same URL. There is no way to force Reddit to re-crawl a submitted link.

Reddit vs. Other Platforms: Key Differences

  • Preview is generated once at post submission — not dynamically on each page load like Slack or Discord
  • Redditbot does not execute JavaScript — always use server-rendered OG tags
  • og:image minimum width is 108px — lower than most other platforms (which require 200px+)
  • Reddit does not display og:description on old.reddit.com — only on the redesign and mobile app
  • Multiple subreddits can share the same URL — each generates its own cached preview
  • Reddit's CDN (i.redd.it) re-encodes images, so the displayed image may differ slightly from the original

How to Test Reddit Link Previews

  1. 1.Use OGProof to validate your OG tags are present in the server-rendered HTML and your og:image is accessible over HTTPS
  2. 2.Submit your URL to a test subreddit (r/test or a private subreddit you control) and observe the generated preview
  3. 3.Check that Redditbot is not blocked in your robots.txt or firewall rules
  4. 4.If previews are missing, use curl with the Redditbot user-agent (above) to diagnose whether the issue is server-side or tag-related
  5. 5.For production URLs already posted to Reddit, note that fixing tags will not update existing post previews — only new posts will use the corrected tags

Checklist: Reddit-Ready Open Graph Tags

  • og:title present and under 100 characters
  • og:description present and under 300 characters
  • og:image present and served over HTTPS
  • og:image at least 108px wide (1200×630px recommended)
  • og:url set to canonical URL
  • og:site_name set to brand name
  • All OG tags present in server-rendered HTML (not JavaScript-injected)
  • og:image URL publicly accessible without authentication
  • Redditbot not blocked in robots.txt or firewall
  • Page returns HTTP 200 (not a redirect chain or error page)
  • Validated with OGProof to confirm tags are in static HTML and image is reachable

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 →