# صفحات فرود سئویی

سایت عمومی علاوه بر `/` هفت صفحهٔ فرود دارد، هرکدام روی یک کلیدواژهٔ تجاری. آدرس هر
صفحه فارسی و تخت است تا کلیدواژه در خودِ URL بنشیند.

| کلیدواژه | آدرس |
|---|---|
| نرم‌افزار مدیریت کلینیک زیبایی | `/نرم-افزار-مدیریت-کلینیک-زیبایی` |
| نرم‌افزار مدیریت کلینیک دندان‌پزشکی | `/نرم-افزار-مدیریت-کلینیک-دندانپزشکی` |
| نرم‌افزار مدیریت کلینیک فیزیوتراپی | `/نرم-افزار-مدیریت-کلینیک-فیزیوتراپی` |
| سیستم جامع درمانگاهی | `/سیستم-جامع-درمانگاهی` |
| نرم‌افزار رایگان مدیریت کلینیک | `/نرم-افزار-رایگان-مدیریت-کلینیک` |
| نرم‌افزار مدیریت مطب | `/نرم-افزار-مدیریت-مطب` |
| CRM کلینیک‌ها | `/crm-کلینیک` |

## متن هر صفحه کجاست

در `src/Shared/Landing/LandingRegistry.php` — نه در فایل Twig. هر صفحه یک
`LandingPage` است با عنوان، توضیحات متا، کلیدواژه‌ها، `h1`، لید، فهرست امکانات،
پرسش‌های متداول و اسلاگ صفحات مرتبط.

برای ویرایش متن، فقط همان کلاس را عوض کن. برای افزودن صفحهٔ جدید، یک `LandingPage`
تازه به `build()` اضافه کن؛ روت، sitemap و لینک فوتر خودشان به‌روز می‌شوند.

## چرا رجیستری، نه هفت فایل Twig

قالب هر هفت صفحه یکی است و فقط متنشان فرق دارد. هفت فایل یعنی هر تغییر تم هشت بار
تکرار شود و بعد از مدتی هشت نسخهٔ واگرا داشته باشیم.

## تم مشترک

`templates/public/landing.html.twig` همان `encore_entry` صفحهٔ اصلی (`home`) را
بارگذاری می‌کند و این partialها را با آن به اشتراک می‌گذارد:

```
templates/public/_header.html.twig
templates/public/_hero_art.html.twig
templates/public/_reg_modal.html.twig
templates/public/_footer.html.twig
templates/public/_page_scripts.html.twig
```

یعنی تغییر رنگ دکمه یا متن هدر در صفحهٔ اصلی، خودکار در هر هفت صفحه دیده می‌شود.
`LandingPageTest::testLandingUsesTheHomepageTheme` همین را تضمین می‌کند.

## روت

`LandingController` روی `/{slug}` با `priority: -10` می‌نشیند. اولویت منفی لازم است:
این الگو هر مسیر تک‌بخشی را می‌گیرد و بدون آن جلوی `/health`، `/sitemap.xml` و هر
روت ریشه‌ای بعدی را می‌بندد. `LandingPageTest::testExistingRoutesAreNotShadowed`
مراقب همین است.

## سئو

هر صفحه `title`، `description`، `keywords` و `canonical` مخصوص خودش دارد، و سه
schema: `SoftwareApplication`، `BreadcrumbList` و `FAQPage`.

JSON-LD با `json_encode` در Twig ساخته می‌شود نه رشتهٔ دستی — متن فارسی نقل‌قول دارد و
JSONِ دست‌ساز خیلی راحت نامعتبر می‌شود.

`sitemap.xml` خودش هر هفت صفحه را اضافه می‌کند و اسلاگ فارسی را percent-encode
می‌کند. فوتر مشترک هم به همهٔ آن‌ها لینک می‌دهد تا صفحات یتیم نمانند.

## نکتهٔ محتوایی

متن هر صنف عمداً از پایه متفاوت نوشته شده، نه یک قالب با نام تخصص عوض‌شده. هفت صفحه
با متن مشابه از نگاه موتور جستجو محتوای تکراری است و هر هفت‌تا را پایین می‌کشد.
`LandingRegistryTest` عنوان و `h1` تکراری را رد می‌کند، ولی شباهت متن بدنه را ماشین
تشخیص نمی‌دهد — موقع افزودن صفحهٔ جدید حواست باشد.
