AI-боты · заголовки безопасности · цепочки редиректов · дубли шаблонов · roadmap
Perplexity, Claude, GPT, Google-Extended, Applebot — robots.txt
| Бот | Статус | Назначение |
|---|---|---|
| Запусти Pro-аудит | ||
HSTS, CSP, X-Frame-Options — оценка securityheaders.com
Правило: ≤2 перехода, без петель, 301 для постоянных
—
Скан нескольких страниц — массовые дубли title/description
—
P0 срочно → P3 полировка · из 145 критериев чеклиста
| Приор. | # | Блок | Проблема | Доказательство |
|---|---|---|---|---|
| P0 | 001 | A | Целевой URL отдаёт HTTP 200 (не 404/410/5xx) | HTTP 403 |
| P0 | 005 | A | Canonical указывает на ту же пару и язык (не другую пару) | Нет canonical |
| P0 | 013 | A | Контент SSR/пререндер — в HTML есть H1 и основной текст (не пустой shell) | H1 отсутствует — возможен пустой shell |
| P0 | 021 | B | meta title [`meta_title`] не пустой на indexable URL | Title пустой |
| P0 | 028 | B | Description не содержит body-copy (>300 символов = fail) | Нет description |
| P0 | 036 | C | H1 [`title`] присутствует (ровно один видимый H1) | Найдено H1: 0 |
| P0 | 037 | C | H1 содержит полные имена монет: `Bitcoin (BTC) to Monero (XMR)` | Нет H1 |
| P0 | 101 | N | SSR/SSG: в view-source есть осмысленный текст (>150 символов), не пустой shell | Мало текста: 0 chars — возможен CSR shell |
| P0 | 103 | N | H1 в исходном HTML — не только после гидрации JS | H1 отсутствует в исходном HTML |
| P0 | 104 | N | `<title>` в исходном HTML — useHead/useSeoMeta отработал на сервере | Title отсутствует в SSR HTML |
| P0 | 109 | N | Нет паттерна пустого `#__nuxt`/`#app` (<200 символов видимого текста) | Пустой #__nuxt shell: 0 chars |
| P0 | 119 | N | Нет `data-server-rendered="true"` missing + empty body (CSR-only mode) | Признаки CSR-only: пустой body без SSR marker |
| P0 | 129 | J | Strict-Transport-Security (HSTS) в ответе сервера | Нет Strict-Transport-Security |
| P2 | 002 | A | Final URL после редиректов совпадает с canonical (нет лишних hop) | Canonical отсутствует — нельзя сверить final URL |
| P2 | 064 | D | Комиссии в тексте: Fixed 1% / Floating 0.5% — без выдуманных цифр | Fee не найдены в тексте |
| P2 | 102 | N | Payload __NUXT__ / __NUXT_DATA__ / `window.__NUXT__` в HTML (Nuxt 3) | Payload __NUXT__ не найден — возможен static generate или CSR |
| P1 | 004 | A | Canonical присутствует и self-referencing | Canonical не найден |
| P1 | 009 | A | robots.txt доступен (200) и не содержит `Disallow: /` | robots.txt недоступен |
| P1 | 010 | A | Sitemap указан в robots.txt (`Sitemap:` directive) | Нет Sitemap: в robots.txt |
| P1 | 011 | A | sitemap.xml доступен (200), валидный XML | sitemap недоступен |
| P1 | 014 | A | Viewport meta для mobile (`width=device-width`) | Нет viewport meta |
| P1 | 022 | B | Длина meta title 45–65 символов (warn вне диапазона) | Нет title |
| P1 | 026 | B | meta description присутствует | meta description отсутствует |
| P1 | 027 | B | Длина description 120–170 символов | Нет description |
| P1 | 091 | G | hreflang теги присутствуют для языковых версий | hreflang отсутствует |
| P1 | 105 | N | meta description в исходном HTML (не client-only) | meta description только client-side? |
| P1 | 107 | N | `/_nuxt/` assets — главный JS-бандл отдаёт 200 (не 404) | Не найден /_nuxt/*.js в HTML |
| P1 | 130 | J | X-Content-Type-Options: nosniff | Нет X-Content-Type-Options: nosniff |
| P1 | 144 | K | Self-referencing canonical (не chain на другой URL) | Нет canonical |
| P2 | 041 | C | Блок How-to (`exchange_pair_section1_title`) — заголовок есть | Блок не обнаружен по тексту |
| P2 | 042 | C | how_step1–4 — все 4 шага заполнены, без template leak | Мало how-step контента |
| P2 | 049 | C | FAQ — минимум 3–5 вопросов видимы | FAQ блок слабо выражен |
| P2 | 051 | C | about_section — заголовок + subtitle про обе монеты | About block не найден |
| P2 | 092 | G | x-default hreflang задан | Нет x-default |
| P2 | 106 | N | canonical в исходном HTML | canonical не в initial HTML |
| P2 | 110 | N | OG-теги в исходном HTML (не только после Vue mount) | OG только после гидрации |
| P2 | 117 | N | preload критичных шрифтов или CSS (не всё через JS) | Нет preload критичных ресурсов |
| P2 | 125 | I | Google-Extended / GoogleOther — training vs search разделены | Google-Extended=allowed, GoogleOther=allowed — проверь training policy |
| P2 | 127 | I | FAQPage schema на money/pillar страницах | Нет FAQPage schema — AI engines хуже извлекают Q&A |
| P2 | 108 | N | `html lang="..."` задан и соответствует локали URL | html lang не задан |