feat: add branded social preview
CI / backend-and-migrations (push) Canceled after 0s
CI / astro-build (push) Canceled after 0s
CI / compose-e2e (push) Canceled after 0s

This commit is contained in:
ik
2026-09-07 13:31:34 +07:00
parent 494a37ce8f
commit 7e60daed6f
4 changed files with 8 additions and 3 deletions
+1 -1
View File
@@ -12,7 +12,7 @@ RF4DB/RF4-STAT/RF4MAP/RF4 Posts сначала принимаются в изо
На сайте у каждой записи отображается источник, а у агрегированной активности — все вошедшие в расчёт источники. Неполные community-наблюдения публикуются сразу в отдельной ленте «Полевые сигналы» с предупреждением и перечнем отсутствующих полей; до подтверждения полноты они не влияют на индекс клёва.
Базовый SEO-контур готов для `rf4spotter.ru`: страницы имеют уникальные метаданные, canonical, Open Graph/Twitter Card и JSON-LD; доступны динамические `/robots.txt` и `/sitemap.xml`, административные и ошибочные страницы закрыты от индексации, добавлена собственная страница 404. Фирменное OG-изображение и индексируемые страницы рыб/водоёмов остаются следующими пакетами в roadmap.
Базовый SEO-контур готов для `rf4spotter.ru`: страницы имеют уникальные метаданные, canonical, Open Graph/Twitter Card, фирменное изображение 1200×630 и JSON-LD; доступны динамические `/robots.txt` и `/sitemap.xml`, административные и ошибочные страницы закрыты от индексации, добавлена собственная страница 404. Индексируемые страницы рыб/водоёмов остаются следующим пакетом в roadmap.
Подробный план и актуальные чекбоксы находятся в [`docs/ROADMAP.md`](docs/ROADMAP.md). Результаты проверки интерфейса и пять приоритетных UX-пакетов описаны в [`docs/UI_UX_AUDIT.md`](docs/UI_UX_AUDIT.md).
Binary file not shown.

After

Width:  |  Height:  |  Size: 860 KiB

+6 -1
View File
@@ -5,7 +5,7 @@ const {
title = "RF4 Spotter — свежие точки клёва Russian Fishing 4",
description = "Свежие точки, уловы и честная оценка активности в Russian Fishing 4 с обязательным указанием источников.",
noindex = false,
image = "/lake-dawn.png",
image = "/og-rf4spotter.png",
structuredData = null,
} = Astro.props;
const path = Astro.url.pathname;
@@ -35,10 +35,15 @@ const jsonLd = JSON.stringify({
<meta property="og:description" content={description} />
<meta property="og:url" content={canonical} />
<meta property="og:image" content={socialImage} />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:image:type" content="image/png" />
<meta property="og:image:alt" content="Лаймовый поплавок на тёмном озере с координатной сеткой" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:title" content={title} />
<meta name="twitter:description" content={description} />
<meta name="twitter:image" content={socialImage} />
<meta name="twitter:image:alt" content="Лаймовый поплавок на тёмном озере с координатной сеткой" />
<script type="application/ld+json" set:html={jsonLd} is:inline />
<title>{title}</title>
</head>
+1 -1
View File
@@ -112,7 +112,7 @@
### SEO и структура публичного сайта
- [x] Добавить единый SEO-контракт страниц: уникальные `title`/`description`, canonical URL, Open Graph и Twitter Card (7 сентября 2026).
- [ ] Подготовить фирменное OG-изображение 1200×630 и проверить превью ссылок.
- [x] Подготовить и подключить фирменное OG-изображение 1200×630; локально проверены размер и метатеги, внешняя проверка превью выполняется после DNS/TLS (7 сентября 2026).
- [x] Добавить production-aware `robots.txt`, исключить `/admin`, `/api`, `/health` и `/ready` из индексации (7 сентября 2026).
- [x] Добавить динамический `sitemap.xml` для существующих статических страниц и публичных точек; страницы рыб и водоёмов включить после реализации их маршрутов (7 сентября 2026).
- [x] Добавить JSON-LD: `WebSite`, `Dataset` и `BreadcrumbList` на соответствующих страницах (7 сентября 2026).