From 9cf15d7deb9d121d0b246af79d20146ac55c28f6 Mon Sep 17 00:00:00 2001 From: MBO-Tech-IT Date: Wed, 6 May 2026 14:20:21 +0200 Subject: [PATCH] =?UTF-8?q?feat:=20add=20SEO=20improvements=20=E2=80=94=20?= =?UTF-8?q?robots.txt,=20sitemap,=20Open=20Graph,=20JSON-LD=20schema?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 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 --- app/datenschutz/page.tsx | 4 +- app/layout.tsx | 104 +++++++++++++++++++++++++++++++++++++-- app/pakete/page.tsx | 13 ++++- app/robots.ts | 14 ++++++ app/sitemap.ts | 20 ++++++++ 5 files changed, 146 insertions(+), 9 deletions(-) create mode 100644 app/robots.ts create mode 100644 app/sitemap.ts diff --git a/app/datenschutz/page.tsx b/app/datenschutz/page.tsx index c40212e..cab14f3 100644 --- a/app/datenschutz/page.tsx +++ b/app/datenschutz/page.tsx @@ -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", }; diff --git a/app/layout.tsx b/app/layout.tsx index 2f33146..6ddb285 100644 --- a/app/layout.tsx +++ b/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 ( + +