Atom eve seo

This commit is contained in:
2026-07-15 18:08:51 +02:00
parent 48e9e2992c
commit 7b81464a1d
665 changed files with 219503 additions and 894 deletions

View File

@@ -1049,6 +1049,11 @@ export const useCasePageContent: Record<string, UseCasePageContent> = {
description:
'Compare table cards, receipts, packaging inserts, and counter displays to see where customers actually respond.',
},
{
title: 'Employee and event feedback',
description:
'Use break-room posters, badge inserts, or post-event handouts to collect internal or attendee feedback anonymously — without email lists or logins.',
},
],
checklistTitle: 'Feedback QR checklist',
checklist: [
@@ -1105,6 +1110,21 @@ export const useCasePageContent: Record<string, UseCasePageContent> = {
answer:
'Place it where the customer can act right after the experience, such as on table cards, receipts, counters, packaging inserts, or post-service handouts.',
},
{
question: 'Should feedback be anonymous or personalized?',
answer:
'Anonymous forms get more honest responses and work well for employee or in-store feedback. Personalized flows (with an order or table number in the destination URL) let you follow up on specific experiences. The QR code itself works the same either way — the difference is the form it points to.',
},
{
question: 'Can I use feedback QR codes for events?',
answer:
'Yes. Print the code on badges, programs, or exit signage so attendees respond while the session is still fresh. With a dynamic QR code you can switch the destination from a pre-event survey to a post-event one without reprinting.',
},
{
question: 'Can I use QR codes for employee feedback?',
answer:
'Yes. Break rooms, notice boards, and shift handout sheets are common placements. An anonymous form behind the QR code lowers the barrier for honest internal feedback — no login, no email trail.',
},
],
heroImage: '/marketing/use-cases/feedback-qr-codes.png',
heroImageAlt: 'Feedback QR counter card with receipt QR and smartphone review feed preview',

View File

@@ -5,6 +5,8 @@ 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';
import { industryPages } from '../lib/industry-pages';
import { publishedComparisonPages, publishedGuidePages } from '../lib/pseo-published-pages';
dotenv.config();
@@ -84,6 +86,7 @@ export function getAllIndexableUrls(): string[] {
`${baseUrl}/qr-code-tracking`,
`${baseUrl}/reprint-calculator`,
`${baseUrl}/dynamic-qr-code-generator`,
`${baseUrl}/dynamic-barcode-generator`,
`${baseUrl}/bulk-qr-code-generator`,
`${baseUrl}/custom-qr-code-generator`,
`${baseUrl}/manage-qr-codes`,
@@ -94,6 +97,41 @@ export function getAllIndexableUrls(): string[] {
`${baseUrl}/blog`,
`${baseUrl}/privacy`,
`${baseUrl}/newsletter`,
`${baseUrl}/cookie-policy`,
`${baseUrl}/terms`,
`${baseUrl}/restaurants`,
`${baseUrl}/qr-code-analytics`,
`${baseUrl}/qr-code-print-size-guide`,
];
// Alternatives & comparison hub pages
const alternativesPages = [
`${baseUrl}/alternatives`,
`${baseUrl}/alternatives/beaconstac`,
`${baseUrl}/alternatives/bitly`,
`${baseUrl}/alternatives/flowcode`,
`${baseUrl}/alternatives/qr-code-generator`,
`${baseUrl}/vs`,
`${baseUrl}/vs/beaconstac`,
];
// pSEO comparison & guide pages (published subset)
const pseoPages = [
...publishedComparisonPages.map(page => `${baseUrl}${page.canonicalPath}`),
...publishedGuidePages.map(page => `${baseUrl}${page.canonicalPath}`),
];
// Standalone guide pages (not part of the pSEO [slug] route)
const guidePages = [
`${baseUrl}/guide/bulk-qr-code-generation`,
`${baseUrl}/guide/qr-code-best-practices`,
`${baseUrl}/guide/tracking-analytics`,
];
// Industry landing pages
const industryHubPages = [
`${baseUrl}/qr-code-for`,
...industryPages.map(industry => `${baseUrl}/qr-code-for/${industry.slug}`),
];
// Learn hub and pillar pages
@@ -105,7 +143,19 @@ export function getAllIndexableUrls(): string[] {
// Author pages
const authorPages = authors.map(author => `${baseUrl}/authors/${author.slug}`);
return [...mainPages, ...freeTools, ...useCasePages, ...germanPages, ...blogPages, ...learnPages, ...authorPages];
return [
...mainPages,
...freeTools,
...useCasePages,
...germanPages,
...blogPages,
...learnPages,
...authorPages,
...alternativesPages,
...pseoPages,
...guidePages,
...industryHubPages,
];
}
// If run directly