diff --git a/CLAUDE.md b/CLAUDE.md index d5b2aa9..478a809 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -174,8 +174,17 @@ npm run preview Если 4321 занят — Astro сам найдёт следующий свободный (4322 и т.д.). +## SEO — правила для контента + +**Обязательно** для каждого нового поста/страницы в `src/content/{posts,pages}/*.md`: +- `description:` — уникальное, 120–160 символов. **Не оставлять пустым** — пустая строка не падает на дефолт `SITE_DESCRIPTION`, а передаётся в `` как есть. +- `[slug].astro` передаёт `description={entry.data.description ?? ''}` → BaseLayout. Если `''` — meta пустой. + +**RSS-агрегатор новостей:** источники добавляются в `src/data/feeds.json` (`{name, url, enabled: true, max}`). После push → CI → на следующем cron-тике (каждый час в `:12`) появятся на `/news/`. + ## История - **2026-05-08:** v1 (WordPress 6.x) контейнеризован, миграция со str-u-01 на web.hhivp.com - **2026-05-14:** фикс trust-proxy.conf для Docker bridges (Better WP Security) - **2026-05-21:** v2 редизайн — Vite+React → Astro 5 (стек как у `anotherreflections-website-v2`). Cutover, бэкап старого WP в репо `pushkinohistory-ru` + БД на `db.hhivp.com` (~2 недели на наблюдение). +- **2026-05-30:** заполнены descriptions всем 11 страницам/постам (были пустыми → дубли в Я.Вебмастере).