feat: update specialty URL generation logic and improve indexing strategy for specialties

This commit is contained in:
hamed
2026-07-20 11:54:03 +03:30
parent 30c3fe8637
commit 984511653b
2 changed files with 22 additions and 37 deletions
+7 -8
View File
@@ -54,14 +54,13 @@ export async function generateMetadata({ params }) {
const description = `لیست بهترین پزشکان ${specialty.name} در ${cityName} همراه با نشانی مطب، ساعات کاری و امتیاز بیماران. رزرو نوبت آنلاین متخصص ${specialty.name}.`;
const image = "/assets/images/og-image.png";
// تخصصی که در این شهر پزشکی ندارد فقط یک عنوان و متن قالبی است — thin content.
// ایندکس نمی‌شود (و در sitemap هم نمی‌آید)، ولی follow می‌ماند تا لینک‌های
// داخلی‌اش دنبال شوند. به‌محض افزوده‌شدن اولین پزشک، خودکار ایندکس‌پذیر می‌شود.
const { total } = await getDoctors(specialty.id, isRoot ? null : matchedCity?.id);
// دستهٔ سطح‌بالا (دارای زیرشاخهٔ فعال) محتوای مستقلی ندارد و با فرزندانش روی همان
// کوئری رقابت می‌کند؛ صفحهٔ قابل‌ایندکس، همان زیرشاخه است.
const noindex = isCategorySpecialty(specialty) || total === 0;
// ایندکس به تعداد پزشکان شهر گره نمی‌خورد: صفحه روی هر دامنه متن مقدمه و FAQ یکتای
// خودش را دارد (buildSpecialtyIntro با هشِ تخصص+شهر واگرا می‌شود) و شهری که امروز
// پزشک ندارد فردا دارد — نوسان ایندکس بدتر از صفحهٔ کم‌پزشک است.
//
// تنها استثنا دستهٔ سطح‌بالاست (دارای زیرشاخهٔ فعال): محتوای مستقلی ندارد و با
// فرزندانش روی همان کوئری رقابت می‌کند؛ صفحهٔ قابل‌ایندکس، همان زیرشاخه است.
const noindex = isCategorySpecialty(specialty);
return {
title,