Что показал обход

Спайдер прошёл 145 страниц. 76 из них остались без h1 либо несли по два заголовка первого уровня. На главной нашлось 55 картинок без alt, на страницах услуг по 5-30.

Дубли расползлись по адресам. Одна услуга висела на трёх разных URL, страница команды на двух, главная открывалась и со слэшем, и без. Восемь адресов отдавали 404. Шесть кейсов делили один и тот же description «Контекстная реклама», ещё два дублировали «SEO-оптимизация».

Структурированной разметки на сайте не было вообще: ни Organization, ни FAQPage, ни Service, ни Article. Twitter Cards отсутствовали. Файл /llms.txt отдавал обычную HTML-страницу Tilda. AI-ботам вход явно не разрешён.

  • robots.txt использовали как кнопку удаления страниц: через Disallow оказались закрыты шесть живых посадочных, включая раздел кейсов и лендинги услуг
  • битый шаблон футера плодил фантомные адреса вида /"/politika-konfidencialnosti" по разным разделам сайта
  • битый JS дописывал к части адресов /null

Порядок в индексе: robots.txt и 301

Переписали robots.txt. 71 директива Disallow: 40 закрывают технические адреса Tilda вида /pageNNNNNNN.html, остальные снимают с обхода устаревшие разделы. Шесть живых посадочных вынули из запрета и вернули в индекс.

В файле оставили комментарий для следующего человека. Disallow просто выключает страницу из обхода, накопленный вес он никуда не передаёт. Для устаревшего адреса правильный инструмент это 301 на актуальную страницу.

Собрали карту из 12 редиректов: 4 склеивают дубли, 8 подбирают битые адреса. Отдельно открыли сайт для нейросетей: явные Allow для 11 краулеров, включая GPTBot, ChatGPT-User, ClaudeBot, PerplexityBot, Google-Extended и CCBot.

  • три адреса одной услуги схлопнули в один
  • две страницы команды свели к одной
  • главную закрепили на варианте со слэшем
  • восемь адресов с 404 увели на живые разделы
!
Где заканчиваются наши цифры

Все числа выше пришли из обхода сайта и из объёма подготовленных материалов. Это аудит и пакет для внедрения. На момент передачи сайт переезжал с Tilda на собственный сервер силами команды L7, отчёта о внедрении и замеров «после» у нас нет. Поэтому про позиции, трафик и попадание в ответы нейросетей мы здесь ничего не утверждаем.

Разметка для поиска и для нейросетей

Для главной собрали связанный граф JSON-LD: Organization, ProfessionalService и WebSite, сшитые через @id и @graph. WebSite ссылается на Organization как на publisher. Поисковик видит одну сущность вместо трёх разрозненных объектов. В knowsAbout перечислили 10 направлений компетенций.

Для страниц услуг сделали шаблон Service + Offer + OfferCatalog + BreadcrumbList, для кейсов Article + BreadcrumbList. Оба с примером заполнения, чтобы копировать по 30+ карточкам без вопросов.

Написали FAQPage на 12 вопросов: цены, сроки запуска, гарантии, география работы, отличия от конкурентов. Ответы развёрнутые, потому что нейросети цитируют то, что легко вынуть целиком. Туда же llms.txt: описание агентства, 9 услуг ссылками, отдельный блок «чем отличается».

Плюс 13 пар title и description под лимиты выдачи. Title 44-60 символов, description 140-158, главный ключ в начале, один адрес на один интент.

Грабли

