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:
hamed
2026-07-19 07:52:50 +03:30
parent 36816eded2
commit fd48b48613
48 changed files with 3951 additions and 733 deletions
@@ -1,11 +1,12 @@
import TextLoading from "@/app/component/loading/Text";
import React from "react";
function ContentDetail({ head, children }) {
// عنوان بخش‌ها h2 است؛ فقط نام خود کلینیک h1 می‌گیرد (as="h1"). کلاس‌ها یکسان — بدون تغییر بصری.
function ContentDetail({ head, children, as: Heading = "h2" }) {
return (
<div className="my-[24px]">
<TextLoading width={200} height={20}>
<h1 className="text-[#3B3B3B] text-[20px] font-bold">{head}</h1>
<Heading className="text-[#3B3B3B] text-[20px] font-bold">{head}</Heading>
</TextLoading>
<div className="mt-[16px]">{children}</div>
</div>
+1 -1
View File
@@ -9,7 +9,7 @@ function About({ data }) {
return (
<div className="opacity-page transition-all duration-500">
<Images data={data} />
<ContentDetail head={data.title}>
<ContentDetail head={data.title} as="h1">
<TextDetail data={data} />
</ContentDetail>
<ContentDetail head="بیمه های طرف قرارداد">