qrmaster.net

This commit is contained in:
Timo Knuth
2025-12-09 22:22:36 +01:00
parent 424c61a176
commit 8c5e2fa58e
37 changed files with 549 additions and 915 deletions

View File

@@ -44,12 +44,12 @@ export function organizationSchema() {
return {
'@context': 'https://schema.org',
'@type': 'Organization',
'@id': 'https://www.qrmaster.com/#organization',
'@id': 'https://www.qrmaster.net/#organization',
name: 'QR Master',
url: 'https://www.qrmaster.com',
url: 'https://www.qrmaster.net',
logo: {
'@type': 'ImageObject',
url: 'https://www.qrmaster.com/static/og-image.png',
url: 'https://www.qrmaster.net/static/og-image.png',
width: 1200,
height: 630,
},
@@ -59,11 +59,11 @@ export function organizationSchema() {
contactPoint: {
'@type': 'ContactPoint',
contactType: 'Customer Support',
email: 'support@qrmaster.com',
email: 'support@qrmaster.net',
},
description: 'Dynamic QR code generator with analytics, branding, and bulk generation for modern marketing campaigns.',
inLanguage: 'en',
mainEntityOfPage: 'https://www.qrmaster.com',
mainEntityOfPage: 'https://www.qrmaster.net',
};
}
@@ -71,19 +71,19 @@ export function websiteSchema() {
return {
'@context': 'https://schema.org',
'@type': 'WebSite',
'@id': 'https://www.qrmaster.com/#website',
'@id': 'https://www.qrmaster.net/#website',
name: 'QR Master',
url: 'https://www.qrmaster.com',
url: 'https://www.qrmaster.net',
inLanguage: 'en',
mainEntityOfPage: 'https://www.qrmaster.com',
mainEntityOfPage: 'https://www.qrmaster.net',
publisher: {
'@id': 'https://www.qrmaster.com/#organization',
'@id': 'https://www.qrmaster.net/#organization',
},
potentialAction: {
'@type': 'SearchAction',
target: {
'@type': 'EntryPoint',
urlTemplate: 'https://www.qrmaster.com/blog?q={search_term_string}',
urlTemplate: 'https://www.qrmaster.net/blog?q={search_term_string}',
},
'query-input': 'required name=search_term_string',
},
@@ -94,14 +94,14 @@ export function breadcrumbSchema(items: BreadcrumbItem[]) {
return {
'@context': 'https://schema.org',
'@type': 'BreadcrumbList',
'@id': `https://www.qrmaster.com${items[items.length - 1]?.url}#breadcrumb`,
'@id': `https://www.qrmaster.net${items[items.length - 1]?.url}#breadcrumb`,
inLanguage: 'en',
mainEntityOfPage: `https://www.qrmaster.com${items[items.length - 1]?.url}`,
mainEntityOfPage: `https://www.qrmaster.net${items[items.length - 1]?.url}`,
itemListElement: items.map((item, index) => ({
'@type': 'ListItem',
position: index + 1,
name: item.name,
item: `https://www.qrmaster.com${item.url}`,
item: `https://www.qrmaster.net${item.url}`,
})),
};
}
@@ -110,14 +110,14 @@ export function blogPostingSchema(post: BlogPost) {
return {
'@context': 'https://schema.org',
'@type': 'BlogPosting',
'@id': `https://www.qrmaster.com/blog/${post.slug}#article`,
'@id': `https://www.qrmaster.net/blog/${post.slug}#article`,
headline: post.title,
description: post.description,
image: post.image,
datePublished: post.datePublished,
dateModified: post.dateModified,
inLanguage: 'en',
mainEntityOfPage: `https://www.qrmaster.com/blog/${post.slug}`,
mainEntityOfPage: `https://www.qrmaster.net/blog/${post.slug}`,
author: {
'@type': 'Person',
name: post.author,
@@ -126,19 +126,19 @@ export function blogPostingSchema(post: BlogPost) {
publisher: {
'@type': 'Organization',
name: 'QR Master',
url: 'https://www.qrmaster.com',
url: 'https://www.qrmaster.net',
logo: {
'@type': 'ImageObject',
url: 'https://www.qrmaster.com/static/og-image.png',
url: 'https://www.qrmaster.net/static/og-image.png',
width: 1200,
height: 630,
},
},
isPartOf: {
'@type': 'Blog',
'@id': 'https://www.qrmaster.com/blog#blog',
'@id': 'https://www.qrmaster.net/blog#blog',
name: 'QR Master Blog',
url: 'https://www.qrmaster.com/blog',
url: 'https://www.qrmaster.net/blog',
},
};
}
@@ -147,9 +147,9 @@ export function faqPageSchema(faqs: FAQItem[]) {
return {
'@context': 'https://schema.org',
'@type': 'FAQPage',
'@id': 'https://www.qrmaster.com/faq#faqpage',
'@id': 'https://www.qrmaster.net/faq#faqpage',
inLanguage: 'en',
mainEntityOfPage: 'https://www.qrmaster.com/faq',
mainEntityOfPage: 'https://www.qrmaster.net/faq',
mainEntity: faqs.map((faq) => ({
'@type': 'Question',
name: faq.question,
@@ -165,11 +165,11 @@ export function productSchema(product: { name: string; description: string; offe
return {
'@context': 'https://schema.org',
'@type': 'Product',
'@id': 'https://www.qrmaster.com/pricing#product',
'@id': 'https://www.qrmaster.net/pricing#product',
name: product.name,
description: product.description,
inLanguage: 'en',
mainEntityOfPage: 'https://www.qrmaster.com/pricing',
mainEntityOfPage: 'https://www.qrmaster.net/pricing',
brand: {
'@type': 'Organization',
name: 'QR Master',
@@ -189,11 +189,11 @@ export function howToSchema(task: HowToTask) {
return {
'@context': 'https://schema.org',
'@type': 'HowTo',
'@id': `https://www.qrmaster.com/blog/${task.name.toLowerCase().replace(/\s+/g, '-')}#howto`,
'@id': `https://www.qrmaster.net/blog/${task.name.toLowerCase().replace(/\s+/g, '-')}#howto`,
name: task.name,
description: task.description,
inLanguage: 'en',
mainEntityOfPage: `https://www.qrmaster.com/blog/${task.name.toLowerCase().replace(/\s+/g, '-')}`,
mainEntityOfPage: `https://www.qrmaster.net/blog/${task.name.toLowerCase().replace(/\s+/g, '-')}`,
totalTime: task.totalTime || 'PT5M',
step: task.steps.map((step, index) => ({
'@type': 'HowToStep',