Skip to content

Landing Site

shaerware edited this page May 27, 2026 · 1 revision

Landing Site (site/)

Статический маркетинговый лендинг ai-sekretar24.ru/ — отдельный от админки и мобильного приложения. Без фреймворка, hand-written HTML/CSS/JS с i18n.

Структура

site/
├── index.html              # RU (canonical)
├── en/index.html           # English
├── kk/index.html           # Қазақша (бренд → «Хатшы24»)
├── main.js                 # burger-меню, biltoggle, лид-форма
├── styles.css              # ~800 строк, без фреймворка
├── favicon.svg
├── og-image.svg            # OG-баннер RU (placeholder)
├── en/og-image.svg         # OG-баннер EN
├── kk/og-image.svg         # OG-баннер KZ
├── og-image.prompt.md      # промпт для генерации фото-PNG
├── llms.txt                # AEO: индекс сайта для AI-краулеров
├── llms-full.txt           # AEO: расширенное описание для LLM
├── robots.txt              # явно allow GPTBot/ClaudeBot/PerplexityBot и др.
└── sitemap.xml             # три hreflang-альтернативы

Локализация бренда

Бренд имеет разное имя в каждой локали:

Локаль Бренд Где
RU Секретарь24 основной
EN Sekretar24 фонетическая транслитерация
KZ Хатшы24 «хатшы» = секретарь по-казахски

JSON-LD в KZ-версии содержит "alternateName": ["Секретарь24", "Sekretar24", "AI Secretary System"] — чтобы поисковики и AI-краулеры понимали, что это один бренд под разными именами.

Каждая локаль имеет собственный og-image.svg с локализованным текстом и слоганом — Telegram/Facebook/LinkedIn рендерят правильный баннер при шаринге.

Домен ai-sekretar24.ru НЕ локализуется — это единая точка входа.

Автоматический язык

При первом визите на / JS-сниппет в <head> проверяет navigator.language и редиректит:

  • начинается с en → /en/
  • начинается с kk или kz → /kk/
  • иначе → остаётся на /

После явного выбора языка (через переключатель в шапке) запоминает выбор в localStorage.s24_lang — повторного редиректа не будет.

Ключевые секции

  1. Hero — мгновенный value-proposition «звонки/чаты/заявки 24/7», 5-минутный запуск
  2. Проблема → Решение — три pain-points, мост к Секретарь24
  3. Роли — 8 готовых AI-сотрудников (колл-центр, юрист, бухгалтер, sales и т.д.)
  4. Возможности — 7 фиче-карточек, первая выделена «Лучший ИИ — Claude»
  5. vs обычный чат-бот — citable-таблица сравнения (для AEO)
  6. Open-source · MIT — три карточки: GitHub / Wiki / установка под ключ 5000₽
  7. Демо-чат — статический мокап диалога
  8. 📱 Android-приложение — APK CTA с мокапом телефона, см. Mobile-App
  9. Тарифы — Старт 2900 ₽ / Бизнес 12900 ₽ / Команда 29900 ₽ + Enterprise
  10. После триала — переход Claude → free OpenRouter chain (см. Cloud-LLM-Providers)
  11. FAQ — 10 Q&A, синхронны с FAQPage JSON-LD schema
  12. CTA-финал — две карточки: DIY бесплатно (GitHub + Wiki) / 5000₽ под ключ

SEO + AEO

Structured data

В <head> каждой страницы три JSON-LD блока:

  • Organization — название, лого, sameAs (Telegram + GitHub)
  • SoftwareApplication — license MIT, codeRepository, 5 offers (self-hosted free / turnkey 5000₽ / 3 тарифа), aggregateRating
  • BreadcrumbList — главная → возможности → тарифы
  • FAQPage — 10 Q&A, дословно совпадают с видимым FAQ (Google AI Overview берёт ответы оттуда)

AEO для ИИ-поисковиков

Чтобы ChatGPT search / Claude / Perplexity / Google AI Overview рекомендовали проект:

  • /llms.txt — структура сайта по стандарту Anthropic: описание, факты, ссылки на разделы
  • /llms-full.txt — расширенная версия: тарифы, архитектура, технический стек
  • /robots.txt — явно разрешены: GPTBot, ClaudeBot, anthropic-ai, PerplexityBot, Google-Extended, CCBot, Bytespider