Половина работы ушла на ограничения платформы и на соблазны, которые выглядят выгодно и наказываются поисковиком.

  • Tilda не умеет отдавать llms.txt текстом. Нейросети ждут markdown с заголовком Content-Type: text/plain, а приходит HTML. Штатно это не чинится, поэтому расписали три обходных пути с минусами каждого: Cloudflare Worker, отдельный поддомен, переезд на хостинг с правом настраивать заголовки.
  • Один битый href размножился по всему сайту. В шаблонный блок попали лишние экранированные кавычки, и каждый раздел, где он рендерился, породил собственный несуществующий адрес: пять штук в обходе. Глобального поиска по коду в Tilda нет, искали перебором по трём местам, где может жить кастомный HTML.
  • FAQ-разметку нельзя ставить в отрыве от страницы. Положить FAQPage скриптом без видимой секции значит получить санкции за расхождение разметки с содержимым. Порядок внедрения перевернули: сначала видимая FAQ-секция из блоков Tilda, потом рядом JSON-LD.
  • Блок aggregateRating выкинули. Звёзды в выдаче выглядят заманчиво, без подтверждённых отзывов это фальшивый рейтинг. В итоговой разметке главной его нет.
  • Часть фактов оказалась непроверяемой. Год основания в разметке помечен как предположение. Примеры описаний кейсов снабжены пометкой, что реальные цифры надо взять у менеджеров.
  • Массовых правок в Tilda не бывает. H1 меняется поблочно, alt проставляется по одной картинке. Компенсировали двумя сниппетами для DevTools Console: первый считает количество h1 на странице, второй обводит красной рамкой все img без alt. Проверка идёт глазами за секунды.

Как сдавали работу

Внедряет маркетолог. Поэтому каждый файл пакета устроен как пара: готовый текст или код плюс точное место в Tilda. Путь по интерфейсу указан до названия блока и пункта меню, у каждого шага проставлено время в минутах.

Файлы пронумерованы по порядку внедрения. Внутри README задача разложена на четыре очереди по срочности и цене: быстрые победы на 2 часа, важное на неделю, системное на месяц, внешний GEO отдельным треком. Полный объём технических правок оценили в 1-2 рабочих дня.

Через две недели файлы пересобрали в один HTML-гайд: сайдбар на 11 разделов, переключение секций без перезагрузки, кнопка «Копировать всё» у каждого блока кода. Файл открывается двойным кликом, внешних зависимостей у него нет.

Внешний трек описан честно как PR-работа: рейтинги и каталоги, карты и отзывы, гостевые публикации, собственный отраслевой рейтинг как главный рычаг цитируемости. К нему приложена таблица мониторинга: 6 контрольных запросов ежемесячно по 6 системам, включая ChatGPT, Claude, Perplexity, Алису, GigaChat и Gemini.

Частые вопросы

Как понять, что сайт на Tilda теряет страницы из индекса?

Нужен обход спайдером, выдача этого не покажет. На 145 страницах мы нашли 76 без h1 или с двумя заголовками первого уровня и восемь адресов с 404. Шесть живых посадочных оказались закрыты через Disallow в robots.txt, включая раздел кейсов и лендинги услуг.

Можно ли убирать устаревшие страницы через Disallow в robots.txt?

Disallow только выключает страницу из обхода. Накопленный вес он никуда не передаёт, поэтому ссылки и история теряются. Для устаревшего адреса работает 301 на актуальную страницу: в пакете таких 12, из них 4 склеивают дубли и 8 подбирают битые адреса.

Что делать с llms.txt, если сайт на конструкторе?

Tilda отдаёт этот файл обычной HTML-страницей, а нейросети ждут текст с заголовком Content-Type: text/plain. Штатно это не чинится, поэтому мы расписали три обходных пути с минусами каждого: Cloudflare Worker, отдельный поддомен, переезд на хостинг с правом настраивать заголовки. Параллельно прописали явные Allow для 11 краулеров, включая GPTBot, ClaudeBot, PerplexityBot и Google-Extended.

Стоит ли ставить FAQ-разметку и звёзды рейтинга ради красивого сниппета?

FAQPage нельзя класть скриптом в отрыве от страницы: расхождение разметки с содержимым карается санкциями. Мы перевернули порядок внедрения: сначала видимая FAQ-секция из блоков Tilda на 12 вопросов, потом рядом JSON-LD. Блок aggregateRating выкинули совсем, без подтверждённых отзывов это фальшивый рейтинг.

Кто внедряет правки и сколько это занимает?

Внедряет маркетолог клиента, доступ к коду для этого не нужен. Каждый файл пакета устроен как пара: готовый текст или код плюс путь по интерфейсу Tilda до названия блока, с временем шага в минутах. Полный объём технических правок оценили в 1-2 рабочих дня, а массовую проверку закрыли двумя сниппетами для DevTools: один считает h1, второй обводит рамкой картинки без alt, которых на главной было 55.