SEO V2
This commit is contained in:
@@ -3,6 +3,8 @@ import dotenv from 'dotenv';
|
||||
import { blogPosts } from '../lib/blog-data';
|
||||
import { pillarMeta } from '../lib/pillar-data';
|
||||
import { authors } from '../lib/author-data';
|
||||
import { publishedUseCases } from '../lib/growth-pages';
|
||||
import { useCasePagesDe } from '../lib/growth-pages-de';
|
||||
|
||||
dotenv.config();
|
||||
|
||||
@@ -55,34 +57,44 @@ export function getAllIndexableUrls(): string[] {
|
||||
'wifi-qr-code', 'crypto-qr-code', 'event-qr-code', 'facebook-qr-code',
|
||||
'instagram-qr-code', 'twitter-qr-code', 'youtube-qr-code', 'whatsapp-qr-code',
|
||||
'tiktok-qr-code', 'geolocation-qr-code', 'call-qr-code-generator', 'paypal-qr-code',
|
||||
'zoom-qr-code', 'teams-qr-code',
|
||||
'zoom-qr-code', 'teams-qr-code', 'google-review-qr-code',
|
||||
].map(slug => `${baseUrl}/tools/${slug}`);
|
||||
|
||||
// Use-case pages (English) and their German twins under /de
|
||||
const useCasePages = [
|
||||
`${baseUrl}/use-cases`,
|
||||
...publishedUseCases.map(uc => `${baseUrl}${uc.href}`),
|
||||
];
|
||||
const germanPages = [
|
||||
`${baseUrl}/de/preise`,
|
||||
...Object.values(useCasePagesDe).map(uc => `${baseUrl}${uc.href}`),
|
||||
];
|
||||
|
||||
// Blog posts
|
||||
const blogPages = blogPosts.map(post => `${baseUrl}/blog/${post.slug}`);
|
||||
|
||||
// Main pages (synced with sitemap.ts)
|
||||
const mainPages = [
|
||||
baseUrl,
|
||||
`${baseUrl}/about`,
|
||||
`${baseUrl}/contact`,
|
||||
`${baseUrl}/press`,
|
||||
`${baseUrl}/testimonials`,
|
||||
`${baseUrl}/qr-code-erstellen`,
|
||||
`${baseUrl}/qr-code-tracking`,
|
||||
`${baseUrl}/reprint-calculator`,
|
||||
`${baseUrl}/dynamic-qr-code-generator`,
|
||||
`${baseUrl}/bulk-qr-code-generator`,
|
||||
const mainPages = [
|
||||
baseUrl,
|
||||
`${baseUrl}/about`,
|
||||
`${baseUrl}/contact`,
|
||||
`${baseUrl}/press`,
|
||||
`${baseUrl}/testimonials`,
|
||||
`${baseUrl}/qr-code-erstellen`,
|
||||
`${baseUrl}/qr-code-tracking`,
|
||||
`${baseUrl}/reprint-calculator`,
|
||||
`${baseUrl}/dynamic-qr-code-generator`,
|
||||
`${baseUrl}/bulk-qr-code-generator`,
|
||||
`${baseUrl}/custom-qr-code-generator`,
|
||||
`${baseUrl}/manage-qr-codes`,
|
||||
`${baseUrl}/pricing`,
|
||||
`${baseUrl}/tools`,
|
||||
`${baseUrl}/features`,
|
||||
`${baseUrl}/faq`,
|
||||
`${baseUrl}/blog`,
|
||||
`${baseUrl}/privacy`,
|
||||
`${baseUrl}/newsletter`,
|
||||
];
|
||||
`${baseUrl}/manage-qr-codes`,
|
||||
`${baseUrl}/pricing`,
|
||||
`${baseUrl}/tools`,
|
||||
`${baseUrl}/features`,
|
||||
`${baseUrl}/faq`,
|
||||
`${baseUrl}/blog`,
|
||||
`${baseUrl}/privacy`,
|
||||
`${baseUrl}/newsletter`,
|
||||
];
|
||||
|
||||
// Learn hub and pillar pages
|
||||
const learnPages = [
|
||||
@@ -93,7 +105,7 @@ export function getAllIndexableUrls(): string[] {
|
||||
// Author pages
|
||||
const authorPages = authors.map(author => `${baseUrl}/authors/${author.slug}`);
|
||||
|
||||
return [...mainPages, ...freeTools, ...blogPages, ...learnPages, ...authorPages];
|
||||
return [...mainPages, ...freeTools, ...useCasePages, ...germanPages, ...blogPages, ...learnPages, ...authorPages];
|
||||
}
|
||||
|
||||
// If run directly
|
||||
|
||||
Reference in New Issue
Block a user