Ahrefs
This commit is contained in:
@@ -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];
|
||||
|
||||
Reference in New Issue
Block a user