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.sections.map((section) => (
@@ -84,9 +115,11 @@ export default async function GuidePage({ params }: PageProps<"/ratgeber/[slug]"
{section.bullets.map((bullet) => {bullet})}
)}
+
))}
+