mirror of
https://github.com/Ku6epXBOCTuK/easy-png-tools.git
synced 2026-11-13 17:08:20 +00:00
feat: initial seo descriptions texts
This commit is contained in:
+38
-10
@@ -81,6 +81,19 @@
|
||||
открытия страницы. **Рекламу и ремаркетинг не ставим** — они противоречат
|
||||
позиционированию, в отличие от счётчика посещений. Формулировку «без трекинга»
|
||||
на публичных страницах не использовать: она теперь неточна, см. §1 и S4b.
|
||||
- **Три разных артефакта на странице, три разных источника.** `<title>` для
|
||||
выдачи (`seo.metaTitle`, ~55–60 символов **без префикса бренда** — «Crop PNG
|
||||
Online - Free Image Cropper, No Upload»: бренд не приносит собственных
|
||||
поисковых запросов и съедает треть выдачи), `meta description`
|
||||
(`seo.metaDescription`, ~150–160 символов) и H1 (`pages.<slug>.title`, чистый
|
||||
интент: «Crop PNG online»). **Решение по «free / no upload / нет лимитов»:**
|
||||
прямо в H1 они не идут — Google не вознаграждает ключи в заголовке,
|
||||
переписывает title примерно в 60% случаев, а список выгод в H1 читается как
|
||||
сборка ключей. Эти обещания работают в `meta description` (влияет на
|
||||
кликабельность) и в первом абзаце. **Форматы в H1 не перечисляем:** широкие
|
||||
интенты («crop jpg») закрывает текст первого абзаца, description и FAQ, а не
|
||||
заголовок; это же запрещено §5 как doorway-подход. Реестр не трогаем: `title`
|
||||
в нём остаётся для каталога и цепочек, SEO-заголовки живут в словаре.
|
||||
- **Честные методы.** Никакого клонированного текста, дорвеев, PBN. Контент — по
|
||||
каждому инструменту, с ручной вычиткой.
|
||||
|
||||
@@ -245,18 +258,33 @@
|
||||
|
||||
### S2. Контентный слой (параллельно quality-плану, волнами по категориям)
|
||||
|
||||
- [ ] **[S2a]** Схема данных: `seo`-блок per-tool (`longDescription`,
|
||||
`howTo: string[]`, `faq: {q, a}[]`) — в i18n-словарях (ru/en), не в коде
|
||||
реестра. Черновики — генерацией из схемы параметров инструмента, вычитка
|
||||
вручную пачками по категориям (самый трудоёмкий этап: объём растёт вместе
|
||||
с числом инструментов × 2 локали; RU — отложить до решения о `/ru/`).
|
||||
- [ ] **[S2b]** Компонент контента страницы инструмента (kit): H1, lead, how-to
|
||||
(`ol`), описание параметров (из схемы), FAQ, related tools (перелинковка
|
||||
внутри категории + 2–3 «соседних» интента).
|
||||
- [ ] **[S2c]** Хлебные крошки (Каталог → Категория → Инструмент) в UI.
|
||||
- [x] **[S2a]** Схема данных: `seo`-блок per-tool — **сделано 2026-10-12**: тип
|
||||
`SeoContent` (`longDescription`, `howTo: string[]`, `faq: {q, a}[]`) в
|
||||
`web/src/lib/i18n/dict.ts`, поле `seo?` в `PageStrings`, доступ
|
||||
`pageSeo(page)` в `web/src/lib/i18n/schema-tool-strings.ts`. Хранится в
|
||||
словаре `pages.<slug>.seo`, не в реестре: у реестра нет EN-копии длинного
|
||||
текста по определению, а словарь — единственное место, где лежит текст.
|
||||
**Пока EN-only:** `ignoreMissingPatterns: ["pages.*.seo"]` в
|
||||
`web/eslint.config.js` снимает требование паритета локалей для этого
|
||||
блока, RU появится вместе с `/ru/` (§0). Первые тексты — `crop-png`,
|
||||
`resize-png`.
|
||||
- [x] **[S2b]** Компонент контента страницы инструмента — **сделано 2026-10-12**
|
||||
минимальной версией: `web/src/lib/components/PageContent.svelte` рендерит
|
||||
`longDescription` абзацем, `howTo` списком `<ol>`, `faq` через `<details>`
|
||||
(текст в DOM, ответ не требует скролла); подключён в
|
||||
`web/src/routes/tools/[slug]/+page.svelte` под рабочей областью
|
||||
инструмента и рендерится только при наличии `seo`-блока, так что страницы
|
||||
без текста не меняются. Новый токен `--size-content-prose` (мера колонки
|
||||
текста) появился вместе с потребителем. **Не сделано и вынесено в S2c:**
|
||||
related tools и хлебные крошки.
|
||||
- [ ] **[S2c]** Хлебные крошки (Каталог → Категория → Инструмент) в UI. Related
|
||||
tools по категории (2–3 «соседних» интента) — здесь же: это внутренняя
|
||||
перелинковка, без неё страницы ядра плохо связаны между собой.
|
||||
- [ ] **[S2d]** Первая волна контента — топ приоритетных инструментов ядра
|
||||
(приоритет по вордстату: transparent png, jpg→png, compress, resize, crop,
|
||||
rotate, circle crop, add text, pixelate, grayscale…); отбор — §5.
|
||||
rotate, circle crop, add text, pixelate, grayscale…); отбор — §5. **В
|
||||
работе:** 2 страницы из 5-стадия (crop-png, resize-png) — это пилот формы,
|
||||
а не волна; до снятия `noindex` (S1h) нужны минимум все страницы §5.
|
||||
- Гейты: на каждой странице инструмента — уникальный текст ≥ 300 слов, H1
|
||||
совпадает с интентом, FAQ ≥ 3, related ≥ 3; текст в статике (prerender), не в
|
||||
рантайме.
|
||||
|
||||
Reference in New Issue
Block a user