← Все релизы EN  RU

Контроль изменений — пятница 28 августа

v2.4.0

Ничто из перечисленного ниже пока не живое. Это релиз, который выходит в пятницу утром. Черновик написан в среду намеренно — каждое «до» на этой странице можно измерить, только пока живой магазин это ещё отдаёт, и оно исчезает в момент выкатки, — а в пятницу утром всё перемерено против живого магазина и готового кандидата, потому что после того черновика релиз вырос на пятьдесят девять изменений. Там, где измерение снять не удалось, строка говорит об этом красным, а не показывает число.

Одна вещь, которую стоит вынести с этой страницы, если больше ничего не читать. Этот релиз несёт целиком всю работу над тем, что Google разрешено читать, — и не включает из неё ничего. Управляют этим четыре переключателя; ни один из четырёх на живом магазине не выставлен, и пятничное слияние их не выставляет. То есть в субботу утром Google читает ровно то же, что и сегодня, — меняются только адреса части страниц и добавляются десять новых, об этом четвёртый раздел. Включение каждого — отдельное осознанное действие примерно на минуту, и откатывается оно примерно за минуту. Решение, которое нужно от этой страницы, — какие из них включать и когда, а не готов ли код.

Сто восемьдесят восемь изменений с релиза 21 августа: сто шестьдесят два на сайте магазина, восемнадцать в поиске, восемь в сервисах заказов и оплаты. Шестьсот пятьдесят два файла отличаются между тем, на чём магазин работает сегодня, и тем, что положила бы туда пятница. Почти всё это — две работы. Первая: решить, один раз и в одном месте, какие страницы запчастей приглашены к прочтению Google, и затем заставить все части сайта согласиться с этим решением. Вторая пришла в четверг: у каждой страницы старого сайта теперь есть дом на этом, и ради этого схемам запчастей пришлось сменить адрес. Остальное — переезд фотографий на наш собственный адрес и уборка после старой базы.

Одна поправка к странице прошлой недели, прежде чем числа пойдут дальше. Там было указано шестьдесят два изменения на сайте магазина за 21 августа. Правильная цифра — восемьдесят три. Подсчёт был сделан инструментом, который, как выяснилось, читал только часть истории и молча давал меньший ответ; с тех пор пересчитано другим способом. В том, что вышло 21 августа, ничего не изменилось — изменился только его счёт, и эта же поправка объясняет, почему число этой недели больше, чем можно было бы ожидать по прошлой.

Необычное в этом релизе — насколько мало из него вступает в силу в пятницу. Работа по индексации выкатывается выключенной. Это сделано намеренно, это обратимо, и этому посвящены первые два раздела. В силу вступает вторая работа: страницы, которых здесь раньше не было, и две смены адреса, каждая из которых доводит старый адрес до нового одним переходом.

Что пятница реально меняет на живом магазине — измерено в среду, это не прогноз

Для Google — то же, что ему разрешено читать, но две смены адреса и десять новых страниц. Работой по индексации управляют четыре настройки: отвечает ли «не найдено» страница, которую Google читать не приглашён; перечисляет ли файл инструкций для обхода запчасти поимённо; предлагаются ли страницы схем; и главный переключатель индексации. Считано с настроек живого магазина в среду: ни одной из четырёх там нет, и пятничное слияние их не выставляет. Поведение самого живого магазина с этим согласуется — страница запчасти, которую Google читать не приглашён, сегодня по-прежнему отвечает как обычная страница, а инструкции для обхода по-прежнему ничего не говорят про запчасти. То, что для Google в пятницу всё-таки меняется, лежит вне этих переключателей и вынесено в четвёртый раздел: адреса запчастей становятся строчными, схемы запчастей уезжают из /equipment — и то и другое доводит старый адрес до нового одним переходом, — и появляются десять страниц, которые существовали только на старом сайте.

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

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

Что нужно решить на созвоне — найдено в среду, до выкатки

Поиск по точному номеру запчасти отвечает «Service Unavailable» на тестовом сайте, тогда как живой магазин возвращает запчасть нужно решитьэто видит покупательfront#3817, front#3818не в плане

Изменение было хорошее: вводишь номер запчасти в поиск и попадаешь на саму запчасть, а не на страницу результатов с одной карточкой. На тестовом сайте на запчасть оно не попадает. Оно отвечает Service Unavailable — страницей, которую покупатель видит, когда что-то сломано.

До — живой магазин сегодня/parts?q=CT-NHL-100016 отвечает 200 сеткой результатов, и запчасть есть среди карточек. q=CT-NHL-100038, q=100412 — то же самое. Поиск словом, q=bearing, — то же самое.

После — кандидат сегодня/parts?q=CT-NHL-100016 отвечает 503, и результатов на странице нет. Так же отвечают q=100016, q=CT-NHL-100038 и q=100412. q=bearing по-прежнему отвечает 200 — значит, поиск не лежит; ложатся именно запросы по номеру запчасти, то есть те, которыми покупатели реально пользуются.

