SEO

Search Engine Optimization (SEO) is the process of growing the quality and quantity of website traffic by increasing the visibility of a website or a web page to users of a web search engine. Basically, you want to rank high on Google.

With web applications, this generally means ensuring the proper Open Graph and <meta> tags are inside your <head>. Luckily, there's a handy library called next-seo which makes this process easy for Next.js.

Installing Next SEO

First, install the library.

$ yarn add next-seo

Then, create a default configuration.

next-seo.config.js

const title =
'Fast Feedback – The easiest way to add comments or reviews to your static site.'
const description = 'Fast Feedback is being built as part of React 2025.'
const SEO = {
title,
description,
canonical: 'https://fastfeedback.io',
openGraph: {
type: 'website',
locale: 'en_IE',
url: 'https://fastfeedback.io',
title,
description,
images: [
{
url: 'https://fastfeedback.io/og.png',
alt: title,
width: 1280,
height: 720,
},
],
},
}
export default SEO

Feel free to customize this as you see fit. Finally, import the default configuration into your _app.js file to ensure it's included on every route.

pages/_app.js

import SEO from '../next-seo.config'
..
..
return (
<ThemeProvider theme={customTheme}>
<AuthProvider>
<DefaultSeo {...SEO} />
<GlobalStyle />
<Component {...pageProps} />
</AuthProvider>
</ThemeProvider>
)

Overriding Defaults

It's likely you'll want to override some of the default values for specific pages. You can either import this directly into each page, or create a wrapping component like this.

components/Page.js

import React from 'react'
import { NextSeo } from 'next-seo'
const Page = ({ name, path, children }) => {
const title = `Fast Feedback – ${name}`
const url = `https://fastfeedback.io${path}`
return (
<>
<NextSeo
title={title}
canonical={url}
openGraph={{
url,
title,
}}
/>
{children}
</>
)
}
export default Page