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";
|
import LegalLayout from "@/components/LegalLayout";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Datenschutzerklaerung | MBO-Tech-IT",
|
title: "Datenschutzerklärung | MBO-Tech-IT",
|
||||||
description: "Datenschutzerklaerung gemaess DSGVO / DS-GVO",
|
description: "Datenschutzerklärung gemäß DSGVO für mbo-tech-it.de",
|
||||||
robots: "noindex, nofollow",
|
robots: "noindex, nofollow",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
104
app/layout.tsx
104
app/layout.tsx
|
|
@ -3,21 +3,109 @@ import "./globals.css";
|
||||||
import Providers from "@/components/Providers";
|
import Providers from "@/components/Providers";
|
||||||
import { PageTracker } from "@/components/analytics/PageTracker";
|
import { PageTracker } from "@/components/analytics/PageTracker";
|
||||||
|
|
||||||
|
const baseUrl = "https://mbo-tech-it.de";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
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:
|
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: [
|
keywords: [
|
||||||
|
"IT-Service Crailsheim",
|
||||||
"Docker",
|
"Docker",
|
||||||
"Kubernetes",
|
"Kubernetes",
|
||||||
"Proxmox",
|
"Proxmox",
|
||||||
"Hetzner",
|
"Hetzner Cloud",
|
||||||
"Cloud",
|
"WLAN Crailsheim",
|
||||||
"IT",
|
"Netzwerk",
|
||||||
"Virtualisierung",
|
"Virtualisierung",
|
||||||
"Container",
|
"Container",
|
||||||
"DevOps",
|
"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({
|
export default function RootLayout({
|
||||||
|
|
@ -27,6 +115,12 @@ export default function RootLayout({
|
||||||
}) {
|
}) {
|
||||||
return (
|
return (
|
||||||
<html lang="de" className="scroll-smooth" suppressHydrationWarning>
|
<html lang="de" className="scroll-smooth" suppressHydrationWarning>
|
||||||
|
<head>
|
||||||
|
<script
|
||||||
|
type="application/ld+json"
|
||||||
|
dangerouslySetInnerHTML={{ __html: JSON.stringify(structuredData) }}
|
||||||
|
/>
|
||||||
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<PageTracker />
|
<PageTracker />
|
||||||
<Providers>{children}</Providers>
|
<Providers>{children}</Providers>
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,18 @@ import Link from "next/link";
|
||||||
import Logo from "@/components/Logo";
|
import Logo from "@/components/Logo";
|
||||||
|
|
||||||
export const metadata: Metadata = {
|
export const metadata: Metadata = {
|
||||||
title: "Pakete & Preise | MBO-Tech-IT",
|
title: "Pakete & Preise",
|
||||||
description:
|
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. Individuelle Angebote auf Anfrage.",
|
||||||
|
openGraph: {
|
||||||
|
title: "Pakete & Preise | MBO-Tech-IT",
|
||||||
|
description:
|
||||||
|
"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 = [
|
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