Услуги
Сайты и магазиныЛендинги ★Создание сайтовИнтернет-магазины
ИИ и автоматизацияИИ-секретарь ★Автоворонка и прогрев ★Telegram-боты ★Автоматизация ★CRM-разработка
ПродвижениеSEO-продвижениеAI-продвижение ★Контекстная рекламаSMM и соцсети
Наружка, печать и производствоВывески и буквыНаружная рекламаБаннеры и штендерыТипографияВизиткиШирокоформатБрендированиеОклейка автоТорговое оборудованиеМатериалы для рекламы
Дизайн и поддержкаДизайнПоддержка
КомплексDigital под ключ ★
РешенияКейсыПортфолиоЦеныО студииБлогКонтакты Обсудить проект

Прибор врёт

Главная всегда особенная: 21 заражённая страница из 24

Проверка по главной странице закрыла бы дефект как несуществующий, а сверка хешей подтвердила бы работоспособность сайтов, на которых десять запросов к шрифтам отдают 404. Рядом реестр зоны, где живой сайт не смотрел никто, и обход рабочих копий, где тысячи «правок» оказались удалениями и дрейфом. Разбираем, как собирается множество для замера.

Замер: 9 августа 2026наш замер

Чем проверено: выборка страниц из карты сайта равным шагом против проверки по главной, сверка хешей файлов против сетевого лога живого браузера, поимённая классификация 16 доменов запросами, три ступени отсева при обходе 177 рабочих копий

Короткий вывод. Любой замер начинается с выбора множества, и множество почти всегда собирается по удобству, а не по определению. Наш случай: на главной странице искомого дефекта не было вовсе — ноль вхождений, вывод «уже починено» напрашивался сам. Выборка из карты сайта: поражена 21 страница из 24. Два других способа взять не то множество: реестр по формулировке задачи (9 сайтов против 10 живых после разбора 16 доменов из панели владельца) и подсчёт по признаку, который значит не то — 143 «спасаемые» рабочие копии, где спасать было нечего.

Главная почти всегда особенная

Проверялось, жив ли на одном из сайтов сети паразитный скрипт, вставленный чужим шаблоном. На главной — ноль вхождений и ноль сторонних трекеров. Дальше шла выборка из карты сайта, 24 адреса равномерно по разделам: заражена 21 страница.

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

Выборка у нас собирается так: адреса из карты сайта с равным шагом, минимум шесть страниц разных типов. Стоит это одну команду, а разница в выводе — между «дефекта нет» и «дефект на 21 странице из 24 проверенных».

«Файлы совпали» — правда, которая ничего не говорит о работе

Сверка расхождений между репозиторием и боевой площадкой считала нормализованный хеш каждого файла и по восьми сайтам дала «расхождений 0». Утверждение верное: байты совпадают. Живой браузер на той же странице показал другое.

Вопрос приёмкиЧем меряетсяЧто показал наш замер
Файлы доехали?хеш каждого файла партиирасхождений 0 по восьми сайтам
Страница работает?консоль и сетевой лог браузера, отправка формы живьёмстраница раздела тянет собственную главную ~150 КБ как скрипт; десять запросов к шрифтам отдают 404 — на всех сайтах сети

Причина 404 общая: стили донорского шаблона ссылаются на каталог шрифтов, которого нет ни в одном репозитории. Успешная выкатка и совпавшие хеши спокойно сосуществовали и с этими 404, и с 21 заражённой страницей.

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

Из того же захода — случай, который выкаткой не лечится: адрес раздела отдаёт 200, хотя страницы в репозитории нет. Осиротевший файл на площадке глушит правило перенаправления, а выкатка файлы не удаляет. Такое снимается только явным удалением.

Множество из формулировки задачи

Роль зоны описывала 9 сайтов. В панели владельца — 16 доменов, и вопрос «почему девять?» задал он сам. Разбор каждого домена запросом, а не памятью:

КлассСколькоЧем отличается при замере
Ядро сети1200, свой контент
Известные сателлиты9200, свой контент
Домены-доноры4301 на чужой домен — это перенаправление, а не сайт
Живой сайт вне всех реестров1200, 38,8 КБ, title 53 символа, своя разметка данных, канонический адрес на себя
Не отвечает1пустой код ответа

Арифметика реестра: 16 доменов − 1 ядро − 4 донора − 1 мёртвый = 10 живых сателлитов, а не девять. Разница в одну единицу выглядит мелочью ровно до момента, когда выясняется смысл этой единицы.

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

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

Признак, который значит не то, что кажется

Обход 177 рабочих копий репозитория искал незакоммиченную работу и дал 143 копии с изменениями, в лидерах — 8406 изменённых файлов. Коммит такого «спасения» стёр бы эти 8406: там были удаления, 4 374 496 строк — каталоги вычищены, метаданные остались. Второй заход, уже без удалений, дал 115 — и снова неправду: у лидеров рабочее дерево оказалось идентично общей ветке, тысячи «правок» были дрейфом старой ветки.

  1. Считать изменённые и новые файлы отдельно от удалённых — удаления никогда не признак работы.
  2. Сверять рабочее дерево с общей веткой: пусто — спасать нечего, сколько бы строк ни показывал статус.
  3. Смотреть состав глазами: несколько осмысленных новых файлов — да; массовое переписывание сотен страниц — сначала выяснить, чем оно вызвано.

Настоящая работа нашлась ровно там, где файлов было мало и они были осмысленны: пять новых файлов сверки калькулятора, два файла проверок и один файл мониторинга. Ни одного из «8406».

Общая процедура, которую мы из этого собрали

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

Цена ошибки в множестве не растёт постепенно: замер либо про ваш объект, либо про соседний, и промежуточных состояний тут нет.

Источники материала

  • Журнал уроков заезда: разбор выборки страниц по карте сайта против главной, сверка хешей против сетевого лога браузера, случай с осиротевшим файлом на площадке.
  • Разбор реестра доменов зоны: поимённая классификация 16 доменов запросами, арифметика живых сайтов, найденное пересечение тем.
  • Разбор обхода рабочих копий: 177 копий, три ступени отсева, состав реально спасённой работы.

Определение множества — до первого замера

Курс разводит два вопроса приёмки, которые обычно склеены: «доехало» и «работает». Плюс процедура классификации каждого элемента пробой — живой объект, перенаправление, мёртвый адрес — вместо списка, унаследованного из формулировки задачи.

Программа курса и цены
Соседние материалы
Предыдущий замер: Успешно — значит только «не упал»Следующий замер: Мёртв 10 дней при статусе «сделано»Все материалы журнала

Обсудим ваш проект

Оставьте заявку — свяжемся в течение 15 минут в рабочее время, зададим пару вопросов и пришлём ориентир по цене и срокам. Бесплатно, без обязательств.

  1. 1. Заявка или квиз
  2. 2. Короткий созвон / переписка
  3. 3. Бесплатная смета и план
  4. 4. Договор и старт

Бесплатно и ни к чему не обязывает. Ответим за 15 минут.