feat: enhance SEO for listing and specialty pages, fix search autocomplete issue
This commit is contained in:
+4
-1
@@ -6,6 +6,7 @@ import { isRootCity } from '@/lib/rootCity';
|
||||
import { extractEntityCityId, findDomainByCityId } from '@/lib/domainHelpers';
|
||||
import { isThinClinic, isThinDoctor } from '@/lib/entityQuality';
|
||||
import specialtiesData from '@/data/specialties.json';
|
||||
import { isIndexableSpecialty } from '@/lib/specialtyIndexing';
|
||||
|
||||
// sitemap باید در زمان اجرا (per-request) روی سرور production تولید شود، نه در build.
|
||||
// در build کانتینر به API دسترسی شبکه ندارد → fetch failed. force-dynamic این را قطعی میکند.
|
||||
@@ -165,9 +166,11 @@ async function getClinicUrls(baseUrl, scope) {
|
||||
// نمیشمارد)، و اگر sitemap از یک منبع و خودِ صفحه از منبع دیگر تصمیم بگیرد، صفحهٔ
|
||||
// ایندکسپذیرِ اعلامنشده یا برعکس میسازیم. اینطور هیچ فراخوانی اضافهای هم ندارد.
|
||||
function getSpecialtyUrls(baseUrl, doctors) {
|
||||
// والدها noindex هستند (lib/specialtyIndexing)؛ اعلامشان در sitemap سیگنال
|
||||
// متناقض به گوگل میدهد، پس اصلاً منتشر نمیشوند.
|
||||
const slugById = new Map(
|
||||
specialtiesData
|
||||
.filter((s) => s?.slug && s.status === 1)
|
||||
.filter((s) => s?.slug && s.status === 1 && isIndexableSpecialty(s))
|
||||
.map((s) => [String(s.id), s.slug])
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user