import React from 'react'; import type { Metadata } from 'next'; import Link from 'next/link'; import SeoJsonLd from '@/components/SeoJsonLd'; import { faqPageSchema } from '@/lib/schema'; import { Card, CardContent } from '@/components/ui/Card'; import { ObfuscatedMailto } from '@/components/ui/ObfuscatedMailto'; function truncateAtWord(text: string, maxLength: number): string { if (text.length <= maxLength) return text; const truncated = text.slice(0, maxLength); const lastSpace = truncated.lastIndexOf(' '); return lastSpace > 0 ? truncated.slice(0, lastSpace) : truncated; } export async function generateMetadata(): Promise { const title = truncateAtWord('QR Master FAQ: Dynamic, Tracking, Bulk, and Print', 60); const description = truncateAtWord( 'Answers about dynamic QR codes, scan tracking, privacy, bulk creation, and print setup.', 160 ); return { title, description, alternates: { canonical: 'https://www.qrmaster.net/faq', languages: { 'x-default': 'https://www.qrmaster.net/faq', en: 'https://www.qrmaster.net/faq', }, }, openGraph: { title, description, url: 'https://www.qrmaster.net/faq', type: 'website', images: [ { url: 'https://www.qrmaster.net/og-image.png', width: 1200, height: 630, alt: 'QR Master FAQ', }, ], }, twitter: { title, description, }, }; } type FAQItemWithRichText = { question: string; answer: string; answerRich?: React.ReactNode; }; const faqs: FAQItemWithRichText[] = [ { question: 'What is a dynamic QR code?', answer: 'A dynamic QR code points to a redirect URL, so you can change the final destination later without replacing the printed QR image.', answerRich: ( <> A dynamic QR code points to a redirect URL, so you can change the final destination later without replacing the printed QR image.

Why teams use it: ), }, { question: 'How do I track QR scans?', answer: 'QR Master tracks scans through the dynamic QR redirect step. The analytics views can report time, device, location context, and total or unique scan activity.', answerRich: ( <> QR Master tracks scans through the dynamic QR redirect step.

Current analytics context:
Learn more about tracking ), }, { question: 'What security measures are in place?', answer: 'QR Master uses HTTPS/TLS, CSRF protection for relevant write actions, and rate limiting on API routes.', answerRich: ( <> QR Master uses standard protective controls that are visible in the current codebase.

Security-related controls: ), }, { question: 'How does bulk QR creation work today?', answer: 'QR Master currently supports bulk QR creation through spreadsheet upload in the Business plan. The flow accepts CSV, XLS, and XLSX files, supports up to 1,000 rows per upload, and generates static QR codes.', answerRich: ( <> QR Master currently supports bulk QR creation through spreadsheet upload in the Business plan.

Current bulk flow facts:
See the bulk QR workflow ), }, { question: 'What are the best practices for printing QR codes?', answer: 'For reliable scanning, keep the QR code at least 2x2 cm for close-range use, maintain strong contrast, leave a quiet zone around the code, and use SVG or a high-resolution PNG for output.', answerRich: ( <> For reliable scanning, follow these print-first basics:

), }, { question: 'Is the service privacy-conscious?', answer: 'QR Master minimizes scanner data collection. Privacy-related measures visible in the product context include hashed or anonymized IP handling and no scanner PII storage.', answerRich: ( <> QR Master is built around minimal scanner data collection.

Privacy-related measures:
Read the privacy policy ), }, { question: 'What is the difference between static and dynamic QR codes?', answer: 'Static QR codes store the destination directly in the image and stay fixed. Dynamic QR codes route through QR Master so the destination can be changed later and scan analytics can be reviewed.', answerRich: ( <> Static QR codes store the destination directly in the image and stay fixed. Dynamic QR codes route through QR Master so the destination can be changed later and scan analytics can be reviewed.

Create a dynamic QR code ), }, ]; export default function FAQPage() { return ( <> ({ question, answer })))} />

Frequently Asked Questions

Answers about dynamic QR codes, scan tracking, privacy, bulk creation, and print setup.

Last updated: March 12, 2026

{faqs.map((faq) => (

{faq.question}

{faq.answerRich || faq.answer}
))}

Still have questions?

Our support team is here to help. Contact us at{' '} {' '} and include the workflow you are trying to build.

); }