feat: update specialty URL generation logic and improve indexing strategy for specialties
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user