Откройте свой сайт в браузере. Всё на месте: меню, баннеры, карточки услуг, отзывы, форма заявки. Красиво, современно, работает. А теперь нажмите в браузере кнопку «Режим чтения» — маленькую иконку в адресной строке, которая превращает страницу в чистый текст. И посмотрите, что осталось.
Скорее всего, вы увидите не свой сайт. Половина блоков исчезнет. Где-то пропадёт секция с услугами, где-то — отзывы, где-то — целый раздел с кейсами. Заголовки могут остаться, а текст под ними — нет. Или наоборот. Вместо аккуратной структуры — рваный набор кусков, которые браузер счёл достойными внимания.
Это не значит, что ваш сайт сломан. Он отлично работает для людей. Но есть вторая аудитория, о которой вы, возможно, не думали: алгоритмы. Браузеры, поисковики, AI-сервисы. И для них ваш сайт выглядит именно так — как в режиме чтения. Половина контента невидима, и они её просто не учитывают.
Почему так происходит
Режим чтения — это не просто «убрать картинки и оставить текст». Это алгоритм, который пытается понять, где на странице настоящий контент, а где — навигация, реклама, интерфейсные элементы. Чтобы отделить одно от другого, он смотрит не только на текст, но и на служебную информацию — имена классов и идентификаторы элементов.
Если в имени класса есть определённое слово, алгоритм считает элемент «не контентом» и удаляет. Целиком, вместе со всем, что внутри. И делает это до того, как прочитает хоть один абзац.
В основе режима чтения лежит открытый код Firefox Reader View, файл Readability.js. Алгоритм проходит по всем элементам страницы, присваивает им условные баллы в зависимости от количества текста и заголовков, а затем оставляет блок с наибольшим весом. Но перед этим он делает одну вещь, которая и создаёт все проблемы: он удаляет элементы, чьи имена классов или id содержат определённые слова. Удаляет целиком, вместе с потомками, до всякого анализа содержимого.
В исходниках Readability.js есть регулярное выражение для так называемых «маловероятных кандидатов» — элементов, которые с высокой вероятностью не являются контентом. Туда входят banner, breadcrumbs, comment, community, disqus, extra, foot, header, legends, menu, related, remark, replies, rss, shoutbox, sidebar, skyscraper, social, sponsor, supplemental, pagination, pager, popup и ещё несколько. Отдельно существует список негативных маркеров, который работает как штраф при подсчёте баллов. Там уже есть hidden, contact, footer, masthead, media, outbrain, promo, scroll, share, shopping, tags, tool, widget и другие.
Проблема в том, что верстальщик использует эти слова для обозначения внешнего вида или поведения блока, а алгоритм читает их как смысл. Если блок называется scroller, потому что внутри горизонтальная прокрутка, — для алгоритма это не «блок с прокруткой», а «интерфейсный элемент, не читаем». Если шапка секции называется header-block, потому что она оформлена как заголовочная часть, — для алгоритма это «шапка сайта, вырезать».
Как это выглядит в жизни
Представьте секцию услуг. Заголовок «Услуги студии», подзаголовок, шесть карточек в слайдере. Всё в аккуратной сетке, клиент листает, выбирает. В режиме чтения секция исчезает целиком — вместе с заголовком и вводным текстом. Потому что контейнер слайдера называется scroller. Алгоритм видит scroll, решает «это прокрутка, а не контент» и удаляет блок. Всё, что внутри, тоже пропадает — не потому что оно плохое, а потому что оказалось в «неправильном» контейнере.
Или другой пример. Блок с отзывами клиентов. Девять отзывов, имена, компании, тексты. Очень ценная информация — и для клиента, и для поисковика. Но контейнер называется reviews-scroller. В режиме чтения отзывов нет. Для человека они были, для алгоритма — не существуют.
И таких мест на сайте обычно несколько. Один блок вырезан из-за header в классе, другой — из-за scroll, третий — из-за social. Сайт выглядит целым, но для алгоритмов он дырявый.
Отдельно стоит сказать про атрибуты. Первое, что приходит в голову — оставить классы как есть, а поведение поправить через role="main" или aria-labelledby, явно указать алгоритму, что здесь контент. Это не работает. Удаление элементов по «мусорным» маркерам происходит раньше, чем алгоритм смотрит на атрибуты. Если блок уже признан нежелательным, никакой role его не спасёт. Обойти через атрибуты нельзя — остаётся только переименование.
Почему это касается не только режима чтения
Режим чтения — это удобный способ увидеть проблему, но не единственная причина её решить. Те же самые алгоритмы используют поисковые роботы Google и Яндекс, когда решают, какой контент на странице важный. Их используют системы извлечения основного текста, которыми пользуются AI-сервисы вроде GPTBot, ClaudeBot, PerplexityBot. Если блок вырезается в режиме чтения, велика вероятность, что и они его не увидят.
Что это значит для вас как для владельца сайта. Во-первых, поисковик может не учитывать часть вашего контента при ранжировании — например, описания услуг или отзывы, которые на самом деле важны для выдачи. Во-вторых, AI-сервисы, к которым всё чаще обращаются ваши клиенты, могут не находить информацию о вас и отвечать на запросы хуже. В-третьих, люди, которые пользуются режимом чтения из-за особенностей зрения или просто для удобства, видят урезанную версию вашего сайта.
Это не теория. Это то, что происходит с вашим сайтом прямо сейчас, каждый раз, когда его открывает алгоритм.
Что с этим делать
Хорошая новость: проблема решается, и решается не за один вечер. Вам не нужно переписывать весь сайт или разбираться в вёрстке. Достаточно заменить проблемные имена классов на другие — такие, которые алгоритм не воспринимает как «мусор». Звучит просто, и по сути так и есть. Сложность только в том, что на этих именах может быть завязана вёрстка и скрипты, поэтому делать это надо аккуратно.
Способ такой. Сначала в стилях добавляете новое имя класса рядом со старым — через запятую.
.scroller,
.carousel-track {
display: flex;
overflow-x: auto;
}
Это значит: элементы с любым из этих классов получают одинаковое оформление. Теперь можно менять разметку по одному шаблону, ничего не ломая. Параллельно обновляете скрипты, чтобы они искали элементы по обоим именам.
const tracks = document.querySelectorAll('.scroller, .carousel-track');
Когда все шаблоны переименованы — убираете старые имена из стилей. Главное правило при выборе нового имени — не использовать слова, которые алгоритм считает «мусорными». Не header, а intro или heading. Не scroller, а carousel или slider-track. Не sidebar, а aside-block. Не social, а links-share. Смысл тот же, но алгоритм уже не считает блок «не контентом».
Как найти проблемные места на своём сайте
Если у вас есть доступ к файлам шаблонов, можно пройтись поиском и найти все классы и идентификаторы, которые содержат «мусорные» слова. Это делается двумя командами в терминале.
grep -rn 'class="[^"]*\(scroll\|header\|nav\|menu\|sidebar\|footer\|comment\|banner\|promo\|related\|share\|social\|widget\|popup\|modal\|breadcrumb\)[^"]*"' путь/к/шаблонам/
grep -rn 'id="[^"]*\(scroll\|header\|nav\|menu\|sidebar\|footer\|comment\|banner\|promo\|related\|share\|social\|widget\|popup\|modal\|breadcrumb\)[^"]*"' путь/к/шаблонам/
Каждое совпадение — это потенциальная секция, которая исчезнет в режиме чтения. Не все они обязательно вырезаются, но все они — кандидаты. Лучше пройтись и переименовать, чем потом удивляться, почему половина страницы не видна.
Если доступа к файлам нет — есть более простой путь. Откройте сайт в браузере, включите режим чтения и сравните с обычной версией. Пройдитесь по секциям: какая видна, какая пропала. Пропавшие — это и есть проблемные. Их список и станет вашим планом работ: какую секцию переименовать в первую очередь, какую во вторую.
Это не требует технических знаний. Достаточно внимательно посмотреть и записать, что исчезло.
Зачем всё это
Можно возразить: зачем тратить время на какие-то алгоритмы, если сайт работает и клиенты приходят. Но реальность такова, что значительная часть трафика идёт не от людей, которые уже знают ваш сайт, а от поисковых систем и AI-сервисов. Если алгоритм не видит часть вашего контента, он не может показать его тем, кто ищет ваши услуги. Каждая невидимая секция — это упущенный клиент, который мог бы вас найти, но не нашёл.
Переименование классов — это разовая работа. Она не требует переделки дизайна, не влияет на внешний вид, не ломает функциональность. Но она делает сайт полностью читаемым для всех, кто его разбирает: браузеров, поисковиков, AI-моделей. И для людей, которые пользуются режимом чтения.
Начните с малого. Откройте свой сайт в режиме чтения прямо сейчас. Посмотрите, что пропало. Это и будет отправной точкой — с неё начнётся работа, которая в итоге сделает ваш сайт видимым целиком.

