seo + press V2

This commit is contained in:
2026-07-29 16:35:56 +02:00
parent e73075cdbc
commit 914e312a1b
18 changed files with 1030 additions and 739 deletions

View File

@@ -5,7 +5,8 @@ import { MapPin, Shield, Zap, Smartphone, Navigation, Map, Download, Share2 } fr
import { QRCodeSVG } from 'qrcode.react';
import { ToolBreadcrumb } from '@/components/seo/BreadcrumbSchema';
import { RelatedTools } from '@/components/marketing/RelatedTools';
import { generateSoftwareAppSchema, generateFaqSchema } from '@/lib/schema-utils';
import sanitizeHtml from 'sanitize-html';
import { generateSoftwareAppSchema } from '@/lib/schema-utils';
// SEO Optimized Metadata
export const metadata: Metadata = {
@@ -35,6 +36,44 @@ export const metadata: Metadata = {
},
};
// Single source of truth for FAQs: rendered on the page AND emitted as
// FAQPage schema. Google requires every marked-up Q&A to be visible to the
// user on the source page, so never add one without the other.
const faqItems = [
{
question: 'Which map app does it open?',
answer: 'Our generator creates a universal Google Maps link. On most devices, this will open the Google Maps app if installed, or the browser version if not. It is the most compatible method.',
},
{
question: 'How do I find my Latitude and Longitude?',
answer: 'On Google Maps desktop: Right-click any spot on the map. The first item in the menu is the coordinates. Click to copy them.',
},
{
question: 'Does it work offline?',
answer: 'The QR code itself can be scanned offline, but the user will likely need an internet connection to load the map and get directions.',
},
{
question: 'Can I use an address instead?',
answer: 'For precise results, we use coordinates. However, you can use our URL Generator and paste a link to your Google Maps address search result if you prefer.',
},
{
question: 'Is it free?',
answer: 'Yes, generating this location QR code is completely free and requires no signup.',
},
{
question: 'Why not just use an address?',
answer: 'Addresses can be ambiguous or cover large areas (like a park or stadium). Coordinates point to an exact geographic spot, ensuring visitors find the specific meeting point or parking entrance.',
},
{
question: 'Does it work on Apple Maps?',
answer: 'Yes. While the underlying link is a Google Maps link, iOS devices usually handle these gracefully, either opening them in the Google Maps app (if installed) or the browser, where Apple Maps can often intercept directions.',
},
{
question: 'Can I track who scanned it?',
answer: 'Not with this static tool. If you need scan analytics (e.g., how many people scanned your storefront QR), you should use our Dynamic QR Code service.',
},
];
// JSON-LD Structured Data
const jsonLd = {
'@context': 'https://schema.org',
@@ -82,28 +121,18 @@ const jsonLd = {
],
totalTime: 'PT45S',
},
generateFaqSchema({
'Which map app does it open?': {
question: 'Which map app does it open?',
answer: 'Our generator creates a universal Google Maps link. On most devices, this will open the Google Maps app if installed, or the browser version if not. It is the most compatible method.',
},
'How do I find my Latitude and Longitude?': {
question: 'How do I find my Latitude and Longitude?',
answer: 'On Google Maps desktop: Right-click any spot on the map. The first item in the menu is the coordinates. Click to copy them.',
},
'Does it work offline?': {
question: 'Does it work offline?',
answer: 'The QR code itself can be scanned offline, but the user will likely need an internet connection to load the map and get directions.',
},
'Can I use an address instead?': {
question: 'Can I use an address instead?',
answer: 'For precise results, we use coordinates. However, you can use our URL Generator and paste a link to your Google Maps address search result if you prefer.',
},
'Is it free?': {
question: 'Is it free?',
answer: 'Yes, generating this location QR code is completely free and requires no signup.',
},
}),
{
'@type': 'FAQPage',
'@id': 'https://www.qrmaster.net/tools/geolocation-qr-code#faq',
mainEntity: faqItems.map((item) => ({
'@type': 'Question',
name: item.question,
acceptedAnswer: {
'@type': 'Answer',
text: item.answer.replace(/<[^>]+>/g, ''),
},
})),
},
],
};
@@ -284,26 +313,13 @@ export default function GeolocationQRCodePage() {
</p>
<div className="space-y-4">
<FaqItem
question="Why not just use an address?"
answer="Addresses can be ambiguous or cover large areas (like a park or stadium). Coordinates point to an exact geographic spot, ensuring visitors find the specific meeting point or parking entrance."
/>
<FaqItem
question="Does it work on Apple Maps?"
answer="Yes. While the underlying link is a Google Maps link, iOS devices usually handle these gracefully, either opening them in the Google Maps app (if installed) or the browser, where Apple Maps can often intercept directions."
/>
<FaqItem
question="Is it free?"
answer="Yes, generating this location QR code is completely free and requires no signup."
/>
<FaqItem
question="Can I track who scanned it?"
answer="Not with this static tool. If you need scan analytics (e.g., how many people scanned your storefront QR), you should use our Dynamic QR Code service."
/>
<FaqItem
question="Is it free?"
answer="Yes, generating this location QR code is completely free and requires no signup."
/>
{faqItems.map((item) => (
<FaqItem
key={item.question}
question={item.question}
answer={item.answer}
/>
))}
</div>
</div>
</section>
@@ -324,9 +340,14 @@ function FaqItem({ question, answer }: { question: string; answer: string }) {
</svg>
</span>
</summary>
<div className="text-slate-600 px-5 pb-5 pt-0 leading-relaxed text-sm">
{answer}
</div>
<div className="text-slate-600 px-5 pb-5 pt-0 leading-relaxed text-sm [&_a]:text-indigo-600 [&_a]:underline"
dangerouslySetInnerHTML={{
__html: sanitizeHtml(answer, {
allowedTags: ['p', 'strong', 'em', 'ul', 'ol', 'li', 'a', 'br', 'code'],
allowedAttributes: { a: ['href'] },
}),
}}
/>
</details>
);
}