From 41cbf1a8f2e09a394978dfca7210956367566dd1 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 17:12:55 +0000 Subject: [PATCH 01/10] Changes Co-authored-by: AndreiDrang <16991365+AndreiDrang@users.noreply.github.com> --- .lovable/plan.md | 128 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 .lovable/plan.md diff --git a/.lovable/plan.md b/.lovable/plan.md new file mode 100644 index 0000000..98774c0 --- /dev/null +++ b/.lovable/plan.md @@ -0,0 +1,128 @@ +## План внедрения AEO/GEO-улучшений TokenBel + +Три независимых блока, можно катать по одному. Все правки — только в статических HTML/JSON, никакого бэкенда. + +--- + +### Блок 1. Robots.txt — явные правила для AI-search ботов + +**Файл:** `public/robots.txt` (сейчас: 3 строки, `User-agent: * Allow: /` + Sitemap). + +**Что делаем:** +1. Оставляем текущий `Allow: /` для всех как fallback. +2. Добавляем явные блоки `Allow: /` для search-индексеров, которые цитируют сайт в AI-ответах: + - `Googlebot` (Google Search + AI Overviews + Gemini grounding) + - `Bingbot` (Bing + Microsoft Copilot) + - `OAI-SearchBot` (ChatGPT Search) + - `ChatGPT-User` (fetch по запросу пользователя ChatGPT) + - `Claude-SearchBot` (Claude web search) + - `Claude-User` + - `PerplexityBot` + - `Perplexity-User` +3. Комментариями подписываем назначение каждой группы. +4. **Training-ботов (`GPTBot`, `ClaudeBot`, `Google-Extended`, `CCBot`, `Applebot-Extended`, `Meta-ExternalAgent`) НЕ блокируем** — этот вопрос стоит решать отдельно (потеря присутствия в обучающих датасетах ≠ потеря AI-цитирования, но политика по training-контенту — бизнес-решение). Оставляем TODO-комментарий в файле. +5. Оставляем директиву `Sitemap: https://tokenbel.info/sitemap.xml` в конце. + +**Валидация:** файл читается по `/robots.txt`, проверяем через `curl` после деплоя. + +--- + +### Блок 2. FAQPage + Article JSON-LD + +#### 2a. FAQPage на `/faq/` + +**Текущее состояние:** JSON-LD уже есть (`faq/index.html`, строки 145–193), но содержит только **5 вопросов**. На странице фактически больше блоков (категории «Основы», «Как купить», «Метрики»…). + +**Что делаем:** +1. Проходим по всей странице `faq/index.html`, собираем все реальные Q/A пары (визуальные вопросы и ответы, которые видит пользователь). +2. Обновляем существующий `FAQPage` JSON-LD: расширяем `mainEntity` до полного списка, синхронизируем формулировки с видимым на странице текстом (Google требует, чтобы ответ в schema совпадал с ответом на странице). +3. Проверяем результат в Google Rich Results Test после деплоя. + +#### 2b. Article JSON-LD в карточках «Последние новости» на главной + +**Текущее состояние:** в `index.html` секция `#news` (строки 654–737) содержит 4 карточки-ссылки. JSON-LD отсутствует. + +**Что делаем:** +1. Определяем, какие карточки — реально «новости с датой» (доллар — да, статистика за декабрь/ноябрь — да), какие — вечнозелёный гайд (YTM). Для новостей используем `NewsArticle`, для гайда — `TechArticle` или `Article`. +2. Добавляем **один общий** блок ` + + + + +
From f8a3f75fde2a633bdb0617c55c04921c35f12379 Mon Sep 17 00:00:00 2001 From: "gpt-engineer-app[bot]" <159125892+gpt-engineer-app[bot]@users.noreply.github.com> Date: Thu, 2 Jul 2026 21:16:48 +0000 Subject: [PATCH 06/10] Changes Co-authored-by: AndreiDrang <16991365+AndreiDrang@users.noreply.github.com> --- .lovable/plan.md | 128 ----------------------------------------------- 1 file changed, 128 deletions(-) delete mode 100644 .lovable/plan.md diff --git a/.lovable/plan.md b/.lovable/plan.md deleted file mode 100644 index 98774c0..0000000 --- a/.lovable/plan.md +++ /dev/null @@ -1,128 +0,0 @@ -## План внедрения AEO/GEO-улучшений TokenBel - -Три независимых блока, можно катать по одному. Все правки — только в статических HTML/JSON, никакого бэкенда. - ---- - -### Блок 1. Robots.txt — явные правила для AI-search ботов - -**Файл:** `public/robots.txt` (сейчас: 3 строки, `User-agent: * Allow: /` + Sitemap). - -**Что делаем:** -1. Оставляем текущий `Allow: /` для всех как fallback. -2. Добавляем явные блоки `Allow: /` для search-индексеров, которые цитируют сайт в AI-ответах: - - `Googlebot` (Google Search + AI Overviews + Gemini grounding) - - `Bingbot` (Bing + Microsoft Copilot) - - `OAI-SearchBot` (ChatGPT Search) - - `ChatGPT-User` (fetch по запросу пользователя ChatGPT) - - `Claude-SearchBot` (Claude web search) - - `Claude-User` - - `PerplexityBot` - - `Perplexity-User` -3. Комментариями подписываем назначение каждой группы. -4. **Training-ботов (`GPTBot`, `ClaudeBot`, `Google-Extended`, `CCBot`, `Applebot-Extended`, `Meta-ExternalAgent`) НЕ блокируем** — этот вопрос стоит решать отдельно (потеря присутствия в обучающих датасетах ≠ потеря AI-цитирования, но политика по training-контенту — бизнес-решение). Оставляем TODO-комментарий в файле. -5. Оставляем директиву `Sitemap: https://tokenbel.info/sitemap.xml` в конце. - -**Валидация:** файл читается по `/robots.txt`, проверяем через `curl` после деплоя. - ---- - -### Блок 2. FAQPage + Article JSON-LD - -#### 2a. FAQPage на `/faq/` - -**Текущее состояние:** JSON-LD уже есть (`faq/index.html`, строки 145–193), но содержит только **5 вопросов**. На странице фактически больше блоков (категории «Основы», «Как купить», «Метрики»…). - -**Что делаем:** -1. Проходим по всей странице `faq/index.html`, собираем все реальные Q/A пары (визуальные вопросы и ответы, которые видит пользователь). -2. Обновляем существующий `FAQPage` JSON-LD: расширяем `mainEntity` до полного списка, синхронизируем формулировки с видимым на странице текстом (Google требует, чтобы ответ в schema совпадал с ответом на странице). -3. Проверяем результат в Google Rich Results Test после деплоя. - -#### 2b. Article JSON-LD в карточках «Последние новости» на главной - -**Текущее состояние:** в `index.html` секция `#news` (строки 654–737) содержит 4 карточки-ссылки. JSON-LD отсутствует. - -**Что делаем:** -1. Определяем, какие карточки — реально «новости с датой» (доллар — да, статистика за декабрь/ноябрь — да), какие — вечнозелёный гайд (YTM). Для новостей используем `NewsArticle`, для гайда — `TechArticle` или `Article`. -2. Добавляем **один общий** блок `