fix(seo): разблокировать индексацию для поисковиков и LLM#202
Merged
Conversation
Сайт фактически невидим для поисковиков и LLM из-за 4 базовых
поломок. Этот коммит закрывает все 4:
1. **index.html: убран `noindex, nofollow`** — он запрещал
индексацию ВСЕГО сайта всем роботам. Заменён на
`index, follow, max-image-preview:large, max-snippet:-1`.
2. **index.html: `lang="en"` → `lang="ru"`** — сайт на русском,
но HTML декларировал английский. Поисковики использовали это
при ранжировании русскоязычных запросов.
3. **public/robots.txt: переписан** — старая версия имела два
блока `User-agent: *`, первый из которых был `Disallow: /`
(невалид по спеке; по факту весь сайт был закрыт). Новая
версия явно разрешает все актуальные LLM-боты (GPTBot,
ClaudeBot, Google-Extended, PerplexityBot, OAI-SearchBot,
Claude-SearchBot, Perplexity-User, CCBot, Bytespider,
Applebot-Extended, meta-externalagent, MistralAI-User,
cohere-ai, DuckAssistBot) и классические поисковики
(Googlebot, YandexBot, Bingbot, DuckDuckBot).
4. **public/llms.txt: создан** — структурированный индекс
контента по конвенции llmstxt.org для LLM-ботов. Описывает
продукт и все 18 статей базы знаний с категориями
сравнений (Excel/Sheets/Airtable/Notion/вайб-кодинг/
заказная разработка).
5. **public/sitemap.xml: создан** — статический sitemap со
всеми 20 URL (главная, индекс базы знаний, 18 статей).
Раньше `/sitemap.xml` отдавал PHP-заглушку «Invalid
database», потому что роутер index.php парсил его как
имя БД.
После деплоя — проверка:
curl -sS https://ideav.ru/robots.txt | head -3
curl -sS https://ideav.ru/llms.txt | head -3
curl -sS https://ideav.ru/sitemap.xml | head -5
curl -sS https://ideav.ru/ | grep -i 'lang=\|robots'
Если `llms.txt`/`sitemap.xml` отдают «Invalid database» — значит
PHP-роутер ловит их раньше статики. В этом случае нужна правка
конфига веб-сервера (nginx `location =`-блок или Apache
`RewriteCond %{REQUEST_FILENAME} -f`) — добавить выдачу
этих 3 файлов из public/ до фолбэка на index.php.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
konard
added a commit
that referenced
this pull request
May 13, 2026
Каждая статья базы знаний теперь добавляет в <head> две JSON-LD структуры: - `Article` — заголовок, описание, URL, язык, секция (сравниваемый инструмент), publisher и author (Интеграм). - `BreadcrumbList` — Интеграм → База знаний → статья. Страница-индекс `/knowledge-base.html` дополнительно отдаёт: - `CollectionPage` с `ItemList` всех опубликованных статей. - `BreadcrumbList` Интеграм → База знаний. Скрипты помечаются `data-jsonld="..."` и очищаются при размонтировании, чтобы при SPA-навигации не оставалось устаревших узлов от предыдущей страницы. Закрывает пункт «Schema.org JSON-LD на каждую страницу базы знаний» из PR #202. Fixes #203
This was referenced May 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Зачем
На 2026-05-13 ideav.ru фактически невидим для поисковиков и LLM —
0стр. в Google, не цитируется в Claude/ChatGPT/Perplexity. Аудит выявил 4 базовые поломки, из-за которых вся работа над контентом базы знаний (18 статей-сравнений) не доходит ни до пользователей, ни до обучающих корпусов моделей.PR закрывает все 4 в одном изменении — они связаны и без любой из них остальные бесполезны.
Что чинит
1.
index.html: убранnoindex, nofollowГлавная (и через неё SPA-роутингом — все страницы) запрещала индексацию всем роботам. Это причина №1 нулевой видимости.
max-image-preview:largeважно для богатых сниппетов в Google Discover и Yandex.Картинки.2.
index.html:lang="en"→lang="ru"Сайт на русском, но HTML декларировал английский. Активный антисигнал для ранжирования по русскоязычным запросам.
3.
public/robots.txt: переписанСтарая версия имела два блока
User-agent: *, первый из которыхDisallow: /— фактически весь сайт был закрыт. Новая версия:GPTBot,ClaudeBot,anthropic-ai,Google-Extended,Applebot-Extended,CCBot,meta-externalagent,Bytespider,cohere-ai,MistralAI-User.ChatGPT-User,OAI-SearchBot,Claude-User,Claude-SearchBot,PerplexityBot,Perplexity-User,DuckAssistBot.Googlebot,YandexBot,Bingbot,DuckDuckBot.4.
public/llms.txt: созданСтруктурированный индекс контента по конвенции llmstxt.org. Включает:
5.
public/sitemap.xml: создан20 URL: главная, индекс базы знаний, 18 статей. Раньше
/sitemap.xmlотдавал PHP-заглушку «Invalid database» (роутерindex.phpпарсил его как имя БД и валил наDB_MASK).Чек после деплоя
Если sitemap.xml / llms.txt отдают «Invalid database» после деплоя
Значит PHP-роутер ловит запрос раньше, чем веб-сервер успевает отдать статику. Нужна правка конфига:
Nginx:
Apache (.htaccess):
robots.txtсейчас отдаётся корректно (HTTP 200), поэтому, скорее всего, эти правки не понадобятся — статика уже имеет приоритет над PHP. Но проверить надо.Что НЕ входит в этот PR (отдельные шаги)
/home/new/backlogram-distribution/schema-jsonld-template.htmlу автора.Test plan