@airdraft/plugin-seo
v0.1.6
Published
Airdraft SEO plugin — meta fields, OG, sitemap generation
Downloads
1,102
Readme
@airdraft/plugin-seo
SEO fields injection plugin for Airdraft. Automatically adds a pre-configured seo object field to all collections (or a specified subset), providing meta title, description, OG image, and no-index control without manual schema setup.
Installation
npm install @airdraft/plugin-seoUsage
import { defineConfig } from '@airdraft/core'
import { withSeo } from '@airdraft/plugin-seo'
export const airdraft = defineConfig({
adapter,
collections,
plugins: [
withSeo(), // inject into all collections
withSeo({ collections: ['posts', 'pages'] }), // or specific ones
],
})Injected fields
The plugin adds an seo object field to each targeted collection with the following sub-fields:
| Sub-field | Type | Description |
|---|---|---|
| seo.title | string | Meta / OG title override |
| seo.description | text | Meta description |
| seo.image | image | OG image (deprecated image type — use media in new schemas) |
| seo.noIndex | boolean | Set to true to add <meta name="robots" content="noindex">. Default: false. |
Options
| Option | Type | Default | Description |
|---|---|---|---|
| collections? | string[] | all collections | Names of collections to inject SEO fields into. |
Usage in content
Access SEO data through the entry's data.seo field:
const { entry } = await cms.getEntry('posts', slug)
const metaTitle = entry.data.seo?.title ?? entry.data.title
const metaDesc = entry.data.seo?.description ?? entry.data.excerpt
const ogImage = entry.data.seo?.image
const noIndex = entry.data.seo?.noIndex ?? falseWith Next.js generateMetadata:
export async function generateMetadata({ params }) {
const entry = await cms.getEntry('posts', params.slug)
return {
title: entry?.data.seo?.title ?? entry?.data.title,
description: entry?.data.seo?.description,
robots: entry?.data.seo?.noIndex ? 'noindex' : undefined,
}
}Exports
| Export | Description |
|---|---|
| withSeo(options?) | Creates the SEO plugin |
| WithSeoOptions | Options type |
Changelog
See CHANGELOG.md.
