SEO: multilingual homepage (homeSlug per locale in path/sitemap), Article + llms.txt generators, siteDescription fallback, composeTitle dedup

This commit is contained in:
2026-09-15 15:31:08 +02:00
parent 87d575f335
commit 33ae035adc
25 changed files with 398 additions and 61 deletions
+12 -5
View File
@@ -4,7 +4,7 @@ import { validateFaviconField } from '../../../modules/seo/index.js'
/**
* General site identity fields.
* Consumed by SEO/OG (siteName, defaultShareImage) and frontend (logo, favicon).
* Consumed by SEO/OG (siteName, defaultShareImage) and frontend (logo).
*/
export const generalFields: Field[] = [
{
@@ -16,6 +16,15 @@ export const generalFields: Field[] = [
localized: true,
required: true,
},
{
name: 'siteDescription',
type: 'textarea',
admin: {
description:
'Fallback meta description when a page has none. Also used for llms.txt and Open Graph.',
},
localized: true,
},
{
name: 'titleOrder',
type: 'select',
@@ -47,8 +56,7 @@ export const generalFields: Field[] = [
name: 'logo',
type: 'upload',
admin: {
description:
'Primary site logo. Also used for Organization structured data (buildOrganizationJsonLd).',
description: 'Primary site logo.',
},
relationTo: 'media',
},
@@ -68,8 +76,7 @@ export const generalFields: Field[] = [
'Square icon, PNG or SVG, min. 48×48px (Google requires this to show it in search). Rendered via buildIconsMetadata.',
},
hooks: {
// Warns the editor at save time if the favicon is too small (<48×48) or
// not square — Google won't display such favicons in search results.
// Warn the editor if the favicon is too small / not square for Google.
beforeValidate: [validateFaviconField],
},
relationTo: 'media',