SEO: Fix structured data validation errors, delete static sitemap, and update indexing scripts

This commit is contained in:
Timo Knuth
2026-01-23 23:10:22 +01:00
parent f3637fc2fe
commit eef4855c1b
147 changed files with 24590 additions and 27027 deletions

View File

@@ -1,8 +1,10 @@
import type { Metadata } from 'next';
import { Suspense } from 'react';
import '@/styles/globals.css';
import { Providers } from '@/components/Providers';
import MarketingDeLayout from './MarketingDeLayout';
import { organizationSchema, websiteSchema } from '@/lib/schema';
import AdSenseScript from '@/components/ads/AdSenseScript';
export const metadata: Metadata = {
title: {
@@ -40,6 +42,13 @@ export const metadata: Metadata = {
images: ['https://www.qrmaster.net/og-image.png'],
},
robots: { index: true, follow: true },
alternates: {
canonical: 'https://www.qrmaster.net/qr-code-erstellen',
languages: {
'en': 'https://www.qrmaster.net/',
'de': 'https://www.qrmaster.net/qr-code-erstellen',
},
},
};
export default function MarketingDeGroupLayout({
@@ -48,18 +57,25 @@ export default function MarketingDeGroupLayout({
children: React.ReactNode;
}) {
return (
<>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationSchema()) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(websiteSchema()) }}
/>
<MarketingDeLayout>
{children}
</MarketingDeLayout>
</>
<html lang="de">
<body className="font-sans">
<Suspense fallback={null}>
<Providers>
<AdSenseScript />
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(organizationSchema()) }}
/>
<script
type="application/ld+json"
dangerouslySetInnerHTML={{ __html: JSON.stringify(websiteSchema()) }}
/>
<MarketingDeLayout>
{children}
</MarketingDeLayout>
</Providers>
</Suspense>
</body>
</html>
);
}

View File

@@ -22,7 +22,7 @@ function truncateAtWord(text: string, maxLength: number): string {
export async function generateMetadata(): Promise<Metadata> {
const title = 'QR Code Erstellen Kostenlos | QR Master';
const description = 'Erstellen Sie QR Codes kostenlos in Sekunden. Dynamische QR-Codes für Feedback, PDF, Coupons & App Stores. Mit Tracking, Branding und Massen-Erstellung. Für immer kostenlos.';
const description = 'Erstellen Sie QR Codes kostenlos in Sekunden. Dynamische QR-Codes für Feedback, PDF und mehr. Mit Tracking, Branding und Massen-Erstellung.';
return {
title: {
@@ -81,8 +81,7 @@ export default function QRCodeErstellenPage() {
<>
<SeoJsonLd data={[organizationSchema(), websiteSchema(), generateFaqSchema(t.faq.questions)]} />
{/* Server-rendered H1 for SEO - visually hidden but crawlable */}
<h1 className="sr-only">QR Code Erstellen Kostenloser QR Code Generator mit Tracking</h1>
{/* Server-rendered SEO content for crawlers - GERMAN */}
<div className="sr-only" aria-hidden="false">