SEO
Open Graph
Learn Open Graph metadata in Next.js, including static images, dynamic OG images, and social sharing previews.
1. Learning Objectives
By the end of this lesson, you will be able to configure Open Graph metadata, add route-specific OG images, generate dynamic images, and debug social preview issues.
Difficulty: Beginner.
2. Prerequisites
3. Overview
Open Graph metadata controls how pages appear when shared on social platforms and chat apps. Next.js supports Open Graph through metadata fields and special files like opengraph-image.jpg or opengraph-image.tsx.
4. Why This Topic Matters
A link preview is often the first impression of a page. Strong title, description, and image metadata can improve click-through and brand consistency.
5. Real-World Analogy
Open Graph is the poster for your page. The article is the event, but the poster decides whether people notice it in a crowded feed.
6. Core Concepts
| Concept | Meaning |
|---|---|
openGraph | Metadata object for social previews. |
| OG image | Preview image used by platforms. |
| Static OG image | File-based image in route folder. |
| Dynamic OG image | Generated image with ImageResponse. |
| Twitter card | Platform-specific preview metadata. |
7. Syntax & API Reference
8. Visual Diagram
9. Live Example - Full Working Code
What just happened? Each blog post can have a generated OG image based on its own title.
10. Interactive Playground
Try this:
opengraph-image.png to a route.openGraph metadata fields.11. Common Mistakes
| Mistake | Why It Happens | Correct Approach |
|---|---|---|
| Using tiny images | Any image seems enough. | Use platform-friendly dimensions such as 1200x630. |
| Forgetting absolute production URLs | Local URLs work in dev. | Use canonical public URLs for shared pages. |
| Reusing one generic image everywhere | Faster to set globally. | Add route-specific images for key pages. |
12. Best Practices
13. Browser Compatibility
| Feature | Browser Impact | Notes |
|---|---|---|
| OG meta tags | Consumed by platforms | Not visible in normal page UI. |
| Static OG image | Public asset | Must be crawlable. |
| Dynamic OG image | Server generated | Use supported CSS/layout constraints. |
14. Interview Questions
Easy: What is Open Graph used for?Answer: Rich previews when links are shared on social and messaging platforms.
Medium: How can Next.js add a static OG image?Answer: Place an opengraph-image file in the route folder.
Answer: For dynamic pages like blog posts, products, or profiles where each URL needs a unique share image.
15. Debugging Exercise
Bug report: "Slack still shows our old image."
Solution
Social platforms cache previews. Verify tags are correct, use an absolute image URL, then refresh the cache with the platform debugger if available.
16. Practice Exercises
openGraph.title and description.17. Scenario-Based Challenge
A job board has thousands of job detail pages. How should previews be handled?
Walkthrough
Use generateMetadata for title and description, and generated OG images that include company, role, and location.
18. Quick Quiz
1. What metadata object handles social previews? Answer: openGraph.
2. Common OG image size? Answer: 1200x630.
3. Can OG images be dynamic? Answer: Yes.
4. What class creates generated images? Answer: ImageResponse.
5. Do social platforms cache previews? Answer: Yes.
19. Summary & Key Takeaways
20. Cheat Sheet
| Need | Tool |
|---|---|
| Social title | openGraph.title |
| Social summary | openGraph.description |
| Preview URL | openGraph.url |
| Static image | opengraph-image.png |
| Dynamic image | opengraph-image.tsx |
21. Further Reading
22. Next Lesson Preview
Chapter 6 is complete. Next, you will optimize performance, starting with images.