Hand sitemap/robots to the Meshkee API proxy and expose build-time static routes plus clearer titles, canonicals, and image alts. Co-authored-by: Cursor <cursoragent@cursor.com>
19 lines
1.3 KiB
Plaintext
19 lines
1.3 KiB
Plaintext
### Sitemap + robots.txt
|
|
- Do NOT ship public/sitemap.xml or public/robots.txt (nginx proxies both to Meshkee API).
|
|
- Live sitemap is an index: /sitemap.xml → /sitemap-main.xml + /sitemap-products.xml.
|
|
- Publish GET /meshkee/sitemap-config.json generated at build time from app routes.
|
|
- Include public static routes automatically; exclude auth/checkout/cart/admin paths.
|
|
- Canonical detail URLs (Meshkee defaults — omit templates unless customized):
|
|
- Product: /products/{id}/{nameFaSlug} → GET /tenants/{domain}/products/by-id/{id}
|
|
- Category: /products/category/{id}/{nameFaSlug} → GET /tenants/{domain}/categories/by-id/{id} (then list products with categoryId)
|
|
- Blog: /blog/{id}/{titleSlug} → GET /tenants/{domain}/blogs/by-id/{id}
|
|
- Portfolio: /portfolios/{id}/{titleFaSlug} → GET /tenants/{domain}/portfolios/by-id/{id}
|
|
- Slugify: Farsi letters kept, spaces → -, strip other punctuation. Do not use legacy DB slug in public URLs.
|
|
- After deploy: business dashboard → Website → Settings → Sync sitemap config (optional for CMS URLs; needed for static pages).
|
|
|
|
### On-page SEO (every public page)
|
|
- Unique <title> and meta description on every crawlable page
|
|
- Exactly one H1; H2/H3 for real sections
|
|
- All content images must have meaningful alt (CMS title when available)
|
|
- Prefer CMS fields for titles/descriptions; never leave Next defaults
|