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:
+135
-75
@@ -34,14 +34,9 @@
|
||||
"ast_hash": "b4fd1efd2e3de5280cd81eb855f99aa0",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/blog/[slug]/loading.js": {
|
||||
"mtime": 1783776875.6702917,
|
||||
"ast_hash": "016627769c04cbebb73b4b3cfb0d23c6",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/blog/[slug]/page.js": {
|
||||
"mtime": 1783788127.1066604,
|
||||
"ast_hash": "8a7dd8b28cc39eadd631e4e93cd2c9a2",
|
||||
"mtime": 1784407027.0477514,
|
||||
"ast_hash": "3ef2ccdd2e5e6f053e46597a16e25c26",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/blogs/loading.js": {
|
||||
@@ -50,18 +45,13 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/blogs/page.js": {
|
||||
"mtime": 1783788127.1070502,
|
||||
"ast_hash": "c3171fa9e851483e1cf602dbf0cb61a1",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/clinic/[slug]/loading.js": {
|
||||
"mtime": 1783776875.6710782,
|
||||
"ast_hash": "14e0d7de5c9a363ea15b7e93cee5184f",
|
||||
"mtime": 1784406632.8936884,
|
||||
"ast_hash": "29bdf4c9f75d6efdcf03f153fb9e10c1",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/clinic/[slug]/page.js": {
|
||||
"mtime": 1783788127.107519,
|
||||
"ast_hash": "4f60ebf11d1b5372c11ec251f5813353",
|
||||
"mtime": 1784407022.8888147,
|
||||
"ast_hash": "a0fa950517333d4dfbd2cf07173297e5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/clinics/loading.js": {
|
||||
@@ -70,8 +60,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/clinics/page.js": {
|
||||
"mtime": 1783788127.1081054,
|
||||
"ast_hash": "4812011bfb3102ac75cf14833b65f5f3",
|
||||
"mtime": 1784406347.6483262,
|
||||
"ast_hash": "5bba3feb0c956e665183bcd1ec40c6ac",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/component/AnimationTextHead.js": {
|
||||
@@ -130,8 +120,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/component/Pageguide.js": {
|
||||
"mtime": 1783776875.673467,
|
||||
"ast_hash": "0300a0cab556d111d5c5b8f4a87e9018",
|
||||
"mtime": 1784406207.271761,
|
||||
"ast_hash": "9d7f746731e37d418ca709cbf67dd0fe",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/component/Pagination.js": {
|
||||
@@ -305,8 +295,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/component/head/index.js": {
|
||||
"mtime": 1783776875.6768641,
|
||||
"ast_hash": "e821e9f2887d9a99a6d61b79394ebbdd",
|
||||
"mtime": 1784406294.1020348,
|
||||
"ast_hash": "82dc3526e0ee2be2ecd34b6b1fb17b31",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/component/loading/Circular.js": {
|
||||
@@ -414,14 +404,9 @@
|
||||
"ast_hash": "55e4510b0ffae397bde137577f541559",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/doctor/[slug]/loading.js": {
|
||||
"mtime": 1783776875.67893,
|
||||
"ast_hash": "0162c799a2207f950e524d2775162b84",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/doctor/[slug]/page.js": {
|
||||
"mtime": 1784372994.657654,
|
||||
"ast_hash": "b895af9c7f69b7ee5cfa72afb54157a8",
|
||||
"mtime": 1784407284.5098457,
|
||||
"ast_hash": "db96a84c61baa865908cdee7d6d4e897",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/doctors/loading.js": {
|
||||
@@ -430,8 +415,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/doctors/page.js": {
|
||||
"mtime": 1783788127.109245,
|
||||
"ast_hash": "89750247d7b8c327fcaaca9b7bd21e17",
|
||||
"mtime": 1784406341.5437217,
|
||||
"ast_hash": "6540db05ff1cc0de7d0e1c55e5ae3471",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/error.js": {
|
||||
@@ -485,13 +470,13 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/sitemap.js": {
|
||||
"mtime": 1783837670.0674648,
|
||||
"ast_hash": "87d7e8351aeaf78013c8f1e073e32bff",
|
||||
"mtime": 1784407686.3603573,
|
||||
"ast_hash": "a0279f915ade8ee96f23023100d5dc1a",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/specialties/page.js": {
|
||||
"mtime": 1783788127.1106946,
|
||||
"ast_hash": "4a7b55c186bacc3fe56649ba43559ac0",
|
||||
"mtime": 1784406352.8949425,
|
||||
"ast_hash": "ae805b4462ea5a3b0be07fae1b113182",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/theme/theme.js": {
|
||||
@@ -515,7 +500,7 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/appointment/Container.js": {
|
||||
"mtime": 1784372894.7871401,
|
||||
"mtime": 1784391828.218286,
|
||||
"ast_hash": "8cb736f55e88a28042211b0a6035739f",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
@@ -555,7 +540,7 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/appointment/detail/SubmitData.js": {
|
||||
"mtime": 1784369779.2972658,
|
||||
"mtime": 1784391828.219858,
|
||||
"ast_hash": "c2f66995b3be5c3608bec79c5392674c",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
@@ -570,7 +555,7 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/appointment/index.js": {
|
||||
"mtime": 1784372880.5497036,
|
||||
"mtime": 1784391828.2210534,
|
||||
"ast_hash": "9e19a1e1b6ecb5f32b040fc6e5e65688",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
@@ -615,7 +600,7 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/appointment/successPay/index.js": {
|
||||
"mtime": 1783776875.6890368,
|
||||
"mtime": 1784391828.2219212,
|
||||
"ast_hash": "8e6daf759ebf175178eb070c03e77f28",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
@@ -645,13 +630,13 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/blog/head/index.js": {
|
||||
"mtime": 1783776875.689889,
|
||||
"ast_hash": "815d7aaefc944ccc3307ed1e3a88b7dd",
|
||||
"mtime": 1784406682.6597717,
|
||||
"ast_hash": "2eab10468e5fce355b3b4ac944aa2a8a",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/blog/index.js": {
|
||||
"mtime": 1760953552.2328737,
|
||||
"ast_hash": "46848c06aa6bf6b4456ba026b547d9d0",
|
||||
"mtime": 1784406695.3540223,
|
||||
"ast_hash": "554031757727365554d14e77fd91449a",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/blog/relatedContent/Item.js": {
|
||||
@@ -695,8 +680,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinic/components/about/ContentDetail.js": {
|
||||
"mtime": 1760953552.2337117,
|
||||
"ast_hash": "b6a8ef012a217eac89c90b0433253c29",
|
||||
"mtime": 1784406329.917917,
|
||||
"ast_hash": "ee2ec0cb42264f573e20f4bf95d475f5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinic/components/about/ListBime.js": {
|
||||
@@ -740,8 +725,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinic/components/about/index.js": {
|
||||
"mtime": 1760953552.2343261,
|
||||
"ast_hash": "cf9cedf1c7ff66c2be4a252ce67641c1",
|
||||
"mtime": 1784406333.9955986,
|
||||
"ast_hash": "d7f7f6437879967221185d3b02a6f5bb",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinic/components/contact/ContentDetail.js": {
|
||||
@@ -865,8 +850,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinic/index.js": {
|
||||
"mtime": 1764813617.2930207,
|
||||
"ast_hash": "9040f0915df145d14b69e97a034e9c32",
|
||||
"mtime": 1784406236.7860522,
|
||||
"ast_hash": "591faaba172c34e9941f65aed342ce42",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinics/head/AutoSearch.js": {
|
||||
@@ -910,8 +895,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinics/index.js": {
|
||||
"mtime": 1783776875.6953976,
|
||||
"ast_hash": "f06fbe6a0d4ae74e3b7ad91f0023af94",
|
||||
"mtime": 1784406767.4070415,
|
||||
"ast_hash": "4da5edf0ad30361e217b56759a7e6cb0",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinics/list/ItemClinic.js": {
|
||||
@@ -920,8 +905,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/clinics/list/index.js": {
|
||||
"mtime": 1783776875.6957505,
|
||||
"ast_hash": "94309b5c74e5b249f91909700fd98718",
|
||||
"mtime": 1784406215.5236862,
|
||||
"ast_hash": "d74c2cf770f7a2eb7cc9bf31357bb0b4",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/common/InlineJalaliMonth.js": {
|
||||
@@ -1275,13 +1260,13 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctor/appointmentList/ItemAppointment.js": {
|
||||
"mtime": 1783776875.7039776,
|
||||
"ast_hash": "4122e2d8e034376e9fec85aba74cc311",
|
||||
"mtime": 1784379062.7296646,
|
||||
"ast_hash": "7d4054f02a1066a0f749c878e96c3a51",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctor/appointmentList/index.js": {
|
||||
"mtime": 1783776875.704231,
|
||||
"ast_hash": "c0f474f78abf0e43b0779315ce514128",
|
||||
"mtime": 1784379037.3930647,
|
||||
"ast_hash": "852922a8c3c20031afa776b03cf116ef",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctor/appointmentList/modal/index.js": {
|
||||
@@ -1370,8 +1355,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctor/index.js": {
|
||||
"mtime": 1784373003.075006,
|
||||
"ast_hash": "5ac231f0d8d5d450450c548f8c4ef558",
|
||||
"mtime": 1784406821.2247164,
|
||||
"ast_hash": "104b3b1ca3276bd1adb0a9b21d0c0cc1",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctor/poster/PosterLight.js": {
|
||||
@@ -1395,8 +1380,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctors/head/FilterLocate.js": {
|
||||
"mtime": 1760953552.2439659,
|
||||
"ast_hash": "58d248e3c46201f47464c8b9748e0dbd",
|
||||
"mtime": 1784406269.086647,
|
||||
"ast_hash": "802760f7ca9d22f809dfd93cb5961326",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctors/head/index.js": {
|
||||
@@ -1405,8 +1390,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctors/index.js": {
|
||||
"mtime": 1784014948.7366664,
|
||||
"ast_hash": "2cbc3523c140670b5b28330dadc591da",
|
||||
"mtime": 1784406756.4799144,
|
||||
"ast_hash": "42c5dcc1c26fd4b24ab8ef9751f4f036",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctors/listDoctors/index.js": {
|
||||
@@ -1500,8 +1485,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/home/TextHeader.js": {
|
||||
"mtime": 1783776875.712511,
|
||||
"ast_hash": "9e2b62254d4d2b345f260736c82f7a1c",
|
||||
"mtime": 1784406262.2477946,
|
||||
"ast_hash": "8201cbb392459c065a388fb49387e20e",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/home/index.js": {
|
||||
@@ -2500,18 +2485,18 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/specialties/index.js": {
|
||||
"mtime": 1783776875.721483,
|
||||
"ast_hash": "3974ee8a727b469cced3f740d2767b4a",
|
||||
"mtime": 1784406300.7337966,
|
||||
"ast_hash": "1a62094048ae0e3700ba0564247de886",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/specialties/list/ItemSpecialties.js": {
|
||||
"mtime": 1783776875.7216527,
|
||||
"ast_hash": "b5893cfe7f6c5c41a61a721d7c817fee",
|
||||
"mtime": 1784406551.3291972,
|
||||
"ast_hash": "63d9537e1db9afa8f533e42eb9328ca2",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/specialties/list/index.js": {
|
||||
"mtime": 1783776875.7218535,
|
||||
"ast_hash": "27b0dae4c89e8a6a86f8bcef50841e46",
|
||||
"mtime": 1784406305.8913972,
|
||||
"ast_hash": "845165cec7a0f15a4ab5a6c2cb056dc4",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"constans/index.js": {
|
||||
@@ -2605,8 +2590,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/getCanonicalUrl.js": {
|
||||
"mtime": 1783776875.7578259,
|
||||
"ast_hash": "71161f91c45f487c53ef50e4c114147f",
|
||||
"mtime": 1784407010.2048862,
|
||||
"ast_hash": "382b422d12683c05d27032df15d46bd5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/getStateInfo.js": {
|
||||
@@ -2695,8 +2680,8 @@
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"proxy.js": {
|
||||
"mtime": 1783776875.7619658,
|
||||
"ast_hash": "21f794f5fc7902cb191878f2c473c29b",
|
||||
"mtime": 1784405767.8895226,
|
||||
"ast_hash": "bf1fcfe5ec3952788994411a3910ea50",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"services/api.js": {
|
||||
@@ -3483,5 +3468,80 @@
|
||||
"mtime": 1784371536.5668268,
|
||||
"ast_hash": "9ef9470308b23df8f93dae9b76d33d91",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"app/specialties/[slug]/page.js": {
|
||||
"mtime": 1784406541.9613838,
|
||||
"ast_hash": "9bcbf931390b23e3159e7a0eac913688",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/doctor/appointmentList/bookingState.js": {
|
||||
"mtime": 1784379017.0738394,
|
||||
"ast_hash": "21d4c5671791aed50246b158116683d8",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/specialties/detail/DoctorGrid.js": {
|
||||
"mtime": 1784406425.8105416,
|
||||
"ast_hash": "b1b846c9a9160a1f461a9958d69b30f5",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/specialties/detail/Faq.js": {
|
||||
"mtime": 1784406509.289054,
|
||||
"ast_hash": "ba065f63dadc37c0dcd9d0a40f817282",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"components/specialties/detail/index.js": {
|
||||
"mtime": 1784406519.0040174,
|
||||
"ast_hash": "9fa7eef69222ea971d829772150cb141",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/canonicalStrategy.test.js": {
|
||||
"mtime": 1784405945.6683788,
|
||||
"ast_hash": "2071f0a5b2e217101a01a02e3c0617d3",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/domainHelpers.js": {
|
||||
"mtime": 1784406639.1672857,
|
||||
"ast_hash": "90adb0743935709743883af7c9225688",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/domainHelpers.test.js": {
|
||||
"mtime": 1784405652.7269192,
|
||||
"ast_hash": "fc23deafe26cf454e8c96e57c3a0f049",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/entityQuality.js": {
|
||||
"mtime": 1784406054.8168738,
|
||||
"ast_hash": "51fb7d01b553143993b6bb4dab0c2724",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/listingIntro.js": {
|
||||
"mtime": 1784407866.2714968,
|
||||
"ast_hash": "41f72b224d43827ed1e76a400e6db122",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/listingRobots.js": {
|
||||
"mtime": 1784405698.0589795,
|
||||
"ast_hash": "c80b07a640e35536acf44404dde1076f",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/listingRobots.test.js": {
|
||||
"mtime": 1784405747.7086,
|
||||
"ast_hash": "c85cc1f9006477adc1bc0fce070b74ae",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/specialtyContent.js": {
|
||||
"mtime": 1784407570.458993,
|
||||
"ast_hash": "c723f71b8073175c55ef1f155c75c3b8",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
"lib/specialtyContent.test.js": {
|
||||
"mtime": 1784407873.0701578,
|
||||
"ast_hash": "5312548dd11cc5207a3f53bd272c2d3b",
|
||||
"semantic_hash": ""
|
||||
},
|
||||
".claude/prompt/doctor-profile-booking-state-from-locations.md": {
|
||||
"mtime": 1784377204.9349537,
|
||||
"ast_hash": "5c45fd5c8cc1d2a002c6bbf3d8c8066f",
|
||||
"semantic_hash": ""
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user