SEO: JSON-LD, hreflang x-default, 404 page, localized OG

- FaqSection: h1/h2 based on standalone prop (fixes missing H1 on /faq)
- faq/page: FAQPage JSON-LD, hreflang x-default, OG image/url
- kontakty/page: LocalBusiness JSON-LD (address, geo, tel, openingHours), hreflang x-default, OG
- uslugi/page: geo in H1 («в Пушкино»), hreflang x-default, OG, expanded description
- [lang]/page: Organization JSON-LD, localized OG (ru_RU/en_US), x-default hreflang
- [slug]/page: localized og:title/siteName, x-default hreflang, areaServed+telephone in Service JSON-LD
- not-found.tsx: 404 page → generates 404.html for nginx error_page directive

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-16 00:56:47 +03:00
parent e223f51bd9
commit 55f88d5227
7 changed files with 200 additions and 18 deletions

View File

@@ -24,7 +24,10 @@ export default function FaqSection({ d, standalone }: { d: Dictionary; standalon
<section id="faq" className={`${standalone ? 'py-24' : 'py-24 border-t border-slate-100'} bg-white`}>
<div className="max-w-3xl mx-auto px-4 sm:px-6">
<div className="text-center mb-12">
<h2 className="text-3xl sm:text-4xl font-bold text-slate-900 mb-4">{d.faq.title}</h2>
{standalone
? <h1 className="text-3xl sm:text-4xl font-bold text-slate-900 mb-4">{d.faq.title}</h1>
: <h2 className="text-3xl sm:text-4xl font-bold text-slate-900 mb-4">{d.faq.title}</h2>
}
<p className="text-slate-500 text-lg">{d.faq.subtitle}</p>
</div>
<div className="flex flex-col gap-3">