Контент-завод · · обновлено · 4 мин чтения

Почему текст, спрятанный в скриптах, для части читателей не существует

Часть роботов читает готовый HTML и не ждёт, пока скрипт дорисует страницу. Если суть появляется только после этого, для них страницы нет.

Текст: Алексей Меркулов

Почему текст, спрятанный в скриптах, для части читателей не существует

Подпись автора уже стоит на странице. Это условие из текста про автора, дату и бренд. Дальше выясняется неприятное. В браузере статья на месте. В первом ответе сервера её нет: приезжает каркас, а абзацы дорисовывает скрипт. Алексей Меркулов (Fobscraft) разбирает, для кого такая страница пустая и как проверить это без гадания. Постоянный адрес, на котором текст должен лежать сразу, — в тексте про свой сайт как склад.

В браузере полно, в первом ответе пусто

Обратите внимание на две картины одной страницы. В окне браузера есть заголовок, абзацы, имя автора. Вы довольны. Теперь откройте то, что сервер отдал до всяких скриптов: исходный ответ. Там каркас, пустой контейнер и ссылка на файл со скриптом. Абзацев нет.

Человек, у которого скрипт исполнился, видит статью. Кто прочитал только первый ответ, видит контейнер. Это не спор вкуса и не спор «современный сайт или простой». Это два разных текста, которые называются одним адресом.

Почему так собирают? Текст удобно рисовать на клиенте, одним приложением на все экраны. Удобство сборки не равно наличию текста для того, кто приложение не запускает.

Кто читает первый ответ и не ждёт

Часть обходчиков исполняет скрипты и умеет подождать, пока страница дорисуется. Часть забирает первый HTML и идёт дальше. Ко второй группе относятся многие сборщики ответов и простые роботы, которым нужно успеть прочитать много адресов. Ждать приложение на каждом адресе они не обязаны.

Если ваш смысл живёт только после скрипта, для второй группы страницы нет. Они не «плохо поняли» текст. Текста в том ответе, который они прочитали, не было. Цитировать им нечего, индексировать абзац не из чего.

Отсюда ещё нельзя делать вывод, что скрипты на сайте запрещены. Можно сделать узкий вывод. Смысл статьи должен уже лежать в первом ответе. Скрипт может улучшать страницу. Он не должен быть единственным местом, где абзацы вообще появляются.

Что именно должно приехать сразу

В первом ответе уже видны главный заголовок, абзацы разделов, имя автора, дата и ссылки на соседние материалы. То есть всё, из чего собирались синяя строка, цитата и подпись. Меню, мелкая анимация, форма могут дорисовываться. Статья — нет.

Проверка короткая. Откройте исходный код ответа сервера и найдите фразу из первого абзаца. Если фразы нет, в браузере вы видите текст, которого в ответе не было. Если фраза есть, обходчик, который не исполняет скрипты, хотя бы имеет шанс её прочитать.

Для читателя, который не запускает скрипты, существует то, что уже лежит в HTML ответа. Интерфейс, дорисовывающий статью на клиенте, в цитату не попадает.

Журнал не прячут от роботов, карта не заменяет статьи

Отдельный способ спрятать текст — закрыть журнал в robots.txt. Тогда даже готовый HTML могут не читать те, кого вы сами попросили не ходить. Завод не закрывает журнал от роботов поиска и от роботов, которые собирают ответы. Служебные адреса, черновики и кабинеты закрывать можно. Статьи, которые вы хотите видеть в выдаче, закрывать не стоит.

Файл со списком важных адресов, вроде llms.txt, — короткая карта. Карта говорит, куда смотреть. Она не содержит самих статей и не заменяет абзац, которого нет в HTML. Если в карте есть адрес, а по адресу приезжает пустой контейнер, карта привела в пустую комнату.

Порядок такой. Сначала статья лежит в ответе сервера по постоянному адресу. Потом адрес попадает в карту и в карту сайта. Обратный порядок оставляет карту, которая честно указывает на пустую комнату.

Та же статья двумя сборками

Закрепим на материале про списание. Первая сборка: сервер сразу отдаёт заголовок, сцену на кассе, шаги, имя Алексея Меркулова, день и ссылку на соседний текст цикла. Скрипт только подключает оглавление. Фразу из первого абзаца видно в исходном ответе.

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

Что вы теперь можете объяснить

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

Заказ

Нужен разбор или архитектура

Напишите в Telegram или на почту — посчитаем эффект и стоимость. Форм на сайте нет.