Verification (TODO)

В <head> есть закомментированные плейсхолдеры для:

  • <meta name="google-site-verification" content="…" />
  • <meta name="yandex-verification" content="…" />

Заполнить после регистрации сайта в Google Search Console и Яндекс.Вебмастере.

OG-image (TODO: фото)

В site/og-image.prompt.md лежит промпт для Midjourney/DALL-E/Reve — фотореалистичный портрет (брюнетка в белой блузке + офисный фон, левые 35% под наложение текста, 1200×630, PNG). Пока используются SVG-плейсхолдеры (брэнд-лого + слоган + чипы каналов).

Когда фото-PNG готов:

  • положить в site/og-image.png (RU), site/en/og-image.png, site/kk/og-image.png
  • в трёх index.html заменить og-image.svg → og-image.png в meta-тегах OG/Twitter

Деплой

Лендинг НЕ обслуживается через deploy.sh (это известный issue #786).

Деплой выполняется отдельным rsync:

ssh ai-server 'rsync -av --delete /opt/ai-secretary/site/ /var/www/landing-ai-sekretar24/'

После rsync — изменения видны сразу, без рестарта nginx.

Nginx-конфиг (нестандартный)

/etc/nginx/sites-enabled/ai-sekretar24 обслуживает домен ai-sekretar24.ru. Ключевые особенности:

root /var/www/admin-ai-sekretar24;   # legacy default ("Vue SPA — same build as admin subdomain")

# Лендинг — exact-match локации с явным root
location = /           { root /var/www/landing-ai-sekretar24; try_files /index.html =404;
                         add_header Cache-Control "no-cache, no-store, must-revalidate" always; }
location = /en/        { root /var/www/landing-ai-sekretar24; try_files /en/index.html =404;
                         add_header Cache-Control "no-cache, no-store, must-revalidate" always; }
location = /kk/        { root /var/www/landing-ai-sekretar24; try_files /kk/index.html =404;
                         add_header Cache-Control "no-cache, no-store, must-revalidate" always; }
location = /styles.css { root /var/www/landing-ai-sekretar24; expires 7d; }
location = /main.js    { root /var/www/landing-ai-sekretar24; expires 7d; }
location = /llms.txt   { root /var/www/landing-ai-sekretar24; add_header Cache-Control "no-cache" always; }
# ...og-image.svg, favicon.svg, robots.txt, sitemap.xml тоже exact-match

Подводные камни

  1. sites-enabled/ai-sekretar24 — НЕ симлинк на sites-available. Это разные файлы. Правки в sites-available ни на что не влияют. Редактируй только sites-enabled напрямую.

  2. При добавлении нового файла в site/ ДОБАВЬ exact-match location = /<path> в nginx-конфиг, иначе файл попадёт в SPA-fallback к админке (/var/www/admin-ai-sekretar24/) и отдастся либо как 404, либо как admin index.html.

  3. add_header Cache-Control не наследуется в exact-match локациях из общего location /. Каждой landing-HTML-локации нужен свой add_header с флагом always (без always теряется при internal redirects типа try_files → index).

  4. Бэкапы конфига не клади в sites-enabled/ — nginx грузит оттуда все файлы; .bak вызовет duplicate listen options и nginx -t упадёт. Бэкапы — в /root/nginx-backups/.

Что осталось как TODO

  • Реальная платёжка для 5000 ₽ — кнопка «Оплатить» сейчас ведёт на #order-form (лид-форма). Подключить YooMoney / Ozon Pay / Альфа-Банк
  • Фотореалистичный og-image.png — пока SVG-плейсхолдеры (см. site/og-image.prompt.md)
  • Google + Yandex verification — токены в Search Console / Вебмастере
  • Lite-вариант для нового сервера — см. issue #734
  • Backlinks для off-site AEO — Habr, vc.ru, ProductHunt

← Home | Mobile-App →

Clone this wiki locally