
Security News
TC39 Advances Temporal to Stage 4 Alongside Several ECMAScript Proposals
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.
@power-seo/react
Advanced tools
Framework-agnostic React SEO components — meta tags, Open Graph, Twitter Card, breadcrumbs, and more
@power-seo/react is a complete set of declarative React components for SEO meta tag management for Next.js Pages Router, Vite, Gatsby, and any React application that renders to the DOM, helping you manage titles, Open Graph, Twitter Cards, canonical URLs, robots directives, hreflang, and breadcrumbs from a single composable API.
What it does
<SEO> component — renders title, meta description, canonical, robots, Open Graph, and Twitter Card from one component<DefaultSEO> at app root sets site-wide defaults; pages override selectivelynoindex, noarchive, max-snippet, max-image-preview, unavailable_after<Hreflang> renders <link rel="alternate"> tags for multi-language sites<Breadcrumb> renders visible nav plus embedded BreadcrumbList structured dataWhat it is not
@power-seo/meta for Next.js App Router generateMetadata()react-helmet-async under the hood; targets DOM-rendering React appsRecommended for
The problem
<Helmet> blocks inconsistently across hundreds of componentscontent strings omit valid directives or include typosWhy developers care
<DefaultSEO> prevents redundant meta tag renders on every page<SEO> all-in-one component — renders title, meta description, canonical, robots, Open Graph, and Twitter Card tags from a single component<DefaultSEO> context-based defaults — set site-wide title template, default OG image, and global robots directives; individual pages override selectively<Robots> full directive support — all 10 robots directives including noindex, nofollow, noarchive, nosnippet, noimageindex, notranslate, max-snippet, max-image-preview, max-video-preview, unavailable_after<OpenGraph> all OG properties — og:title, og:description, og:type, og:url, og:image (with width/height/alt), og:site_name, og:locale, og:article:* properties<TwitterCard> all card types — summary, summary_large_image, app, player; with site, creator, title, description, image<Canonical> link tag — renders <link rel="canonical"> with proper href<Hreflang> i18n alternate links — renders <link rel="alternate" hreflang="..."> tags for multi-language sites including x-default<Breadcrumb> with JSON-LD — renders visible breadcrumb navigation plus embedded application/ld+json BreadcrumbList.d.ts declarations, all props fully typed<DefaultSEO> enforces site-wide title templates and OG defaults with zero duplication<TwitterCard> and <OpenGraph> images increase social click-through ratesimport { HelmetProvider } from 'react-helmet-async';
import { DefaultSEO, SEO } from '@power-seo/react';
function App() {
return (
<HelmetProvider>
<DefaultSEO
titleTemplate="%s | My Site"
defaultTitle="My Site"
description="The best site on the internet."
openGraph={{ type: 'website', siteName: 'My Site' }}
twitter={{ site: '@mysite', cardType: 'summary_large_image' }}
/>
<Router>
<Routes />
</Router>
</HelmetProvider>
);
}
function BlogPage({ post }) {
return (
<>
<SEO
title={post.title}
description={post.excerpt}
canonical={`https://example.com/blog/${post.slug}`}
openGraph={{
type: 'article',
images: [{ url: post.coverImage, width: 1200, height: 630, alt: post.title }],
}}
/>
<article>{/* content */}</article>
</>
);
}
What you should see
<title>My Post Title | My Site</title> in the DOM <head>og:image, twitter:card, and link rel="canonical" tags on every pagenpm i @power-seo/react
# or
yarn add @power-seo/react
# or
pnpm add @power-seo/react
# or
bun add @power-seo/react
Peer dependencies:
npm install react react-dom react-helmet-async
Note: Wrap your app in
<HelmetProvider>fromreact-helmet-async.
Supported
_app.tsx and per-page <SEO> componentsgatsby-plugin-react-helmet or standaloneEnvironment notes
react-helmet-async (SSR-safe)@power-seo/meta instead for App Routerog:article:publishedTime and author datanoindex entire environments with a single <DefaultSEO robots={{ index: false }} />Before:
- Each page has a different <Helmet> implementation with inconsistent OG formats
- Some pages missing canonical, some missing twitter:card
- Robots directives hand-coded as raw strings with typos
After (@power-seo/react):
- <DefaultSEO> enforces site-wide title template and default OG image
- <SEO> on each page overrides only what differs — canonical, OG image, article properties
- <Robots> accepts typed boolean props — no raw content string typos
<HelmetProvider> at the root — required for SSR and correct head management<DefaultSEO> once at the app root — every page inherits defaults without re-declaringnoindex={true} on <SEO> for staging, admin, and private pages — not in next.config.js redirectscanonical on pages with query parameters to prevent duplicate contentx-default in <Hreflang> to signal the default language for international visitorsWhere it runs
react-helmet-async manages <head> updates on navigationHelmetProvider collects head tags during render and serializes them into the initial HTML@power-seo/auditData flow
react-helmet-async merges <DefaultSEO> defaults with <SEO> overrides<head> tags: <title>, <meta>, <link>, <script> (JSON-LD for breadcrumbs)| Capability | next-seo | react-helmet | react-helmet-async | @power-seo/react |
|---|---|---|---|---|
| Typed robots directives | ✅ | ❌ | ❌ | ✅ |
| DefaultSEO context pattern | ✅ | ❌ | ❌ | ✅ |
| Hreflang support | ✅ | ❌ | ❌ | ✅ |
| Breadcrumb with JSON-LD | ✅ | ❌ | ❌ | ✅ |
max-snippet / max-image-preview | ✅ | ❌ | ❌ | ✅ |
| TypeScript-first API | ✅ | ⚠️ | ⚠️ | ✅ |
All 17 packages are independently installable — use only what you need.
| Package | Install | Description |
|---|---|---|
@power-seo/core | npm i @power-seo/core | Framework-agnostic utilities, types, validators, and constants |
@power-seo/react | npm i @power-seo/react | React SEO components — meta, Open Graph, Twitter Card, robots, breadcrumbs |
@power-seo/meta | npm i @power-seo/meta | SSR meta helpers for Next.js App Router, Remix v2, and generic SSR |
@power-seo/schema | npm i @power-seo/schema | Type-safe JSON-LD structured data — 20 builders + 18 React components |
@power-seo/content-analysis | npm i @power-seo/content-analysis | Yoast-style SEO content scoring engine with React components |
@power-seo/readability | npm i @power-seo/readability | Readability scoring — Flesch-Kincaid, Gunning Fog, Coleman-Liau, ARI |
@power-seo/preview | npm i @power-seo/preview | SERP, Open Graph, and Twitter/X Card preview generators |
@power-seo/sitemap | npm i @power-seo/sitemap | XML sitemap generation, streaming, index splitting, and validation |
@power-seo/redirects | npm i @power-seo/redirects | Redirect engine with Next.js, Remix, and Express adapters |
@power-seo/links | npm i @power-seo/links | Link graph analysis — orphan detection, suggestions, equity scoring |
@power-seo/audit | npm i @power-seo/audit | Full SEO audit engine — meta, content, structure, performance rules |
@power-seo/images | npm i @power-seo/images | Image SEO — alt text, lazy loading, format analysis, image sitemaps |
@power-seo/ai | npm i @power-seo/ai | LLM-agnostic AI prompt templates and parsers for SEO tasks |
@power-seo/analytics | npm i @power-seo/analytics | Merge GSC + audit data, trend analysis, ranking insights, dashboard |
@power-seo/search-console | npm i @power-seo/search-console | Google Search Console API — OAuth2, service account, URL inspection |
@power-seo/integrations | npm i @power-seo/integrations | Semrush and Ahrefs API clients with rate limiting and pagination |
@power-seo/tracking | npm i @power-seo/tracking | GA4, Clarity, PostHog, Plausible, Fathom — scripts + consent management |
| Need | Common approach | @power-seo approach |
|---|---|---|
| React meta tags | next-seo / react-helmet | @power-seo/react — typed components |
| App Router metadata | generateMetadata() | @power-seo/meta — typed helpers |
| JSON-LD structured data | Manual <script> tags | @power-seo/schema — typed builders |
| Sitemap generation | next-sitemap | @power-seo/sitemap — streaming + index |
Multi-tenant SaaS
<DefaultSEO titleTemplate="%s | {tenantName}" /><DefaultSEO openGraph={{ images: [...] }} /><DefaultSEO robots={{ index: false }} />ERP / internal portals
noindex, nofollow globally on internal modules<Hreflang> for internationalized ERP portals with locale-specific URLsRecommended integration pattern
<DefaultSEO> in _app.tsx or root layout<SEO> on each page using data fetched server-side@power-seo/auditThis package does
This package does not
generateMetadata() — use @power-seo/meta instead@power-seo/sitemap@power-seo/schema| Component | Description |
|---|---|
<SEO> | All-in-one per-page SEO component — title, description, canonical, robots, OG, Twitter |
<DefaultSEO> | App-root defaults — title template, global OG, global Twitter, global robots |
<Robots> | Renders <meta name="robots"> with all supported directives |
<OpenGraph> | Renders Open Graph og:* meta tags |
<TwitterCard> | Renders Twitter Card twitter:* meta tags |
<Canonical> | Renders <link rel="canonical"> |
<Hreflang> | Renders <link rel="alternate" hreflang="..."> tags |
<Breadcrumb> | Renders breadcrumb nav + embedded BreadcrumbList JSON-LD |
| Prop | Type | Default | Description |
|---|---|---|---|
title | string | — | Page title (applied to title template if DefaultSEO is present) |
description | string | — | Meta description |
canonical | string | — | Canonical URL |
robots | RobotsDirective | — | Robots directive config object |
openGraph | OpenGraphConfig | — | Open Graph configuration |
twitter | TwitterConfig | — | Twitter Card configuration |
noindex | boolean | false | Shorthand for robots.index = false |
nofollow | boolean | false | Shorthand for robots.follow = false |
languageAlternates | HreflangEntry[] | — | Hreflang entries for i18n |
additionalMetaTags | MetaTag[] | — | Any additional custom meta tags |
additionalLinkTags | LinkTag[] | — | Any additional custom link tags |
| Prop | Type | Default | Description |
|---|---|---|---|
index | boolean | true | true → index, false → noindex |
follow | boolean | true | true → follow, false → nofollow |
noarchive | boolean | false | Prevent cached version in search results |
nosnippet | boolean | false | Prevent text/video snippet in results |
noimageindex | boolean | false | Prevent image indexing on this page |
notranslate | boolean | false | Prevent Google Translate offer |
maxSnippet | number | — | Max text snippet length (e.g. 150) |
maxImagePreview | 'none' | 'standard' | 'large' | — | Max image preview size in results |
maxVideoPreview | number | — | Max video preview duration in seconds |
unavailableAfter | string | — | ISO 8601 date after which to remove page from results |
| Prop | Type | Default | Description |
|---|---|---|---|
items | BreadcrumbItem[] | — | Required. Array of { name: string; url?: string } objects |
separator | string | '/' | Visual separator between breadcrumb items |
className | string | — | CSS class for the outer <nav> element |
itemClassName | string | — | CSS class for each <span> item |
activeClassName | string | — | CSS class for the last (current) item |
renderJsonLd | boolean | true | Whether to render the BreadcrumbList JSON-LD script |
import { buildRobotsContent, parseRobotsContent } from '@power-seo/react';
buildRobotsContent({ index: false, follow: true, maxSnippet: 150 });
// → "noindex, follow, max-snippet:150"
pnpm ipnpm buildpnpm testRelease workflow
npm version patch|minor|majornpm publish --access publicCyberCraft Bangladesh is a Bangladesh-based enterprise-grade software engineering company specializing in ERP system development, AI-powered SaaS and business applications, full-stack SEO services, custom website development, and scalable eCommerce platforms. We design and develop intelligent, automation-driven SaaS and enterprise solutions that help startups, SMEs, NGOs, educational institutes, and large organizations streamline operations, enhance digital visibility, and accelerate growth through modern cloud-native technologies.
| Website | ccbd.dev |
| GitHub | github.com/cybercraftbd |
| npm Organization | npmjs.com/org/power-seo |
| info@ccbd.dev |
MIT
seo, react, meta-tags, open-graph, twitter-card, robots, canonical, hreflang, breadcrumb, json-ld, nextjs, gatsby, typescript, react-helmet
FAQs
Framework-agnostic React SEO components — meta tags, Open Graph, Twitter Card, breadcrumbs, and more
The npm package @power-seo/react receives a total of 28 weekly downloads. As such, @power-seo/react popularity was classified as not popular.
We found that @power-seo/react demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
TC39’s March 2026 meeting advanced eight ECMAScript proposals, including Temporal reaching Stage 4 and securing its place in the ECMAScript 2026 specification.

Research
/Security News
Since January 31, 2026, we identified at least 72 additional malicious Open VSX extensions, including transitive GlassWorm loader extensions targeting developers.

Research
Six malicious Packagist packages posing as OphimCMS themes contain trojanized jQuery that exfiltrates URLs, injects ads, and loads FUNNULL-linked redirects.