Discover how a simple metadata object can save hours of repetitive coding and boost your site's visibility!
Why Metadata API (static metadata) in NextJS? - Purpose & Use Cases
Imagine manually adding meta tags like title, description, and social previews to every page in your Next.js app by editing HTML files or components one by one.
This manual approach is repetitive, easy to forget, and inconsistent across pages. It slows development and can cause SEO or sharing issues if metadata is missing or incorrect.
The Metadata API in Next.js lets you define static metadata in one place per page or layout, automatically generating the right tags for SEO and social sharing without repetitive code.
import Head from 'next/head'; export default function Page() { return <><Head><title>Home</title><meta name="description" content="Welcome" /></Head><main>...</main></>; }
export const metadata = { title: 'Home', description: 'Welcome' };
export default function Page() { return <main>...</main>; }This makes your app more consistent, easier to maintain, and improves SEO and social previews effortlessly.
A blog site where each post automatically gets correct titles and descriptions for search engines and social media previews without extra code in every post component.
Manual metadata is repetitive and error-prone.
Next.js Metadata API centralizes static metadata per page.
Improves SEO, sharing, and developer experience.
Practice
metadata object in a Next.js page or layout?Solution
Step 1: Understand the role of metadata in Next.js
Themetadataobject is used to add static information such as page title and description.Step 2: Connect metadata to SEO and social sharing
This information helps search engines and social media platforms display the page correctly.Final Answer:
To provide static information like title and description for SEO and social sharing -> Option AQuick Check:
Metadata = SEO info [OK]
- Confusing metadata with routing or styling
- Thinking metadata handles user login
- Assuming metadata is dynamic by default
Solution
Step 1: Recall the syntax for static metadata export
Next.js expects a named export calledmetadataas an object.Step 2: Check each option's syntax
export const metadata = { title: 'Home' }correctly exports a constant object namedmetadata. The other options use incorrect export forms or syntax.Final Answer:
export const metadata = { title: 'Home' } -> Option CQuick Check:
Named export of object = export const metadata = { title: 'Home' } [OK]
- Using default export instead of named export
- Exporting a function instead of an object
- Incorrect export syntax causing errors
export const metadata = { title: 'About Us', description: 'Learn about our team' }What will be the page's title shown in the browser tab?
Solution
Step 1: Identify the title property in metadata
Themetadataobject has atitleset to 'About Us'.Step 2: Understand how Next.js uses metadata
Next.js uses thetitleproperty to set the browser tab's page title.Final Answer:
About Us -> Option AQuick Check:
Page title = metadata.title [OK]
- Confusing description with title
- Expecting metadata object name as title
- Assuming no title is set without explicit <title> tag
export const metadata = { title: 'Contact', description: Contact us page }Why does this cause an error?
Solution
Step 1: Check the syntax of the description value
The description value is written without quotes, which is invalid for strings in JavaScript.Step 2: Understand JavaScript string syntax
Strings must be enclosed in quotes (' or ") to be valid. Missing quotes cause a syntax error.Final Answer:
Missing quotes around the description string -> Option BQuick Check:
Strings need quotes [OK]
- Forgetting quotes around strings
- Thinking metadata must be a function
- Misplacing export keyword
metadata export?Solution
Step 1: Understand openGraph image format in Next.js metadata
The openGraph images property expects an array of objects with aurlkey.Step 2: Check each option's openGraph structure
export const metadata = { title: 'Blog', description: 'Latest posts', openGraph: { images: [{ url: '/blog.png' }] } }correctly uses an array with an object containingurl. The other options use incorrect formats.Final Answer:
export const metadata = { title: 'Blog', description: 'Latest posts', openGraph: { images: [{ url: '/blog.png' }] } } -> Option DQuick Check:
openGraph images = array of {url} objects [OK]
- Using string instead of array for images
- Using wrong property name like image instead of images
- Not wrapping image url in an object
Ready to prove it?
Pass the test and this pattern moves unknown
