seo
This commit is contained in:
9428
src/lib/blog-data.ts
9428
src/lib/blog-data.ts
File diff suppressed because it is too large
Load Diff
@@ -291,8 +291,8 @@ export const supportResources: SupportResourceLink[] = [
|
||||
'Editorial pillar page for educational browsing and broader QR workflow discovery.',
|
||||
},
|
||||
{
|
||||
href: '/blog/dynamic-vs-static-qr-codes',
|
||||
title: 'Dynamic vs Static QR Codes',
|
||||
href: '/blog/static-vs-dynamic-qr-code',
|
||||
title: 'Static vs Dynamic QR Codes',
|
||||
description:
|
||||
'Explainer for the operational difference between fixed and editable QR destinations.',
|
||||
},
|
||||
@@ -1484,8 +1484,8 @@ export const useCasePageContent: Record<string, UseCasePageContent> = {
|
||||
description: 'Useful when the same physical surfaces need an up-to-date post-scan payment action.',
|
||||
},
|
||||
{
|
||||
href: '/blog/dynamic-vs-static-qr-codes',
|
||||
title: 'Dynamic vs Static QR Codes',
|
||||
href: '/blog/static-vs-dynamic-qr-code',
|
||||
title: 'Static vs Dynamic QR Codes',
|
||||
description: 'Existing editorial asset for choosing editable QR destinations.',
|
||||
},
|
||||
{
|
||||
@@ -1572,8 +1572,8 @@ export const useCasePageContent: Record<string, UseCasePageContent> = {
|
||||
description: 'Another contact-first workflow where the destination needs to stay current after print.',
|
||||
},
|
||||
{
|
||||
href: '/blog/dynamic-vs-static-qr-codes',
|
||||
title: 'Dynamic vs Static QR Codes',
|
||||
href: '/blog/static-vs-dynamic-qr-code',
|
||||
title: 'Static vs Dynamic QR Codes',
|
||||
description: 'Useful background for choosing dynamic QR destinations.',
|
||||
},
|
||||
{
|
||||
|
||||
@@ -30,14 +30,25 @@ export function organizationSchema() {
|
||||
'@context': 'https://schema.org',
|
||||
'@type': 'Organization',
|
||||
'@id': `${SITE_URL}/#organization`,
|
||||
name: 'QR Master',
|
||||
alternateName: ['QRMaster', 'QR Master QR Code Generator'],
|
||||
url: SITE_URL,
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
width: 1200,
|
||||
height: 630,
|
||||
name: 'QR Master',
|
||||
// The brand name is contested: a competing generator runs on qr-master.org
|
||||
// and two unrelated Android apps ship as "QR Master". Listing the spellings
|
||||
// people actually type (incl. the hyphenated form) helps Google tie those
|
||||
// queries to this entity rather than a namesake.
|
||||
alternateName: [
|
||||
'QRMaster',
|
||||
'QR-Master',
|
||||
'qrmaster.net',
|
||||
'QR Master QR Code Generator',
|
||||
],
|
||||
description:
|
||||
'QR Master is a QR code generator for dynamic QR codes that stay editable after printing, with scan analytics by time, device, and location.',
|
||||
url: SITE_URL,
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
width: 1200,
|
||||
height: 630,
|
||||
},
|
||||
sameAs: [
|
||||
'https://www.wikidata.org/wiki/Q137918857',
|
||||
@@ -95,9 +106,9 @@ export function blogPostingSchema(post: BlogPost, author?: AuthorProfile) {
|
||||
name: "QR Master",
|
||||
url: SITE_URL,
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
}
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
}
|
||||
},
|
||||
isPartOf: {
|
||||
'@type': 'Blog',
|
||||
@@ -272,7 +283,7 @@ export function articleSchema(params: {
|
||||
url: SITE_URL,
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
},
|
||||
},
|
||||
url: params.url,
|
||||
@@ -287,7 +298,7 @@ export function reviewSchema(testimonial: Testimonial) {
|
||||
'@type': 'SoftwareApplication',
|
||||
name: 'QR Master',
|
||||
description: 'Professional QR code generator with dynamic QR codes, analytics, and customization.',
|
||||
image: `${SITE_URL}/og-image.png`,
|
||||
image: `${SITE_URL}/og-image.png`,
|
||||
applicationCategory: 'BusinessApplication',
|
||||
operatingSystem: 'Web Browser',
|
||||
offers: {
|
||||
@@ -320,7 +331,7 @@ export function aggregateRatingSchema(aggregateRating: AggregateRating) {
|
||||
'@type': 'SoftwareApplication',
|
||||
name: 'QR Master',
|
||||
description: 'Professional QR code generator with dynamic QR codes, analytics, and customization.',
|
||||
image: `${SITE_URL}/og-image.png`,
|
||||
image: `${SITE_URL}/og-image.png`,
|
||||
applicationCategory: 'BusinessApplication',
|
||||
operatingSystem: 'Web Browser',
|
||||
url: SITE_URL,
|
||||
@@ -367,7 +378,7 @@ export function newsArticleSchema(params: NewsArticleParams) {
|
||||
'@id': `${SITE_URL}/#organization`,
|
||||
logo: {
|
||||
'@type': 'ImageObject',
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
url: `${SITE_URL}/og-image.png`,
|
||||
width: 1200,
|
||||
height: 630,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user