S.
  • Services
  • For you
  • Solutions
  • Work
  • About
  • Know-how
  • Blog
Start a project
EN/PL/RU
  • Services01
  • For you02
  • Solutions03
  • Work04
  • About05
  • Know-how06
  • Blog07
Start a project
EN/PL/RU
Vlad Sedenko
Independent web product developer
EU / Poland / Warsaw
Products
  • NextWooNext.js storefront for WooCommerce
© 2026. All rights reserved
Services
  • Product Discovery
  • UX/UI Design
  • MVP Development
  • SaaS Development
  • Website Redesign
  • Web Application Security
  • Conversion Optimization
  • API Integrations & Business Automation
  • Product Support
Explore
  • Services
  • For you
  • Work
  • Solutions
  • About
  • Blog
  • Know-how
  • Contact
Start a project
  • vlad@sedenko.net
  • LinkedIn
  • Privacy/Cookies
Know-how/Next.js SEO Checklist: The Complete Guide for App Router (2026)

Part 4 of 22

Open Graph and dynamic OG images

Open Graph tags and dynamic OG images in Next.js with ImageResponse: auto-generated 1200×630 previews for every page.

2026-07-15
Open Graph and dynamic OG images

All topics in this guide

A practical, section-by-section SEO checklist for Next.js: rendering strategy, Metadata API, hreflang, structured data, Core Web Vitals, and optimization for AI answer engines.

OG tags don't rank you, but they decide whether anyone clicks your link on LinkedIn, Slack, Telegram or X. The Metadata API handles the tags:

export const metadata: Metadata = {
  openGraph: {
    title: "Next.js SEO Checklist",
    description: "Every layer of SEO in the App Router.",
    type: "article",
    images: [{ url: "/og/next-seo-checklist.png", width: 1200, height: 630 }],
  },
  twitter: {
    card: "summary_large_image",
  },
};

The underrated feature: generated OG images. Drop an opengraph-image.tsx file next to any route and Next.js renders a 1200×630 image on the edge — no designer needed for every blog post:

// app/blog/[slug]/opengraph-image.tsx
import { ImageResponse } from "next/og";

export const size = { width: 1200, height: 630 };
export const contentType = "image/png";

export default async function OgImage({ params }) {
  const post = await getPost(params.slug);
  return new ImageResponse(
    (
      <div
        style={{
          display: "flex",
          flexDirection: "column",
          width: "100%",
          height: "100%",
          justifyContent: "center",
          padding: 80,
          background: "#0a0a0a",
          color: "#fff",
        }}
      >
        <div style={{ fontSize: 64, fontWeight: 700 }}>{post.title}</div>
        <div style={{ fontSize: 28, marginTop: 24, color: "#a1a1aa" }}>
          example.com/blog
        </div>
      </div>
    ),
    size,
  );
}

Checklist:

  • OG title/description/image on every shareable page
  • Image is 1200×630; text on it is readable at thumbnail size
  • twitter.card set to summary_large_image
  • Preview checked in opengraph.xyz or the LinkedIn Post Inspector
← PreviousCanonical URLs and hreflang: one page, one addressNext →sitemap.ts and robots.ts: file conventions instead of hand-written XML

01—22

All topics in this guide

  1. 01Rendering strategy: what does the crawler actually see?→
  2. 02Metadata API: titles, descriptions and the template pattern→
  3. 03Canonical URLs and hreflang: one page, one address→
  4. 04Open Graph and dynamic OG images•
  5. 05sitemap.ts and robots.ts: file conventions instead of hand-written XML→
  6. 06Structured data: JSON-LD that earns rich results→
  7. 07Images, fonts and scripts: the classic performance trio→
  8. 08Core Web Vitals: the three numbers Google measures→
  9. 09Redirects, 404s and status codes→
  10. 10Caching and content freshness→
  11. 11AEO/GEO: getting cited by ChatGPT, Perplexity and Google AI Overviews→
  12. 12Monitoring: SEO is a loop, not a launch task→
  13. 13Trust and E-E-A-T: making your site believable→
  14. 14Image SEO: turning pictures into traffic→
  15. 15Internal linking and site architecture→
  16. 16Search intent: pages that match what people actually type→
  17. 17Programmatic SEO in Next.js: pages at scale without the spam→
  18. 18SEO migration: replatforming to Next.js without losing traffic→
  19. 19Pagination and faceted navigation without index bloat→
  20. 20Accessibility and SEO: one job, two rewards→
  21. 21Content decay: refresh, consolidate or prune→
  22. 22Off-page for developers: earning links without buying them→

Want this handled for you?

I audit and fix technical SEO on Next.js sites — indexing, performance, hreflang and AI visibility.

Technical SEO service