This commit is contained in:
2026-01-13 19:03:33 +01:00
parent 65def796ea
commit ceb2ac40ec
14 changed files with 499 additions and 28 deletions

View File

@@ -59,7 +59,7 @@ const blogPosts: Record<string, BlogPostData> = {
{
name: 'Access Analytics Dashboard',
text: 'Navigate to Dashboard → Analytics to view real-time scan data, geographic distribution, and device breakdowns.',
url: 'https://www.qrmaster.net/analytics',
url: 'https://www.qrmaster.net/signup',
},
],
},
@@ -145,7 +145,7 @@ const blogPosts: Record<string, BlogPostData> = {
<div class="bg-blue-50 p-6 rounded-lg my-8">
<h4 class="text-xl font-bold mb-2">Start Tracking Today</h4>
<p>Sign up for QR Master to get access to our advanced <a href="/analytics" class="text-primary-600 hover:underline">analytics dashboard</a>. First 3 codes are free forever.</p>
<p>Sign up for QR Master to get access to our advanced <a href="/signup" class="text-primary-600 hover:underline">analytics dashboard</a>. First 3 codes are free forever.</p>
</div>
</div>`,
},
@@ -2437,10 +2437,10 @@ function truncateAtWord(text: string, maxLength: number): string {
export async function generateMetadata({ params }: { params: { slug: string } }): Promise<Metadata> {
const post = blogPosts[params.slug];
if (!post) {
return {
title: 'Post Not Found',
};
notFound();
}
const title = post.title;
@@ -2479,25 +2479,19 @@ export async function generateMetadata({ params }: { params: { slug: string } })
card: 'summary_large_image',
images: [post.image],
},
robots: {
index: true,
follow: true,
},
};
}
export default function BlogPostPage({ params }: { params: { slug: string } }) {
// Handle redirects for deprecated/legacy URLs
if (params.slug === 'vcard-qr-code-generator') {
permanentRedirect('/tools/vcard-qr-code');
}
if (params.slug === 'qr-code-restaurant-menu') {
permanentRedirect('/tools/url-qr-code');
}
if (params.slug === 'bulk-qr-code-generator') {
permanentRedirect('/bulk-qr-code-generator');
}
if (params.slug === 'bulk-qr-codes-excel') {
permanentRedirect('/blog/bulk-qr-code-generator-excel');
}
if (params.slug === 'qr-code-small-business') {
permanentRedirect('/signup');
// Prevent soft 404s for missing assets
if (params.slug.match(/\.(png|jpg|jpeg|gif|svg|ico|json|txt|xml)$/i)) {
notFound();
}
const post = blogPosts[params.slug];