Перемерено в пятницу утромБез изменений на готовом кандидате — именно на том дереве, которое несёт выкатка, а не на более раннем. Все четыре поиска по номеру по-прежнему отвечают 503; q=bearing по-прежнему 200; живой магазин по-прежнему отвечает 200 на все пять. Четверговая правка поиска (front#3904) — про другой путь: она починила нажатие Enter в поле поиска наверху страницы, которое теперь ведёт на запчасть, а не на постороннюю схему. Открытие адреса результатов напрямую по-прежнему сломано.

Почему такСайт понимает, что один результат совпал точно, и пытается отправить покупателя сразу на страницу этой запчасти. К моменту, когда он это решает, он уже начал отдавать страницу результатов, и переадресация, пришедшая слишком поздно, превращается в ошибку. Комментарии в самом коде описывают ровно такое поведение, наблюдавшееся на тестовом сайте, — то есть это известная форма, а не новая загадка.

Одного установить не удалось, и именно оно решает, насколько это серьёзно. Все ответы с обеих сторон приходили помеченными как отданные из кэша, и добавление уникального параметра не заставило отдать свежий, поэтому отличить «тестовый сайт выдаёт 503 сейчас» от «тестовый сайт выдал его раньше и повторяет до сих пор» это не позволяет. Первое — причина придержать релиз; второе — просто устаревшая страница. Кто-то должен до пятницы принудительно получить некэшированный ответ и сказать, что из двух. Числа, чтобы закрыть этот пробел, не выдумано.

Что сомнению не подлежитЗадачи, которая бы это вела, нет. front#3817 закрыт как сделанный на основании front#3818 — то есть того изменения, которое измерено выше. Каким бы ни был ответ, эта задача закрыта под работу, результат которой на реальном запросе не подтверждён.

Прод сегодняКандидат
прод, search-exact-sku кандидат, search-exact-sku
Один и тот же поиск по точному номеру запчасти с обеих сторон. Десктоп, ширина 1440. Живой магазин возвращает запчасть; кандидат возвращает сервисную ошибку.
Прод сегодняКандидат
прод, search-word кандидат, search-word
Контроль: поиск словом, тот же момент, те же ширины. Обе стороны отвечают нормально — значит, сам поиск не лежит.
команда и её вывод с обеих сторон
Четыре опробованных номера запчастей и что ответила каждая сторона.
Какие из четырёх переключателей включать и в каком порядке — код готов, ни один переключатель не выставлен нужно решитьэто видит Googlefront#3809, front#3833, front#3843, front#3854план 01

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

1. Страница, которую Google читать не приглашён, отвечает «не найдено» Сегодня страница запчасти, на которой ничего нет, всё равно грузится как настоящая и лишь просит Google её не листать. Google такую страницу читает, считает её пустой и ставит это в счёт всему остальному сайту. С включённым переключателем тот же адрес прямо отвечает «не найдено». Измерено: запчасть Ferris сегодня отвечает 200 полной страницей, а на тестовом сайте — 404; при этом приглашённая запчасть New Holland отвечает 200 с обеих сторон. То есть работает выборочно, и это то, что стоит проверить.

2. Инструкции для обхода перечисляют каждую приглашённую запчастьСегодня инструкции о запчастях не говорят вообще ничего: 13 строк, ни одной про /parts/. С включённым переключателем в них 4 783 строки — сплошное «запчасти не читать», а затем 2 384 приглашённые запчасти поимённо, в обеих формах адреса. Именно у этого переключателя последствия реальны, если он неверен, потому что он говорит Google перестать читать всё, чего нет в списке.

3. Страницы схем и то, что предлагает карта сайтаСегодня карта сайта предлагает 2 415 адресов. С включённым переключателем — 18 663. Это то самое число, которое план этой недели привёл как 18 657: план считал его с тестового сайта. Живой магазин сегодня предлагает 2 415.

4. Главный переключатель индексацииНа живом магазине тоже не выставлен. Ничего из нижестоящего нельзя включить раньше него.

Это решение, а не задача, и оно Джона: включение переключателя 2 — момент, когда мы говорим Google перестать читать примерно девяносто девять процентов страниц запчастей, которые он сейчас видит. Это и есть задуманный итог, и это по-прежнему самая крупная единичная инструкция, которую мы ему когда-либо давали. Включать её в тот же час, что и релиз, не стоит.

Страницы запчастей Kuhn остаются закрытыми от Google, и этот релиз это не меняет нужно решитьэто видит Googlefront#3666план 01

Страница бренда Kuhn отвечает сегодня и будет отвечать в субботу; то, что она говорит о себе, не меняется. Измерено: /parts/brand/kuhn отвечает 200 с обеих сторон и с обеих несёт «эту страницу не листать». На тестовом сайте меняется другое: она перестаёт передавать Google дальше, на отдельные запчасти Kuhn, которые перечисляет.

Причина закрытости не изменилась, и это не решение, принятое кем-то на этой неделе: данные Kuhn отвечают от двенадцати до шестидесяти девяти секунд, что замедляет чтение Google всего сайта. Это описано как front#3666, и у него нет владельца. План этой недели говорит то же самое теми же словами. Назначить владельца — решение в одну строку, и оно висит уже через два релиза.

Прод сегодняКандидат
прод, brand-kuhn кандидат, brand-kuhn
Страница бренда Kuhn с обеих сторон. Намеренно одинаковая: этот релиз не открывает Kuhn для Google.

Что прочитает Google, когда переключатели включат — измерено на тестовом сайте, где они включены

Страница запчасти, которую никто не приглашён читать: сегодня настоящая страница, на тестовом сайте — простое «не найдено»измереноэто видит Googlefront#3809, front#3810, front#3827, front#3828план 01

До — прод сегодня/parts/CT-FER-1650347SM: 200, страница на 277 856 байт, с noindex, follow и каноническим адресом, указывающим на саму себя, с полным описанием товара, которое Google читает у настоящего товара. Иначе говоря: страница, которая говорит «меня не листать», выглядя при этом ровно как страница, которую стоит листать.

После — кандидат сегодняТот же адрес: 404, 101 782 байта, noindex, nofollow, канонического адреса нет, описания товара нет вовсе. Не страница, притворяющаяся отсутствующей, — отсутствующая страница.

Контроль/parts/CT-NHL-100016 отвечает 200 с index, follow и полным описанием товара с обеих сторон. Это строка, доказывающая, что изменение выборочное, а не сплошное, и её стоит проверять первой, если после включения переключателя что-то выглядит не так.

Прод сегодняКандидат
прод, pdp-held кандидат, pdp-held
Одна и та же закрытая страница запчасти с обеих сторон. Десктоп, ширина 1440.
Прод сегодняКандидат
прод, pdp-held кандидат, pdp-held
Та же пара на телефоне, ширина 390.
Прод сегодняКандидат
прод, pdp-control кандидат, pdp-control
Контроль: запчасть, которая остаётся открытой, в тот же момент. С обеих сторон без изменений — именно это делает пару выше решением, а не сбоем.
Сотрудники по-прежнему могут открыть закрытую запчасть — по адресу, на который Google не отправляютизмереноfront#3834, front#3843, front#3854план 01

Если страница запчасти отвечает «не найдено», отделу запчастей всё равно нужно уметь на неё посмотреть. Для этого и есть /lookup/: та же запчасть по адресу, который существует для людей, а не для Google.

До — прод сегодня/lookup/CT-FER-1650347SM отвечает 404. Адреса не существует.

После — кандидат сегодняТот же адрес отвечает 200 с запчастью на нём, помечен noindex, nofollow и не несёт описания товара, которое Google мог бы прочитать.

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

Прод сегодняКандидат
прод, lookup-twin кандидат, lookup-twin
Служебный адрес той же закрытой запчасти. На живом магазине его нет вовсе — поэтому слева «не найдено».
Инструкции для обхода, до и послеизмереноэто видит Googlefront#3806, front#3843, front#3860план 01

До — прод сегодня13 строк. Один Allow: /, десять строк Disallow, закрывающих админку, личный кабинет, оформление заказа, вход и адреса с ?highlight=, и одна строка карты сайта. Про запчасти — ничего.

После — кандидат сегодня4 783 строки. Те же десять строк Disallow, плюс Disallow: /parts/, плюс Allow: /parts/brand/, чтобы страницы брендов остались читаемыми, плюс 4 768 строк, перечисляющих 2 384 запчасти поимённо — каждую в полной форме и в форме голого номера, потому что страницы техники ссылаются на одну, а результаты поиска — на другую.

Проверка, которая делает это безопасным2 384 запчасти, названные в инструкциях для обхода, — те же самые 2 384, что и в карте сайта. Согласие этих двух списков и есть всё свойство безопасности: запчасть, предложенная Google в одном и запрещённая в другом, — это страница, которую он запросит и на которой споткнётся. Новая автоматическая проверка сравнивает их при каждом изменении и теперь входит в набор проверок, которые релиз обязан пройти.

команда и её вывод с обеих сторон
Файл инструкций для обхода с обеих сторон, целиком. Отсечения нет ни в одном — оно выкатывается выключенным.
команда и её вывод с обеих сторон
Сколько адресов предлагает каждая карта сайта, с обеих сторон.
Закрытая запчасть исчезает из товарного фида — только из его брендовой половиныизмереноfront#3835план 01

Фид, который мы отдаём в Google Shopping, содержал товары, чьи страницы после включения переключателя будут отвечать «не найдено». Товар в фиде, ведущий на отсутствующую страницу, — это ровно та форма, за которую фид приостанавливают, поэтому теперь фид такие строки выбрасывает.

Поправка внутри релизаПервая версия выбрасывала строки из всего фида, а не из брендового раздела. Это было замечено и исправлено внутри того же релиза — обе строки стоят внизу этой страницы по порядку, а не так, что вторая молча заменила первую.

Сегодня фид никто не читает. Merchant Center так и не создан — это стоит в плане этой недели как решение, ожидающее Джона, — поэтому это изменение защищает то, что ещё не включено. Сделать стоило, знать стоит.

Фотографии переезжают на наш собственный адрес — единственное, что в пятницу действительно меняется

Одна фотография — один адрес, каким бы хостом она изначально ни называласьизмереноэто видит покупательfront#3803, front#3804, front#3812, front#3814, front#3820, front#3831, front#3838план 01

Фотографии запчастей грузились с двух разных адресов в зависимости от того, откуда пришли. Один был наш, другой — отдельный хост. Из-за этого одна и та же фотография могла иметь два адреса, скачиваться дважды и считаться у Google двумя картинками.

До — прод сегодняНа /parts/CT-NHL-100016: 112 фотографий через наш собственный сервис изменения размера, 14 со второго хоста, 2 из нашей папки изображений и 6 превью видео с YouTube.

После — кандидат сегодняТа же страница: 112 через наш собственный сервис изменения размера, со второго хоста — ни одной, 5 переехали на наш собственный адрес, 2 из папки изображений, 5 превью YouTube. Второго хоста на странице больше нет.

Ещё в этой группеСайт теперь отдаёт один формат изображения вместо двух, что вдвое сокращает то, что нужно готовить и хранить для каждой фотографии. Логотипы брендов, заменённые вручную, всё ещё отдавались со старого адреса — они тоже переехали. И размеры картинок в галерее теперь объявлены заранее, так что браузеру не приходится гадать.

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

команда и её вывод с обеих сторон
С каких хостов отдаются изображения страницы запчасти — посчитано с обеих сторон.

Новые страницы и две смены адреса — та часть релиза, которая не за переключателем, измерено в пятницу утром

Двенадцать адресов, которые существовали только на старом сайте, теперь работают на нашем измереноэто видят покупатель и Googlefront#3871, front#3872план 03

Конечная цель, к которой все идут, — crop.clintontractor.net заменяет старый сайт www. Прежде чем это произойдёт, у каждой страницы старого сайта должен быть дом здесь, решённая переадресация или решённый отказ. Схема структуры сайта от Андрея — это и есть список таких страниц. Перед вами первый её блок и единственный, которому не нужно было ничего ни от кого вне команды.

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

После — кандидат сегодняДесять из двенадцати — настоящие страницы, они отвечают нормально, и Google приглашён их читать. Две оставшиеся одним переходом ведут туда, где это уже есть: сервисный отдел — на сервис, шоурум — на страницу брендов. Карта сайта для Google вырастает с 31 адреса до 41 — эти десять новых страниц и есть вся разница.

Стоит сказать прямоЭто наши собственные тексты на наших страницах, а не копия старого сайта. Ничто в них не зависит от переключателя, поэтому они живые с утра пятницы.

У машин и навесного оборудования появляются свои страницы — и Google их пока не показывают измереноэто видит покупательfront#3871, front#3901план 03

/equipment и /attachments теперь показывают машины и навесное оборудование, которые у нас в продаже, в той же вёрстке, что и каталог запчастей: те же карточки, те же фильтры, тот же поиск. Данные за ними — это по-прежнему снимок со старого сайта, а не живой поток, и именно поэтому страницы несут пометку «не индексировать» и не попадают в карту для Google.

До — продакшен сегодня/attachments: не найдено. /equipment: хаб схем запчастей, то есть совсем другое.

После — кандидат сегодняОбе отвечают нормально и несут noindex. Покупатель, которому дали адрес, страницы видит; Google к ним не приглашают, пока данные за ними не станут живыми вместо снимка.

Что нужно от созвонаВ пятницу — ничего. Решение позже: когда объявления начнут приходить из живого источника, и только тогда их предлагают Google.

Все адреса схем запчастей уезжают из /equipment, одним переходом измереноэто видит Googlefront#3871, front#3900, front#3902план 03

Витрине выше нужно слово equipment в адресе, а его занимали схемы запчастей. Поэтому всё дерево схем — хаб, индекс моделей и страницы моделей и узлов под ними, около полумиллиона адресов по подсчёту в самом плане переезда — теперь живёт под /parts-diagrams. Каждый старый адрес доходит до нового за один переход, сохраняя всё, что за этим адресом шло.

До — продакшен сегодня/equipment/new-holland-speedrower-130-windrower-tier-3-non-flex-can отвечает 200 и несёт noindex, follow. Живая карта сайта не перечисляет ни одного адреса модели — только две индексные страницы над ними.

После — кандидат сегодняТот же адрес отвечает 308, один переход, на /parts-diagrams/model/ с тем же именем, строка запроса сохраняется. Две индексные страницы переезжают вместе с ним и остаются в карте под новым именем.

Что на самом деле меняется для GoogleАдреса, и больше ничего. Настройка, которая держит это дерево закрытым от Google, на живом магазине сегодня выставлена — именно поэтому живая карта не содержит адресов моделей, а каждая страница модели говорит «не индексировать». Пятница их переносит, а не открывает. На тестовом сайте эта настройка открыта, поэтому там в карте 16 250 адресов схем, а на живом — ни одного. Эта разница — переключатель, а не релиз.

Адреса запчастей с пятницы в нижнем регистре измереноэто видит Googlefront#3886, front#3894план 01

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

До — продакшен сегодня/parts/CT-NHL-100016: 200, и страница называет настоящим адресом сама себя. /parts/ct-nhl-100016: один переход вверх, к заглавным. В карте для Google 2 389 адресов запчастей, и все 2 389 — с заглавными.

После — кандидат сегодняРовно наоборот, при тех же 2 389 адресах и ни одного с заглавными. Один переход, никогда не два.

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

Три старые переадресации убраны — после шестнадцати месяцев, за которые ими никто не воспользовался измереноfront#3873, front#3902план 03

/catalog, /tires и /favorites переадресовывали внутрь магазина. Собственные данные Google по нашему сайту показывают ноль показов и ноль кликов по каждому из них за всё шестнадцатимесячное окно — при том что контрольные адреса в том же замере вернули сотни. С пятницы они отвечают «не найдено».

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

Каталог и страницы брендов — мелочи, и одной из них 27 дней

Вкладка «Схемы» на странице бренда открывается на каждой категории, а не только на первойизмереноэто видит покупательfront#3224, front#3225план 03, 05

На странице бренда вкладка «Схемы» работала, когда выбрана первая категория, и ничего не делала на остальных. Теперь она открывается на всех.

Измерено/parts/brand/new-holland/diagrams отвечает 200 с обеих сторон. Страница весит 5,35 МБ на живом магазине сегодня и 4,17 МБ на кандидате — на 1,18 МБ меньше скачивать при том же содержимом.

Стоит сказать прямоЭто изменение пролежало черновиком 27 дней. Оно стоит в плане этой недели в разделе «забытые запросы» и оно единственное из того списка, что реально сдвинулось. Правка мелкая; дело в 27 днях, а не в правке.

Прод сегодняКандидат
прод, brand-diagrams кандидат, brand-diagrams
Вкладка «Схемы» бренда с обеих сторон. Оба снимка обрезаны по верху страницы — полная страница на кандидате высотой 53 848 пикселей, и формат изображения такое не вмещает. То, что вкладка открывается на каждой категории, видно по полосе кнопок категорий; длина — нет.
Поиск знает, какие бренды открыты для Google, и перестаёт предлагать те, что не открытыизмереноsearch#933, search#934, search#938, search#942план 01, 10

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

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

Уборка после старой базы — снаружи ничего не видно

Код, который разговаривал со старой базой, удалён вместе с комментариями, которые её описывалиизмереноps#702, ps#704, ps#707, ps#709, front#3844, front#3857, front#3858, search#940план 06

Старая база была выключена в среду утром (v2.3.1). Этот релиз убирает то, что на неё ещё указывало: сам драйвер, 31 тестовую настройку, которые больше ничего не настраивают, ночную задачу резервного копирования, нацеленную на кластер, которого больше нет, и россыпь комментариев, которые всё ещё описывали старое устройство тому, кто прочитает код следующим. Снаружи кода ничего из этого не видно.

Почему это вообще на этой страницеКомментарий, описывающий систему, которой больше нет, — это то, как следующий человек уверенно принимает неверное решение. На этой неделе это не гипотеза: сам план выключения старой базы сверялся с описанием, которое успело устареть, и это и есть тот «чуть не» на странице v2.3.1.

команда и её вывод с обеих сторон
Собственный ответ сервиса оплаты о своём здоровье, до и после. Записи о старой базе справа больше нет.
команда и её вывод с обеих сторон
Совместимость запчастей с техникой, посчитанная в обеих базах до переключения: одно и то же число, 147 323, из каждой.
Страница, которая не собралась, больше не хранится и не отдаётся кэшем повторноизмерено частичноfront#3830план 12

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

Измерено лишь частично. Наличие пометки на кандидате подтверждено: отказные ответы несут no-store и для браузера, и для сетевого кэша. Подтвердить не удалось то, что она работает: ответы всё равно приходили помеченными как отданные из кэша. Это то же самое неразрешённое наблюдение, что и в пункте про поиск в начале страницы, и, скорее всего, разбор одного закроет оба.

Прод сегодняКандидат
прод, listing-degraded кандидат, listing-degraded
Страница каталога, у которой запросили номер страницы за пределами того, что она может собрать, с обеих сторон.
Имя ушедшего коллеги убрано из тринадцати мест в четырёх репозиторияхизмереноfront × 9, search#941, ps#696, ps#708не в плане

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

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

Против плана этой недели — двенадцать пунктов и что неделя на них ответила

Неделя 24–28 августа была спланирована как двенадцать пунктов в четырёх лентах. Ниже каждый из них против того, что вышло, а каждое изменение выше по странице помечено пунктом, на который оно отвечает. Два из двенадцати сдвинулись далеко, четыре сдвинулись немного, шесть не сдвинулись вовсе — и из этих шести пять ждут ответа от человека, а не работы. Это честная форма недели, и правую колонку стоит прочитать первой.

Пункт планаЧто неделя ответилаЧего не ответила
Vova — моя очередь
01 — SEO
Vova + Андрей
Почти всё. Решить один раз, какие страницы запчастей приглашены к прочтению Google, и затем заставить страницы запчастей, сетку просмотра, страницы брендов, инструкции для обхода, карты сайта, товарный фид и список сохранённых запчастей согласиться с этим одним решением. Заодно фотографии переехали на наш собственный адрес.
С одной оговоркой, которая управляет всем пунктом: оно выкатывается выключенным. Пятница ставит механизм на место и не меняет ничего из того, что видит Google, пока потом не включат переключатель.
359 запчастей четырёх брендов по-прежнему ждут вашего ответа — это самый дешёвый ход на странице, и он не двигается уже две недели. Сорок девять ссылок с карточки товара по-прежнему ведут в закрытую зону. Адрес shop. по-прежнему не решён, и примерно 245 сайтов, ссылающихся на него, по-прежнему ссылаются в пустоту. Kuhn по-прежнему отвечает медленно и по-прежнему без владельца. AI-описания — за Алексом и не начаты.
02 — Тесты
Vova
Отложенные тесты разобраны: из тридцати двух двадцать семь починены, переписаны или удалены, а у пяти оставшихся в карантине у каждого записана причина. Три из этих пяти стоят в карантине потому, что нашли реальную неисправность в продукте, и оставлены красными намеренно, а не тихо подогнаны под зелёный. Проверка того, что адреса запчастей остаются стабильными, теперь блокирует плохое изменение, а не просто о нём сообщает. Нескольким тестам, которые проходили, ничего не проверяя, добавили зубы, а путь оформления заказа и две проверки владения теперь покрыты от начала до конца. Три структурных пункта не тронуты: проверки клиентского пути по-прежнему не обязательны перед приземлением изменения, красную проверку на живой ветке по-прежнему можно обойти, и с 13 августа оплату ночью ничто не проверяет. Именно эти три и придали бы зелёному результату смысл, и ни один из них не работа — каждый это настройка.
03 — Переезд структуры сайта на crop
Vova
Самая крупная отдельная работа в этом релизе, и она приехала в четверг. Двенадцать адресов, которые существовали только на старом сайте, теперь работают здесь, десять из них — как отдельные страницы. Схемы запчастей уехали из /equipment, чтобы это слово досталось технике, и там теперь живёт витрина машин и навесного оборудования. Плюс вкладка «Схемы» открывается на каждой категории страницы бренда, а не на некоторых. Всё это — в четвёртом разделе страницы. Семейства страниц, которые зависят от Андрея: посадочные страницы запчастей и его ветка схем. Схема структуры пришла 21 августа и с тех пор не обсуждалась. А витрина по-прежнему работает на снимке старого сайта, а не на живом источнике, — поэтому Google её пока и не показывают.
Vova и Джон вместе
04 — API Iron Connect / DIS
Vova + Джон
Ничего. Всё. Этот пункт на этой неделе не сдвинулся вовсе, и ничто в этом релизе его не касается.
05 — Забытые запросы
Vova + Джон
Вышел самый старый: вкладка «Схемы», о которой попросили за двадцать семь дней до того, как её сделали. Остальной список по-прежнему открыт и по-прежнему не разобран.
Vova и Алекс вместе
06 — Выключить Mongo
Vova + Алекс
Сделано, и сделано в проде, а не на тестовой копии. Совместимость с техникой переехала 24 августа, заказы и каталог — 25 августа, оплата — 26 августа, и старая база была удалена в тот же день. Восемь изменений в этом релизе — то, что осталось после: удаление драйвера, задачи резервного копирования, нацеленной на несуществующий кластер, и настроек и документов, которые её всё ещё описывали. Ничего. Это единственный пункт плана, который закрылся.
07 — Два макета Джона
Vova + Алекс
Оба записаны на странице идей — с тем, что за ними уже стоит, и с тем, что каждому потребуется. Ничего не построено. Оба. На гибридной схеме архитектуры к тому же есть строка, которая является решением, а не рисунком, и там она записана как открытый вопрос, а не как согласованное.
08 — Инфраструктура на OptiPlex
Vova + Алекс
Ночной мобильный тест уведён из окна, в котором офисная машина выгружает данные и которому он проигрывал каждую ночь. Страница расходов, которую вы просили, и рисунок «как сейчас против как должно быть».
Лента Алекса
10 — Лента Алекса
Алекс
Четыре из четырнадцати изменений поиска в этом релизе — его ленты: поиск теперь сообщает, открыт ли бренд для Google, умеет возвращать только открытые строки и больше не портит общее соединение, когда запрос упирается в свой предел размера. Также вошёл полный ночной обход поставщиков. Airflow и два его открытых пункта не начаты.
Где следующий ход не за нами
09 — AGCO, первый срез
вряд ли на этой неделе
Ничего — ровно то, что план для него и предсказал.
11 — Мой гараж
Джон
Тест, который его блокировал, починен, так что с нашей стороны сама работа больше не заблокирована. Нужные ему хуки клиентских аккаунтов по-прежнему открыты.
12 — Лента Андрея
Андрей
Фреймворк сайта переехал с превью-сборки на выпущенную версию, и цена этого — кэширование «не найдено» — записана, а не обнаружена потом. Ответы Андрея по семействам страниц, которых ждёт и пункт 03.
Не в плане, но реальная часть недели
Хвост увольнения
без ленты
Коллега ушёл 20 августа, и учётные записи были закрыты как положено. Тринадцать упоминаний о нём пережили это в четырёх репозиториях — строки владения, названия тестов, комментарии в коде и реальный рабочий адрес почты, использованный как образцовые данные. Все тринадцать в этом релизе убраны. Два из этих тринадцати были единственной письменной записью о том, кто владел куском работы. Оба теперь честно записаны как не имеющие владельца — это правда и это не решение.

Всё в этом релизе — 188 изменений, и у каждого есть краткое описание в одну строку, записанное прямо в самом изменении

Сайт магазина162 изменения 79 из них заметны покупателю или Google
ИзменениеЧто этоЧто сдвинулосьСделал
front#3871Возврат назад к уже выполненному поиску оставлял поле поиска по технике пустым, хотя страница показывала результаты.поле поиска следует за внешним изменением запросаVova
front#3871Витрина техники теперь показывает, какие фильтры сужают список, и лишний уровень категорий убран.добавлен показ активных фильтров, нижний уровень категорий убранVova
front#3943Три автоматические проверки узнавали страницу схемы по куску адреса и сломались после переезда схем.поиск по test id, а не по фрагменту адресаVova
front#3944Тест корзины падал на телефонном экране, потому что ждал счётчик, который отрисован за пределами экрана.toBeAttached вместо toBeVisibleVova
front#3940Отфильтрованный список закрытого бренда сохранял пометку «не индексировать» только при одном точном написании бренда.значение бренда нормализуется до решения по robotsVova
front#3946Выбор закрытой запчасти из подсказок поиска вёл покупателя на адрес, который отвечает «не найдено».один резолвер для каждой строки подсказкиVova
front#3932Комментарий в коде всё ещё утверждал, что страницы техники недостижимы, хотя после переезда они достижимы.комментарий исправленVova
front#3939Дымовой тест оплаты покупал запчасть, которую теперь скрывает индексный шлюз, и падал на тестовом сайте не из-за настоящей поломки.покупаемый номер подбирается на летуVova
front#3920Вход нёс адрес страницы, откуда вы пришли, прямо в собственном адресе, и это значение можно было направить на чужой сайт.путь возврата убран из адреса; принимаются только внутренние путиVova
front#3930Ссылка на общую корзину с испорченным кодом отклоняется до кэша, и письмо сотруднику больше не противоречит собственной теме.форма токена проверяется вне кэшируемого путиVova
front#3937Оформление заказа писало «Итого $975.94 + доставка» и называло плату за доставку, которой больше нет; теперь указана итоговая сумма, а налог вынесен сноской.итог окончательный, доставка «Free», названия способов — утверждённыеVova
front#3947Собственная индексная проверка релиза судила о результате по тому, что её запустило, а не по тому, что она измерила.проверка ограничена измеренной поверхностьюVova
front#3913Главная кнопка покупки на девяти из десяти страниц наших брендов вела в пустой список: у Landoll ноль, при том что в его каталоге 4 767 запчастей.кнопка бренда ведёт на /parts/brand/<slug>Vova
front#3871Ввод в поиске на витрине техники теперь фильтрует список прямо на странице по мере набора.фильтрация загруженных строк на клиентеVova
front#3938Та же индексная проверка запускалась там, где ответить на неё нельзя, и краснила нормальную работу.проверка идёт только там, где есть переключателиVova
front#3871Страница техники писала одну и ту же фразу дважды: в заголовке и в панели.дублирующая строка убранаVova
front#3871Страница отдельной машины теперь читается как страница запчасти, а не как другой сайт.страница единицы техники берёт герой-блок PDPVova
front#3871Список техники теперь использует те же карточки, фильтры и плотность, что и каталог запчастей.витрина берёт язык дизайна /partsVova
front#3184Ночная доставка предлагалась по признаку дозаказа, а не по тому, есть ли запчасть на складе поставщика.cnh-overnight решается по наличию на складеVova
front#3871Меню на телефоне всё ещё вело на старый сайт.ссылка на старый www убранаVova
front#3871Новые страницы дилерского центра теперь есть в подвале, их можно найти, не зная адреса.в подвал добавлена колонка дилерского центраVova
front#3871Витрина техники написана языком покупателя, наши призывы к действию — в первом экране.текст на языке покупателя, кнопки в первом экранеVova
front#3871Страница навесного оборудования предлагала фильтры, описывающие целые машины, а не навесное.фильтры /attachments описывают именно навесноеVova
front#3918Новые страницы несли «хлебные крошки» в разметке, но читателю их не показывали; теперь обе стороны совпадают.один маршрут питает видимую навигацию и разметкуVova
front#3916Диалог «все запчасти» над схемой вёл закрытые запчасти на адреса, где индексный шлюз отвечает «не найдено».закрытые строки во всех трёх таблицах — обычный текстVova
front#3904Ввод номера запчасти и Enter открывал схему постороннего агрегата вместо самой запчасти.отправка ведёт по строке, которая отвечает на запросVova
front#3902Проверка, что старые адреса узлов по-прежнему переадресуются, идёт на каждом изменении, а не только в глубоком прогоне.кейсы 308 для узлов идут на каждом PRVova
front#3900Тест всё ещё утверждал, что хаб схем удалён навсегда, хотя он вернулся.утверждение о 410 заменено живой формойVova
front#3902Старый адрес узла доходил до нового места за два перехода; теперь за один.хвост старых узлов переадресуется одним переходомVova
front#3900Переехавший код схем остаётся под теми же проверками качества, что и до переезда.переехавшее дерево осталось под теми же проверкамиVova
front#3872Одиннадцать новых страниц повторяли один и тот же завершающий блок и одну и ту же разметку списка; теперь и то и другое написано один раз.завершающий блок и схема ItemList вынесены в помощникиVova
front#3900Проверки на адреса в нижнем регистре переехали вместе со схемами.утверждения о нижнем регистре перенесены на новое деревоVova
front#3902Теперь карта адресов переезда лежит в одном месте: переадресации, уровни кэша, навигация и карта сайта.карта переадресаций, уровни CDN, навигация и sitemap изменены вместеVova
front#3872Одиннадцать страниц дилерского центра, которые есть на старом сайте и отвечали «не найдено» у нас, теперь существуют: сервис, заявка на кредит, вакансии, коллектив, отзывы, часы работы и адрес.добавлены 11 статических страницVova
front#3901У машин и навесного оборудования появились свои страницы по адресу, который задаёт структура сайта./equipment, /equipment/{id} и /attachments отдают витринуVova
front#3900Все адреса схем переезжают из /equipment в /parts-diagrams одним переходом, чтобы имя equipment освободилось под технику.дерево моделей переехало на /parts-diagrams/model, строка запроса сохраняетсяVova
front#3906Сервис изображений мог уйти по переадресации на адрес, который ему не разрешали загружать.у оптимизатора maximumRedirects = 0Vova
front#3909Удалена дублирующая копия правил адресации фотографий, чтобы две копии не разъезжались.одна карта бакетов, один загрузчик; минус 51 строкаVova
front#3894Адреса запчастей теперь везде в нижнем регистре, а форма с заглавными доходит до них ровно за один переход.все адреса /parts/ отдаются в нижнем регистре, форма с заглавными — один 308Vova
front#3908Поле входа оставляло работающие таймеры после исчезновения и краснило случайный чужой прогон тестов.после размонтирования не остаётся ни одного таймераVova
front#3905Тест на то, что закрытая строка в списке запчастей не превращается в ссылку.три кейса закрепляют ветку indexHeldVova
front#3895Уведомление могло появиться в тёмных цветах после того, как магазин закрепили в светлой теме.всплывающее уведомление следует принудительной темеVova
front#3891То, какие папки фотографий заранее нарезаны, объявлено в коде, а не в настройке хостинга, которую репозиторий не может прочитать.покрытие берётся из BAKED_WIDTHS, переменная окружения убранаVova
front#3889Страницы входа были закрыты от чтения, а вместе с ними и написанная на них пометка «не индексировать»./sign-in и /sign-up открыты, добавлен canonicalVova
front#3883При отсутствии настройки заранее нарезанные папки фотографий считались пустым списком; теперь по умолчанию берутся все три готовые.пустая переменная разворачивается во все нарезанные префиксыVova
front#3873Удалены две старые переадресации, по которым Google за шестнадцать месяцев не перешёл ни разу.правила /catalog и /tires удаленыVova
front#3881Адрес фотографии со строкой запроса мог быть принят за векторный рисунок и пройти мимо оптимизатора.проверка вектора читает путь, а не сырую строкуVova
front#3880Логотипы брендов отдавались в полном размере: 963 КБ из 1,35 МБ картинок одной страницы бренда. Теперь они идут через оптимизатор.растровые логотипы теряют флаг unoptimizedVova
front#3879Два заголовка рабочих процессов утверждали правило, которого нет, а вера в него отнимает единственный способ запустить их вручную.заголовки исправлены, каждый со ссылкой на измерениеVova
front#3877На ветке продакшена не требовалось ни одной проверки, тогда как на тестовой — пять; теперь эту асимметрию еженедельно контролирует отчёт.еженедельная проверка читает правила ветки mainVova
front#3875Переключатель внутри личного кабинета переводил весь магазин в тёмную тему для этого покупателя и при всех следующих визитах.светлая тема принудительно, сохранённая тёмная сбрасываетсяVova
front#3865Меню брендов в шапке показывало названия там, где должны быть логотипы.логотипы возвращены в шапку и в полосу брендовVova
front#3868Оптимизатор фотографий забирал оригиналы через наш собственный защищённый край вместо адреса медиа.источник оптимизатора — абсолютный адрес медиаVova
front#3867Вкладка «Схемы» бренда открывалась на выборе категории, а не на сетке всех категорий.пустая вкладка отдаёт сетку всех категорийVova
front#3863У вчерашнего изменения панели не было тестов; теперь его держат двенадцать проверок.12 утверждений, проверка зависимостей — ноль нарушенийVova
front#3862На странице схем бренда дважды подряд показывался один и тот же ряд кнопок категорий.дублирующая полоса кнопок убрана; вместо двух рендерится однаVova
front#3685Тест оформления заказа, который заполняет адрес дважды, не укладывался во время на загруженной машине сборки и краснил чужую работу.отдельный бюджет времени для этого случая; продуктовый код не тронутVova
front#3854Страницы брендов проверялись по правилу, написанному для страниц запчастей, и проверка помечала корректные страницы.совпадение по префиксу пути, а не по одному буквальному адресуVova
front#3854Проверка, охраняющая весь этот релиз, теперь читает переадресации из тела страницы, так что её больше нельзя ими обмануть.проверка утверждает якорь robots и следует за переадресациями в телеVova
front#3860В файле инструкций для обхода часть страниц названа точно, а часть по префиксу; проверка считала точное имя префиксом и пропускала страницы, которые должна была отклонить.строки Allow с якорем $ читаются как точные путиVova
front#3854Google всё ещё мог дойти до закрытой страницы запчасти за один переход со страницы, которую читать приглашён; этот переход закрыт, и инструкция «не индексировать» наконец может быть исполнена.последний переход к /lookup убранVova
front#3858Комментарии в коде всё ещё описывали старую базу как живой источник после её выключения.комментарии исправлены; поведение не изменилосьVova
front#3225Вкладка «Схемы» на странице бренда появлялась только у некоторых категорий; теперь у всех.вкладка «Схемы» открывается на каждой категорииVova
front#3857Модуль кэша всё ещё нёс имя ушедшего коллеги и блок комментариев, отошедший от кода.имя убрано; блок комментариев возвращён под контрольVova
front#3843Разрешения на обход для отдельных запчастей были записаны достаточно вольно, чтобы разрешать и адреса под ними.строки Allow для отдельных SKU заякорены символом $Vova
front#3854Несколько мест на сайте ссылались на закрытые страницы запчастей, не проверяя, закрыты ли они; теперь проверяют.поверхности, слепые к вердикту, перестают рекламировать закрытые страницыVova
front#3854Каждая ссылка на страницу запчасти теперь строится одним куском кода, так что решение «закрыта или нет» нельзя забыть в одном углу сайта.все ссылки /parts/ идут через один генераторVova
front (direct)Тестовые данные использовали реальный рабочий адрес почты.подставлен нейтральный адресVova
front (direct)Тест хука использовал реальное имя коллеги как образец соавтора.подставлены нейтральные данныеVova
front (direct)Пояснение в документации называло ушедшего коллегу и повторяло то, что уже сказано абзацем выше.пояснение убраноVova
front (direct)Документация описывала функцию через того, кто её сделал, а не через то, что она делает.описано через рольVova
front (direct)Название самого теста содержало имя ушедшего коллеги.тест переименованVova
front (direct)Инструкция по настройке предписывала конкретному ушедшему человеку выдать ключ.инструкция обращена к действию, а не к человекуVova
front#3857Код брендов всё ещё нёс имена коллекций и карты полей старой базы, которые теперь никуда не указывают.мёртвые имена коллекций и карты полей удаленыVova
front (direct)Строка владения называла человека, который ушёл.строка владельца исправленаVova
front#3854Решение о том, приглашена ли страница запчасти к прочтению Google, принималось в нескольких местах, которые могли разойтись; теперь оно принимается один раз, двумя названными политиками.один вердикт индексации, две названные политикиVova
front#3852Проверка «хлебных крошек» отклоняла страницы /lookup за отсутствие данных, которых те намеренно не содержат.проверка выучила форму «навигация без схемы»Vova
front#3851Проверка того, что адреса запчастей остаются стабильными, работала там, где не могла остановить плохое изменение; теперь блокирует.стабильность адресов переведена в блокирующую лентуVova
front#3843Структурированные данные о товаре отдавались и с публичной страницы запчасти, и с её закрытого двойника; нести их должна только публичная.структурированные данные отдаются на /parts и никогда на /lookupVova
front (direct)Запись о владельце базовых замеров каталога называла ушедшего коллегу.записано как вакантноеVova
front#3843Закрытый двойник страницы запчасти всё ещё отдавал Google данные о товаре, что приглашает индексировать страницу, которую мы просили не индексировать.закрытый рендер /lookup не отдаёт структурированных данныхVova
front#3844Комментарии утверждали, что просмотр техники читает старую базу.комментарии исправленыVova
front#3843Строка сохранённых запчастей покупателя ссылалась на закрытого двойника запчасти так, что робот мог по ней пройти.строка избранного рендерится невидимой для роботаVova
front#3843Закрытые страницы запчастей были одновременно закрыты от чтения и помечены «не индексировать» — эти два взаимно уничтожаются; запрет снят, чтобы инструкцию можно было прочитать.ссылки убраны, Disallow восстановлен, закрытые бренды с nofollowVova
front#3835Фильтр, задуманный убрать строки одного бренда из товарного фида Google, убрал весь фид.фильтр убирает только брендовую половинуVova
front#3833Собственная охрана релиза не ловила читаемую страницу, ссылающуюся на закрытый адрес; теперь ловит.проверка помечает читаемую страницу со ссылкой на закрытый адресVova
front#3840Отфильтрованный список для закрытого бренда говорил одно, а страница самого бренда — другое.список ?manufacturer= согласуется со страницей брендаVova
front#3835Товарный фид Google всё ещё рекламировал запчасти, чьи страницы теперь отвечают «не найдено».фид убирает строки, чьи страницы отдают 404Vova
front#3839Запрет на чтение страницы запрещает и прочтение стоящей на ней инструкции «не индексировать»./lookup/ открыт, чтобы его noindex был читаемVova
front#3838Изображения галереи теперь могут объявлять свои настоящие размеры, потому что они наконец есть у всех.объявлены размеры для /galleryAlex
front (direct)Тест страницы запчасти гонялся с лениво подгружаемой панелью.тест дожидается загрузкиVova
front#3837Один из маршрутов к списку запчастей бренда забывал записать, что запчасть закрыта.маршрут BOM бренда тоже проставляет indexHeldVova
front#3834Тест на то, что закрытая связанная запчасть ведёт на двойника, а не на мёртвый адрес.новый тестовый случайVova
front#3834Карточки связанных запчастей на странице запчасти вели закрытые запчасти на адреса, которые теперь отвечают «не найдено».карточки связанных ведут на двойника /lookupVova
front#3833Стенд, проверяющий всё решение об индексации от начала до конца, чтобы этот релиз можно было проверить, а не обсуждать.добавлен стенд проверки индексного шлюзаVova
front#3833Этот стенд теперь работает внутри обеих автоматических проверок сайта.стенд встроен в оба SEO-шлюзаVova
front#3834Закрытая строка в каталоге не вела никуда вовсе.закрытая строка ведёт на свою страницу /lookupVova
front#3831Одна и та же фотография могла публиковаться под двумя разными адресами в зависимости от того, какая система её назвала.одна фотография — один адресVova
front#3830Страница, которая не собралась, сохранялась кэшем и отдавалась повторно.отказные ответы помечены no-storeVova
front#3828Страница запчасти всё ещё могла отвечать нормально, неся при этом инструкцию «не индексировать» — ровно та двусмысленность, которую этот релиз убирает.200 с noindex теперь невозможенVova
front#3818Поиск по точному номеру запчасти приводил на сетку с одной карточкой вместо самой запчасти.точный поиск по SKU ведёт на запчастьVova
front#3824Тест дожидался изображений страницы схем прежде, чем проверить адрес.ожидание отвязано от изображенийVova
front#3822Тест считал отсутствующую в наличии запчасть отсутствующей страницей.OOS-запчасть проверяется как отрисованная страницаVova
front#3820Сайт генерировал каждую фотографию в двух форматах, а отдавал один.AVIF оставлен, WebP убранVova
front#3810Ключевое изменение: страница запчасти, которую Google читать не приглашён, теперь отвечает «не найдено», а закрытые строки убраны из сетки просмотра.noindex равно 404, за выключенным переключателемVova
front#3814Загрузчик изображений подключался по условию, из-за чего часть страниц его обходила.загрузчик подключён безусловноVova
front#3812Оптимизатор изображений всё ещё забирал оригиналы с внешнего адреса.источник оптимизатора перенесён на наш originVova
front#3807Предложенное отсечение обхода отрезало бы вместе со страницами запчастей и страницы списков брендов.поддерево списков брендов оставлено читаемымVova
front#3806Отсечение отрезало бы и все ссылки с техники, которые используют форму голого номера.форма голого номера тоже разрешенаVova
front#3804Логотипы брендов, заменённые вручную, всё ещё отдавались с внешнего адреса.заменённые логотипы на нашем хостеVova
front#3801Изображения витрины, отдаваемые без оптимизации, всё ещё указывали на внешний адрес.неоптимизированные изображения на нашем хостеVova
front#3797Логотипы брендов отдавались с внешнего адреса.логотипы брендов на нашем хостеVova
front#3799Остальные поверхности изображений всё ещё указывали на внешний адрес.все оставшиеся поверхности на нашем хостеVova
front#3802Проверка обхода была нацелена на страницы запчастей, которые намеренно закрыты, и потому мерила не то.робот нацелен на страницы, пригодные к индексацииVova
front#3795Прогон тестов без настроенного адреса поиска всё равно запускал приложение и падал позже, запутанно.падает до старта webServerVova
front#3796Данные о товаре, отдаваемые Google, называли фотографию по одному адресу, а страница — по другому.изображение в JSON-LD совпадает с og:imageVova
front#3793Первая версия решения о закрытых страницах: отвечать «не найдено», а не отвечать нормально с меткой «не индексировать».404 вместо 200 с noindexVova
front#3791Каждый адрес изображения на сайте теперь проходит через наш собственный домен, а не через внешний.все адреса изображений публикуются через /img/*Vova
front#3789Ночной мобильный тест шёл в то же окно, в котором офисная машина выгружает данные, и проигрывал ему каждую ночь.уведён из окна выгрузкиVova
front#3654Фреймворк сайта переведён с превью-сборки на выпущенную версию, и записано, во что это обходится по кэшированию «не найдено».next 16.3.0-preview.10 -> 16.3.1Vova
front#3786Чек-лист для переключения, которое уже произошло, и руководство, чьи собственные числа расходились между собой.чек-лист снят, числа сведеныVova
front#3779Обновление библиотеки анимаций.framer-motion 13.1.1Vova
front#3778Шесть обновлений инструментов разработки, ни одно не касается самого сайта.шесть мажорных обновлений инструментовVova
front#3783Руководство не упоминало переключатель, управляющий отсечением обхода, так что идущий по нему его бы пропустил.переключатель описан в руководствеVova
front#3776Вкладка «Схемы» бренда скачивала на 1,5 МБ больше нужного, и ничто не мешало этому расти.1,5 МБ убрано, добавлен бюджетVova
front#3770Тест входил под одной ролью и затирал сессию другой.сессия роли загружается, а не затираетсяVova
front#3780Параллельные тестовые задачи делили один порт заглушки доставки и отвечали на запросы друг друга.свой порт на задачу, проверка проверяет личностьVova
front#3781Файл инструкций для обхода теперь может перечислять только те страницы запчастей, которые Google приглашён читать, — за выключенным переключателем.отсечение robots.txt, флаг выключен по умолчаниюVova
front#3773Записано, что страница, отвечающая нормально с меткой «не индексировать», была задумана именно так — до того, как этот релиз это изменил.документацияVova
front#3771Описания в товарном фиде выкрикивали тип запчасти вместо того, чтобы называть, к чему она подходит.описания называют совместимостьVova
front#3772У вкладки схем бренда не было заголовка, который бы её называл.добавлен h1Vova
front#3757Страница, которая не собралась, выглядела для наших же проверок обычной страницей.маркер границы ошибки распознаётся как soft-503Vova
front#3764Тридцать два отложенных теста — каждый либо починен, либо переписан, либо удалён с записанной причиной.карантин глубокой ленты разобран, 32 спекаVova
front#3765Тест оформления заказа нажимал «Оплатить» до готовности страницы.сначала дожидается ReactVova
front#3763Список, кратковременно упавший, показывал общий экран ошибки вместо честного «попробуйте ещё раз».тело 503 вместо границы ошибкиVova
front (direct)Записано, что бесплатная доставка на уровне аккаунта не может выразить наше исключение для тяжёлых позиций.документацияVova
front#3744Номер запчасти из каталога бренда, которого не существует, отвечал нормально вместо «не найдено».404 вместо soft-200Vova
front (direct)Тридцать четыре вручную написанных цвета возвращены к токену, с которого были скопированы.34 захардкоженных цвета переведены в токеныVova
front (direct)Тестовый помощник экспортировался, хотя вне своего файла его никто не вызывает.экспорт убранVova
front (direct)Логотипы брендов сдвигали вёрстку, потому что их коробка резервировалась из неверного соотношения.соотношение приведено к зарезервированной коробкеVova
front (direct)Проверка настроек падала на настройке, значение которой само является структурированными данными.переменные со значением-JSON принимаютсяVova
front (direct)Заметки об отложенных тестах, которые правки в той же ветке сделали неверными.заметки обновленыVova
front (direct)Тест подсказок поиска гонялся с собственной задержкой ввода.кэш удерживается холоднымVova
front (direct)Бюджет размера мерился против сборки для разработки, которая всегда больше.отказывается взвешивать документ dev-сборкиVova
front (direct)Логотипы брендов на страницах запчастей оценивались по изображению, а не по отведённому под него месту.оценка по зарезервированной коробкеVova
front (direct)Два тестовых файла падали с ошибкой или пропускались, ничего не проверяя.спеки заставлены работатьVova
front (direct)Тесты страниц запчастей и списков всё ещё смотрели на старую структуру страницы.переякорены на переписанную v2Vova
front (direct)Тесты фильтров каталога смотрели на элементы, которых сайт не отрисовывает.нацелены на реальные элементыVova
front (direct)Тесты подсказок выбирали строки по позиции, а позиция менялась.выбор по группе; ориентир вычисляется на летуVova
front (direct)Тесты пути покупки кликали до того, как страница становилась интерактивной.клики после гидратацииVova
front#3734Адрес поиска по умолчанию указывал на порт, на котором работает сам сайт, и тот звал сам себя.самоссылающегося значения по умолчанию нетVova
front (direct)Записан полный базовый прогон браузерных тестов, чтобы падения было с чем сверять.базовый прогон записанVova
front (direct)Три блока комментариев взяты под контроль дублирования.3 блока комментариевVova
front (direct)Обновлён базовый уровень покрытия.базовый уровеньVova
front (direct)Утверждения, которые не могли упасть, переписаны так, чтобы могли.пустым утверждениям добавлены зубыVova
front (direct)Закреплены две проверки, которые держат внутреннюю точку доступа и отладочный экран вне прода.закреплены проверки revalidate и debug-configVova
front (direct)Путь оформления заказа теперь покрыт от начала до конца.новое сквозное покрытиеVova
front (direct)Закреплены проверки, не дающие одному покупателю прочитать чужой запрос цены или заказ.закреплены проверки владения запросами и заказамиVova
front#3740Адреса с сегментами-точками могли проскочить мимо префикса маршрутизации прокси. Это уже живое — оно ушло в прод 21 августа и возвращено сюда.сегменты-точки отклоняются; уже в продеVova
front#3512Два тестовых случая сообщали об успехе, тихо ничего не найдя.случаи сообщают, что нашлиVova
front#3735Когда заголовок страницы запчасти был слишком длинным, он терял либо бренд, либо номер запчасти производителя; теперь сохраняет оба.заголовок сохраняет бренд и номер OEMAlex
front#3738Товарный фид Google рекламировал состояния наличия, которые Google отклоняет.отклоняемые состояния убраныVova
Поиск18 изменений 11 из них заметны покупателю или Google
ИзменениеЧто этоЧто сдвинулосьСделал
search#952Список запчастей бренда игнорировал указание показывать только строки, которые Google приглашён читать.indexableOnly учитывается в списке брендаVova
search#949Поиск мог вернуть адрес навесного оборудования, для которого у витрины нет страницы.слаги ATTACHMENT убраны из поиска и вариантовVova
search#946Тот же неверный адрес мог прийти из веток узлов.слаги ATTACHMENT убраны из веток узловVova
search#944Ветка федеративных брендов игнорировала то же указание.indexableOnly применяется в ветке федеративных брендовVova
search#942Отсечение сетки просмотра применялось ко всем поставщикам строки, а не только к её собственным.отсечение ограничено собственными поставщиками строкиVova
search#941Строка владения называла коллегу, который ушёл.строка владельца исправленаVova
search#940Ответ о здоровье всё ещё объявлял поля двух систем, с которыми сервис больше не разговаривает.поля elasticsearch и mongodb убраныVova
search#933Списки популярных запчастей и запчастей на схемах не несли признак того, приглашена ли запчасть к прочтению Google, и магазин не мог этого знать.вердикт реестра добавлен в обе лентыVova
search#933Сами результаты поиска этот признак тоже не несли.вердикт реестра добавлен в результатыVova
search#938Признак открытости бренда для Google читался из устаревшей копии; теперь читается из записи, которая его определяет.читается из indexing_blocksVova
search#938Сводка по бренду теперь сообщает, открыт ли бренд для Google, и магазин перестаёт гадать./api/brands/summary несёт признакVova
search#937Запрос, остановленный на пределе размера, отменялся на лету, что портило общее соединение и задевало следующий поиск покупателя.запросы на пределе больше не отменяютсяVova
search#934Поиск теперь умеет возвращать только те строки, которые открыты для Google, — а это и нужно сетке просмотра.добавлен indexableOnly=trueVova
search#931Страница запчасти запрашивала сводку совместимости по одной запчасти за раз; теперь она приходит вместе с запчастью.сводка совместимости проецируется на PartVova
search (direct)Четыре проверки в шлюзе выкатки были написаны так, что не могли упасть.проверки переписаны настоящим if/elseVova
search#884Замечание о дублирующихся результатах блокировало выкатки, пока само ещё обсуждается.вынесено из жёсткого шлюзаVova
search (direct)Тестовые данные слияния брендов были скопированы с июньского ответа и разошлись с реальностью.данные выводятся из ответаVova
search (direct)Набор тестов проходил, ничего не проверяя.закреплено «одна запчасть — одна карточка»Vova
Сервисы заказов и оплаты8 изменений 1 из них заметны покупателю или Google
ИзменениеЧто этоЧто сдвинулосьСделал
ps#709Документация всё ещё называла старую базу живой границей для заказов.документация исправленаVova
ps#708Строка владения называла коллегу, который ушёл.строка владельца исправленаVova
ps#707Ночная задача резервного копирования всё ещё была нацелена на удалённый кластер.путь резервного копирования удалёнVova
ps#705Руководство репозитория называло не тот секрет резервной копии, что перевернуло бы порядок удаления.имя секрета исправленоVova
ps#704Тридцать одна тестовая настройка подставляла подключение к базе, которой больше нет.убрана 31 подстановка переменныхVova
ps#703Два описания выкатки всё ещё утверждали привязку к базе, которой нет ни у одного из сервисов.заголовки исправленыVova
ps#702Драйвер старой базы и всё, что существовало только чтобы его обслуживать, удалены из сервиса оплаты.драйвер и зависимое удаленыVova
ps#700Сервис оплаты отвязан от старой базы — выключение флагов этого не сделало. Это уже живое: оно ушло в прод 26 августа, а здесь то же изменение приходит обычным путём.прод и dev отвязаны; уже в продеVova

Что живёт сейчас и чем пятница это заменит — точное, к чему откатываться

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

Витрина137e97ed2 → 13760cd0dСчитано с живого адреса, а не с самой свежей сборки — это не всегда одно и то же: деплой, который сейчас отвечает на crop.clintontractor.net, собран из 137e97ed2 на живой ветке. Vercel хранит предыдущую сборку, так что откат — это одна кнопка.
Поискcrop-search:678b7af2 → crop-search:2394e78bПоиск выкатывается подменой образа, а не слиянием, и обе стороны теперь лежат по одному и тому же пути реестра — ловушка с переименованным путём, из-за которой адрес отката на прошлой неделе был необычным, здесь не действует. Отдаёт search-api-00042-fim, весь трафик, ничего не закреплено.
Имя ревизии поиска для откатаsearch-api-00042-fimРевизия, на которую возвращать трафик. Она адресуема по имени, пока не удалена, поэтому безопасный откат вообще не трогает образы.
Сервисыd9915efe → b6482b8bСервисы заказов и оплаты. Обратите внимание: левая сторона на этой неделе уже дважды двигалась вне релизного поезда, 25 и 26 августа, ради выключения базы — оба случая записаны на странице от 26 августа. Пятница несёт уборку после них.
Сервисы, как они реально работаютcatalog-service-recycle-20260826-090026
payment-service-recycle-20260826-090026
Оба сервиса работают на ревизиях, созданных ночным перезапуском в 09:00, а не выкаткой. Именно этот перезапуск сдерживает известную проблему с памятью, пока её причина не найдена. Каждый закреплён на точном образе, а не на подвижной метке, — именно это делает их безопасными для отката.
База данныхбез измененийНи в работе витрины, ни в работе поиска на этой неделе нет миграций, и с релизом ни одна не выполняется. Работа с базой на этой неделе — это выключение, которое уже произошло и описано на своей странице.
Четыре переключателяне выставлены → не выставленыСамая важная строка для того, что меняет пятница. Ни одной из четырёх настроек, управляющих работой по индексации, на живом магазине сегодня нет, и выкатка их не создаёт. Откат их трогать тоже не требует.