feat: add canonical URL handling and entity quality checks
- Implemented canonical URL strategies for city-specific domains and entities. - Added helper functions for domain and city resolution. - Created tests for canonical URL generation and domain resolution. - Introduced entity quality checks for doctors and clinics to ensure meaningful content. - Developed unique introductory texts for listing pages to avoid duplicate content. - Established robots.txt policies for listing pages to manage indexing based on user filters. - Enhanced specialty content with dynamic introductions and FAQs to improve SEO.
This commit is contained in:
@@ -20,12 +20,13 @@ function FilterLocate({ filter, sendReq, setFilter, setDataInURL }) {
|
||||
onClick={() => setOpen(true)}
|
||||
>
|
||||
<LocationD />
|
||||
<h1 className="text-[#525252] text-[16px] font-semibold">
|
||||
{/* متن دکمهٔ انتخاب موقعیت، عنوان صفحه نیست — تگ عوض شد، کلاسها دستنخورده */}
|
||||
<span className="text-[#525252] text-[16px] font-semibold">
|
||||
{" "}
|
||||
{filter?.state?.name || "استان"}
|
||||
{" / "}
|
||||
{filter?.city?.name || "شهر"}
|
||||
</h1>
|
||||
</span>
|
||||
</Button>
|
||||
</ModalSearchCity>
|
||||
);
|
||||
|
||||
@@ -8,6 +8,8 @@ import specialties from "@/data/specialties.json";
|
||||
import states from "@/data/state.json";
|
||||
import cities from "@/data/city.json";
|
||||
import { isRootCity } from "@/lib/rootCity";
|
||||
import { resolveCityDisplayName } from "@/lib/domainHelpers";
|
||||
import { buildDoctorsIntro } from "@/lib/listingIntro";
|
||||
|
||||
function DoctorsPage({ matchedCity, matchedState, list }) {
|
||||
const searchParams = useSearchParams();
|
||||
@@ -50,6 +52,13 @@ function DoctorsPage({ matchedCity, matchedState, list }) {
|
||||
|
||||
return (
|
||||
<div className="pt-[95px] sm:pt-[120px] padding-responsive">
|
||||
{/* h1 واقعی صفحه — تایپوگرافی همان عنوان صفحات لیست (HeadPageList) */}
|
||||
<h1 className="text-[#3B3B3B] text-[16px] sm:text-[19px] md:text-[22px] lg:text-[24px] text-center font-bold">
|
||||
پزشکان و متخصصان {resolveCityDisplayName(matchedCity)} | رزرو نوبت آنلاین
|
||||
</h1>
|
||||
<p className="text-[#525252] text-[14px] md:text-[16px] font-normal leading-8 mt-[16px] text-justify">
|
||||
{buildDoctorsIntro(resolveCityDisplayName(matchedCity))}
|
||||
</p>
|
||||
<Head
|
||||
limit={12}
|
||||
filter={filter}
|
||||
|
||||
Reference in New Issue
Block a user