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:
@@ -12,6 +12,8 @@ import { useSearchParams } from "next/navigation";
|
||||
import states from "@/data/state.json";
|
||||
import cities from "@/data/city.json";
|
||||
import { isRootCity } from "@/lib/rootCity";
|
||||
import { resolveCityDisplayName } from "@/lib/domainHelpers";
|
||||
import { buildClinicsIntro } from "@/lib/listingIntro";
|
||||
|
||||
function ClinicsPage({ clinics, matchedCity, matchedState }) {
|
||||
const searchParams = useSearchParams();
|
||||
@@ -35,7 +37,7 @@ function ClinicsPage({ clinics, matchedCity, matchedState }) {
|
||||
return (
|
||||
<div>
|
||||
<HeadPageList
|
||||
title="لیست کلینیک ها و درمانگاه های تخصصی"
|
||||
title={`کلینیکها و مراکز درمانی ${resolveCityDisplayName(matchedCity)}`}
|
||||
detail="در قسمت زیر می توانید کلینیک مورد نظر خود را جستجو نمایید"
|
||||
>
|
||||
<SearchBar
|
||||
@@ -48,6 +50,11 @@ function ClinicsPage({ clinics, matchedCity, matchedState }) {
|
||||
setFilteredClinics={setFilteredClinics}
|
||||
/>
|
||||
</HeadPageList>
|
||||
<div className="padding-responsive pt-[24px]">
|
||||
<p className="text-[#525252] text-[14px] md:text-[16px] font-normal leading-8 text-justify">
|
||||
{buildClinicsIntro(resolveCityDisplayName(matchedCity))}
|
||||
</p>
|
||||
</div>
|
||||
<List
|
||||
limit={12}
|
||||
page={page}
|
||||
|
||||
@@ -15,7 +15,11 @@ function List({
|
||||
selected,
|
||||
setFilteredClinics,
|
||||
}) {
|
||||
const listPage = ["کلینیک ها", selected?.city?.name || ""];
|
||||
const listPage = [
|
||||
{ name: "خانه", href: "/" },
|
||||
{ name: "کلینیک ها", href: "/clinics" },
|
||||
{ name: selected?.city?.name || "" },
|
||||
];
|
||||
const [loading, setLoading] = useState(false);
|
||||
const router = useRouter();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user