diff --git a/app/ratgeber/[slug]/page.tsx b/app/ratgeber/[slug]/page.tsx index e1f5f23..60d0ae0 100644 --- a/app/ratgeber/[slug]/page.tsx +++ b/app/ratgeber/[slug]/page.tsx @@ -1,8 +1,11 @@ import type { Metadata } from "next"; +import Image from "next/image"; import Link from "next/link"; import { notFound } from "next/navigation"; import Nav from "@/components/nav"; import Footer from "@/components/footer"; +import ContextualGuideLink from "@/components/contextual-guide-link"; +import RelatedGuideArticles from "@/components/related-guide-articles"; import { getGuide, GUIDES } from "@/lib/guides"; import { TOOL_PAGES } from "@/lib/tool-pages"; @@ -27,9 +30,16 @@ export async function generateMetadata({ params }: PageProps<"/ratgeber/[slug]"> url: `${SITE_URL}/ratgeber/${guide.slug}`, title: guide.title, description: guide.description, + images: [{ url: guide.image.socialSrc, alt: guide.image.alt, width: 1200, height: 630 }], publishedTime: "2026-08-03T08:00:00+02:00", modifiedTime: "2026-08-03T08:00:00+02:00", }, + twitter: { + card: "summary_large_image", + title: guide.title, + description: guide.description, + images: [{ url: guide.image.socialSrc, alt: guide.image.alt }], + }, }; } @@ -44,15 +54,33 @@ export default async function GuidePage({ params }: PageProps<"/ratgeber/[slug]" .filter((tool): tool is (typeof TOOL_PAGES)[number] => Boolean(tool)); const jsonLd = { "@context": "https://schema.org", - "@type": "Article", - headline: guide.title, - description: guide.description, - datePublished: "2026-08-03", - dateModified: "2026-08-03", - inLanguage: "de-DE", - mainEntityOfPage: url, - author: { "@type": "Person", name: "Timo Knuth" }, - publisher: { "@type": "Organization", name: "Entscheidomat", url: SITE_URL }, + "@graph": [ + { + "@type": "Article", + headline: guide.title, + description: guide.description, + datePublished: "2026-08-03", + dateModified: "2026-08-03", + inLanguage: "de-DE", + mainEntityOfPage: url, + author: { "@type": "Person", name: "Timo Knuth" }, + publisher: { + "@type": "Organization", + name: "Entscheidomat", + url: SITE_URL, + logo: { "@type": "ImageObject", url: `${SITE_URL}/icon.svg`, width: 512, height: 512 }, + }, + image: { "@type": "ImageObject", url: `${SITE_URL}${guide.image.src}`, width: 1536, height: 1024 }, + }, + { + "@type": "BreadcrumbList", + itemListElement: [ + { "@type": "ListItem", position: 1, name: "Entscheidomat", item: SITE_URL }, + { "@type": "ListItem", position: 2, name: "Ratgeber", item: `${SITE_URL}/ratgeber` }, + { "@type": "ListItem", position: 3, name: guide.title, item: url }, + ], + }, + ], }; return ( @@ -72,6 +100,9 @@ export default async function GuidePage({ params }: PageProps<"/ratgeber/[slug]"

{guide.description}

Von Timo Knuth · Veröffentlicht und aktualisiert am {guide.updated}

+
+ {guide.image.alt} +
{guide.sections.map((section) => (
@@ -84,9 +115,11 @@ export default async function GuidePage({ params }: PageProps<"/ratgeber/[slug]" {section.bullets.map((bullet) =>
  • {bullet}
  • )} )} +
    ))}
    +