diff --git a/CLAUDE.md b/CLAUDE.md index 72c3cd7..33ea797 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -135,6 +135,16 @@ docker compose build && docker compose up -d В новой версии БД нет. Старый WP оставлен с БД `anotherreflctions_ru` (`sic`, с опечаткой) на `db.hhivp.com` (45.10.53.205, MySQL), user `u_anotherreflections`, prefix `anm_`. После 1-2 недель наблюдения за новой версией — старый WP-контейнер можно удалить, БД и snapshot тоже. +## SEO-title и description — уникальность + +Шаблон в `BaseLayout.astro:16-17`: `title` рендерится как `${title} — ${SITE_TITLE}`, `description` falls back на `SITE_DESCRIPTION`. Если страница не передаёт свои `title`/`description`, получает дефолт → дубли в выдаче. + +**Правила (поддерживать при добавлении страниц):** +- **Posts** (`src/content/posts/*.md`) — обязателен `description:` в frontmatter (Zod schema: `z.string().default('')`, но пустой даёт fallback). В SEO-title `[slug].astro` подставляет год публикации; если есть другой пост с тем же `title` за тот же год — подставляется полная дата (`DD месяц YYYY`). +- **Pages** (`src/content/pages/*.md`) — обязателен `description:`. `[slug].astro` берёт его напрямую. +- **Категории** (`category/[slug].astro`) — description вычисляется автоматически из количества публикаций и диапазона лет. +- **Главная** (`index.astro`) — свой description прописан явно. + ## SEO/AI файлы - `public/robots.txt` — статика, разрешено всё; явно перечислены GPTBot/ClaudeBot/Google-Extended/CCBot/PerplexityBot/anthropic-ai; ссылки на sitemap-index.xml и sitemap.txt