React SEO component library for managing meta tags, Open Graph, Twitter Cards, JSON-LD structured data, and canonical URLs per page — enabling Google to detect and index every individual page
Package Exports
react-seo-kit
Readme
@koadit/react-seo
A powerful React SEO package for managing dynamic meta tags, Open Graph, Twitter Cards, JSON-LD structured data, and canonical URLs — enabling Google to detect and index every individual page in your React application.
Features
✅ Per-page SEO — set different title/description per route
✅ Google-friendly — canonical URLs, robots meta, JSON-LD structured data for rich results
✅ Open Graph — Facebook, LinkedIn, WhatsApp link previews
✅ Twitter Cards — Twitter/X link previews
✅ SSR-safe — built on react-helmet-async, compatible with Next.js and Vite SSR
// pages/HomePage.tsximport{SEO}from'@koadit/react-seo';exportdefaultfunctionHomePage(){return(<><SEOtitle="Home"titleTemplate="%s | My Awesome App"description="Welcome to My Awesome App — the best place to get things done."canonical="https://myapp.com/"openGraph={{
type:'website',
url:'https://myapp.com/',
siteName:'My Awesome App',
images:[{
url:'https://myapp.com/og-home.png',
width:1200,
height:630,
alt:'My Awesome App home page',},],}}twitter={{
cardType:'summary_large_image',
site:'@myawesomeapp',
handle:'@myawesomeapp',}}/><main><h1>Welcome!</h1></main></>);}
// pages/AboutPage.tsximport{SEO}from'@koadit/react-seo';exportdefaultfunctionAboutPage(){return(<><SEOtitle="About Us"titleTemplate="%s | My Awesome App"description="Learn about the team behind My Awesome App."canonical="https://myapp.com/about"robots="index, follow"/><main><h1>About Us</h1></main></>);}
API Reference
<SEOProvider />
Wrap your entire application once at the root. Required for <SEO /> to work.
Prop
Type
Description
children
ReactNode
Your app
helmetContext
object
(SSR only) Empty object to collect rendered helmet state
<SEO />
Place inside any page/route component to set SEO metadata for that page.
Prop
Type
Default
Description
title
string
—
Page title
titleTemplate
string
'%s'
Template wrapping the title. Use %s as placeholder