fix(seo): self-canonical + unique description on 6 pages that deduped to home
CI/CD / CI · API (dotnet build + test) (push) Successful in 1m4s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 30s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m9s
CI/CD / CI · Admin Web (tsc) (push) Successful in 38s
CI/CD / CI · Website (tsc) (push) Successful in 46s
CI/CD / CI · Koja (tsc) (push) Successful in 52s
CI/CD / Deploy · all services (push) Successful in 2m1s

contact / careers / status / privacy / terms / docs set no alternates, so they
inherited the layout's canonical (= the locale homepage) — Google treats them as
duplicates of the home page and drops them. Each now sets a self-referencing
canonical + full fa/en/x-default hreflang (new shared lib/seo.ts pageAlternates)
and a unique meta description (added *Desc keys, fa/en) + per-page OpenGraph.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-24 21:32:08 +03:30
parent 8ea98bdc09
commit 166f2b2586
9 changed files with 74 additions and 8 deletions
+7 -1
View File
@@ -25,7 +25,13 @@
"termsTitle": "Terms of Service — Meezi",
"docsTitle": "Documentation & Help — Meezi",
"statusTitle": "Service Status — Meezi",
"contactTitle": "Contact Us — Meezi"
"contactTitle": "Contact Us — Meezi",
"contactDesc": "Get in touch with the Meezi team — phone, email, and live chat support for cafés and restaurants.",
"careersDesc": "Join Meezi — we're building the smart café & restaurant management platform for Iran. See open roles.",
"statusDesc": "Live status of Meezi services — POS, dashboard, and APIs. Check current uptime and incidents.",
"privacyDesc": "How Meezi collects, uses, and protects your data. Read our privacy policy.",
"termsDesc": "The terms of service that govern your use of Meezi's café & restaurant management platform.",
"docsDesc": "Meezi help center — step-by-step guides for POS, menu, tables, inventory, staff, reports, and more."
},
"nav": {
"features": "Features",