feat: add SEO improvements — robots.txt, sitemap, Open Graph, JSON-LD schema
- Add app/robots.ts: block admin/kunden/auth/api, reference sitemap - Add app/sitemap.ts: list public pages (/, /pakete) - layout.tsx: add metadataBase, Open Graph, Twitter Card, LocalBusiness JSON-LD, improve title/description with location (Crailsheim, Region Schwäbisch Hall) - pakete/page.tsx: add Open Graph and canonical URL - datenschutz/page.tsx: fix title/description encoding (Umlaute) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
a2ea70426d
commit
9cf15d7deb
|
|
@ -2,8 +2,8 @@ import type { Metadata } from "next";
|
|||
import LegalLayout from "@/components/LegalLayout";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Datenschutzerklaerung | MBO-Tech-IT",
|
||||
description: "Datenschutzerklaerung gemaess DSGVO / DS-GVO",
|
||||
title: "Datenschutzerklärung | MBO-Tech-IT",
|
||||
description: "Datenschutzerklärung gemäß DSGVO für mbo-tech-it.de",
|
||||
robots: "noindex, nofollow",
|
||||
};
|
||||
|
||||
|
|
|
|||
104
app/layout.tsx
104
app/layout.tsx
|
|
@ -3,21 +3,109 @@ import "./globals.css";
|
|||
import Providers from "@/components/Providers";
|
||||
import { PageTracker } from "@/components/analytics/PageTracker";
|
||||
|
||||
const baseUrl = "https://mbo-tech-it.de";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "MBO-Tech-IT | Docker, Kubernetes & Cloud-Infrastruktur",
|
||||
metadataBase: new URL(baseUrl),
|
||||
title: {
|
||||
default: "MBO-Tech-IT | IT-Service Crailsheim – Docker, Kubernetes & Cloud",
|
||||
template: "%s | MBO-Tech-IT",
|
||||
},
|
||||
description:
|
||||
"Ihr Experte für Docker-Installationen, Kubernetes-Orchestrierung, Proxmox-Virtualisierung und Hetzner Cloud-Infrastruktur. IT-Lösungen für Hard- und Software.",
|
||||
"IT-Experte in Crailsheim: Docker, Kubernetes, Proxmox, Hetzner Cloud, Netzwerk & WLAN. Professioneller IT-Service für Privat- und Gewerbekunden in der Region Schwäbisch Hall.",
|
||||
keywords: [
|
||||
"IT-Service Crailsheim",
|
||||
"Docker",
|
||||
"Kubernetes",
|
||||
"Proxmox",
|
||||
"Hetzner",
|
||||
"Cloud",
|
||||
"IT",
|
||||
"Hetzner Cloud",
|
||||
"WLAN Crailsheim",
|
||||
"Netzwerk",
|
||||
"Virtualisierung",
|
||||
"Container",
|
||||
"DevOps",
|
||||
"IT-Support",
|
||||
"IT-Dienstleister",
|
||||
"Schwäbisch Hall",
|
||||
"Cloud Infrastruktur",
|
||||
],
|
||||
authors: [{ name: "MBO-Tech-IT" }],
|
||||
creator: "MBO-Tech-IT",
|
||||
openGraph: {
|
||||
type: "website",
|
||||
locale: "de_DE",
|
||||
url: baseUrl,
|
||||
siteName: "MBO-Tech-IT",
|
||||
title: "MBO-Tech-IT | IT-Service Crailsheim – Docker, Kubernetes & Cloud",
|
||||
description:
|
||||
"IT-Experte in Crailsheim: Docker, Kubernetes, Proxmox, Hetzner Cloud, Netzwerk & WLAN. Professioneller IT-Service für Privat- und Gewerbekunden.",
|
||||
},
|
||||
twitter: {
|
||||
card: "summary_large_image",
|
||||
title: "MBO-Tech-IT | IT-Service Crailsheim",
|
||||
description:
|
||||
"IT-Experte in Crailsheim: Docker, Kubernetes, Proxmox, Hetzner Cloud, Netzwerk & WLAN.",
|
||||
},
|
||||
robots: {
|
||||
index: true,
|
||||
follow: true,
|
||||
googleBot: {
|
||||
index: true,
|
||||
follow: true,
|
||||
},
|
||||
},
|
||||
alternates: {
|
||||
canonical: baseUrl,
|
||||
},
|
||||
};
|
||||
|
||||
const structuredData = {
|
||||
"@context": "https://schema.org",
|
||||
"@type": "LocalBusiness",
|
||||
"@id": baseUrl,
|
||||
name: "MBO-Tech-IT",
|
||||
description:
|
||||
"Professionelle IT-Dienstleistungen in Crailsheim: Docker, Kubernetes, Proxmox, Cloud-Infrastruktur, Netzwerk und WLAN für Privat- und Gewerbekunden.",
|
||||
url: baseUrl,
|
||||
telephone: "+4917193451093",
|
||||
email: "kontakt@mbo-tech-it.de",
|
||||
address: {
|
||||
"@type": "PostalAddress",
|
||||
streetAddress: "Mörikestr. 2",
|
||||
addressLocality: "Crailsheim",
|
||||
postalCode: "74564",
|
||||
addressCountry: "DE",
|
||||
},
|
||||
geo: {
|
||||
"@type": "GeoCoordinates",
|
||||
latitude: 49.1374,
|
||||
longitude: 10.0695,
|
||||
},
|
||||
areaServed: {
|
||||
"@type": "GeoCircle",
|
||||
geoMidpoint: {
|
||||
"@type": "GeoCoordinates",
|
||||
latitude: 49.1374,
|
||||
longitude: 10.0695,
|
||||
},
|
||||
geoRadius: "100000",
|
||||
},
|
||||
knowsAbout: [
|
||||
"Docker",
|
||||
"Kubernetes",
|
||||
"Proxmox",
|
||||
"Hetzner Cloud",
|
||||
"Netzwerk",
|
||||
"WLAN",
|
||||
"IT-Security",
|
||||
"Virtualisierung",
|
||||
"Linux",
|
||||
],
|
||||
priceRange: "$$",
|
||||
serviceArea: {
|
||||
"@type": "AdministrativeArea",
|
||||
name: "Region Schwäbisch Hall",
|
||||
},
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
|
|
@ -27,6 +115,12 @@ export default function RootLayout({
|
|||
}) {
|
||||
return (
|
||||
<html lang="de" className="scroll-smooth" suppressHydrationWarning>
|
||||
<head>
|
||||
<script
|
||||
type="application/ld+json"
|
||||
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
|
||||
/>
|
||||
</head>
|
||||
<body>
|
||||
<PageTracker />
|
||||
<Providers>{children}</Providers>
|
||||
|
|
|
|||
|
|
@ -3,9 +3,18 @@ import Link from "next/link";
|
|||
import Logo from "@/components/Logo";
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Pakete & Preise",
|
||||
description:
|
||||
"Nextcloud + Paperless-ngx auf Docker, Kubernetes oder Proxmox: Installation, Hosting und Wartung in Crailsheim. Individuelle Angebote auf Anfrage.",
|
||||
openGraph: {
|
||||
title: "Pakete & Preise | MBO-Tech-IT",
|
||||
description:
|
||||
"Konkrete IT-Pakete: Nextcloud + Paperless-ngx auf Docker/Kubernetes/Proxmox – Installation, Hosting und Wartung. Preise auf Anfrage.",
|
||||
"Nextcloud + Paperless-ngx auf Docker, Kubernetes oder Proxmox: Installation, Hosting und Wartung in Crailsheim.",
|
||||
url: "https://mbo-tech-it.de/pakete",
|
||||
},
|
||||
alternates: {
|
||||
canonical: "https://mbo-tech-it.de/pakete",
|
||||
},
|
||||
};
|
||||
|
||||
const packages = [
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
import { MetadataRoute } from "next";
|
||||
|
||||
export default function robots(): MetadataRoute.Robots {
|
||||
return {
|
||||
rules: [
|
||||
{
|
||||
userAgent: "*",
|
||||
allow: "/",
|
||||
disallow: ["/admin/", "/kunden/", "/auth/", "/api/"],
|
||||
},
|
||||
],
|
||||
sitemap: "https://mbo-tech-it.de/sitemap.xml",
|
||||
};
|
||||
}
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
import { MetadataRoute } from "next";
|
||||
|
||||
const baseUrl = "https://mbo-tech-it.de";
|
||||
|
||||
export default function sitemap(): MetadataRoute.Sitemap {
|
||||
return [
|
||||
{
|
||||
url: baseUrl,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "monthly",
|
||||
priority: 1,
|
||||
},
|
||||
{
|
||||
url: `${baseUrl}/pakete`,
|
||||
lastModified: new Date(),
|
||||
changeFrequency: "monthly",
|
||||
priority: 0.8,
|
||||
},
|
||||
];
|
||||
}
|
||||
Loading…
Reference in New Issue