Skip to content

Сайт читается поисковиками и AI-ассистентами: текст главной в разметке, llms.txt, robots.txt, карта сайта - #230

Merged
4booser merged 1 commit into
mainfrom
ai-readable
Oct 28, 2026

Conversation

@4booser

@4booser 4booser commented Oct 27, 2026

Copy link
Copy Markdown
Owner

Зачем

Нейросети и поисковики, которые не выполняют скрипт (ChatGPT, Claude и Perplexity при чтении ссылки, поисковые роботы, текстовые браузеры), видели polypsy.ink так:

  • страница — пустой <div id="root"> под заголовком «Quizzy», без описания;
  • /robots.txt, /llms.txt, /sitemap.xml — та же пустая оболочка с кодом 200.

Понять по ней, что это за продукт, было нельзя.

Что меняется

Главная. Текст главной теперь лежит в самом index.html, по тексту лендинга и с английским абзацем:

  • для кого система;
  • сигналы ризику;
  • методики по направлениям;
  • застосунок для пацієнтів;
  • безпека й доступ;
  • мови.

Также добавлены описание, Open Graph и разметка schema.org (SoftwareApplication). Браузер со скриптом этот блок не показывает: атрибут ставится до разбора <body>, затем React заменяет корень. Люди видят прежний лендинг, визуальный эталон главной не изменился.

Остальные адреса. На все пути, кроме корня, Caddy отдаёт app.html. Это та же оболочка без текста главной и с noindex, её собирает плагин apps/web/seoHtml.ts. Иначе каждый адрес консоли выглядел бы для робота копией главной.

Файлы для роботов.

  • robots.txt открывает всё, кроме /api/.
  • llms.txt описывает продукт для языковых моделей:
    • роли;
    • методики;
    • риски;
    • безопасность;
    • ссылки на главную, стан системи и репозиторий.

Адрес сайта. entry.sh при старте контейнера подставляет его в Open Graph и schema.org, дописывает строку Sitemap и пишет sitemap.xml, только когда SITE_ADDRESS задан доменом. Без домена ссылки остаются относительными, а карты сайта нет.

Название. Заголовок вкладки: «Polypsy — система психологічного відділення» вместо «Quizzy — консоль аналітики». Запасной <title> в index.html — нейтральное «Polypsy», как требует проверка строк оболочки.

О военном госпитале в публичных текстах не говорится. Как и лендинг, они пишут только «психологічне відділення».

Проверки

  • bun run typecheck, bun run lint — чисто.

  • web bun test — 2098 прошли. Новый test/seoHtml.test.ts проверяет:

    • текст главной лежит в разметке;
    • браузеру со скриптом он скрыт;
    • app.html собирается без него и с noindex.

    В uiStrings.test.ts текст для машин явно исключён из запрета кириллицы в оболочке.

  • e2e: lang, shell, a11y, auth — 45 прошли. visual.e2e.ts -g landing прошёл.

  • Caddy из образа caddy:2-alpine с этой сборкой, с доменом и без:

    • / отдаёт главную с текстом;
    • /patients/123, /login, /status отдают app.html с noindex;
    • robots.txt, llms.txt, sitemap.xml идут с правильными типами;
    • строка Sitemap после перезапуска не дублируется.

…е, llms.txt, robots.txt, карта сайта

Тот, кто скрипт не выполняет — поисковик, ChatGPT/Claude/Perplexity при
чтении ссылки, текстовый браузер, — получал с polypsy.ink пустой
<div id="root"> под заголовком «Quizzy», а на /robots.txt, /llms.txt и
/sitemap.xml — ту же пустую оболочку с кодом 200.

- index.html: текст главной (по тексту лендинга, с английским абзацем),
  описание, Open Graph и разметка schema.org. Браузеру со скриптом блок
  скрыт до разбора <body> и заменяется React при монтировании.
- app.html: та же оболочка без этого текста и с noindex — её Caddy отдаёт
  на все пути, кроме корня, чтобы адреса консоли не выглядели копиями главной.
- robots.txt открывает всё, кроме /api/; llms.txt описывает продукт для
  языковых моделей.
- entry.sh при старте подставляет адрес сайта и пишет sitemap.xml — только
  когда SITE_ADDRESS задан доменом.
- Заголовок вкладки: «Polypsy — система психологічного відділення» вместо
  «Quizzy — консоль аналітики».
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 27, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-27T23:41:54.450002Z ed09905 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@4booser
4booser merged commit 2400795 into main Oct 28, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant