У меня есть сайт, где каждый раз при новом билде у меня делается index-*hash*.css
Гуглбот получив однаждый 200 по какому-то файлу, возвращается и перепроверяет его.
Моя проблема в том что если я сбилдил новую версию, у меня новая .cssка и соответственно бот получает 404 на нее, я бы хотел этого избежать.
Мои идеи:
1. Складировать все файлы и хранить их по 3месяца
2. Генерить с каждым билдом два css’a один со статичным названием и редиректить на него бота. Типа он приходит -> мы на уровне nginx видим название и редиректим на скажем просто index.css, что бы было не 404 в ответе
первый вариант мне вероятно сейчас будет сложно реализовать, насколько плох второй вариант и какие подводные камни?
Я бы рекомендовала вернуться к предыдущей задаче, к той, которая привела вас к идее переименовывать файл css.
Потому что нынешняя отлично решается отменой этого решения.
А если дело в кэше (на это намекает *hash*.css), то тем более.
Зато упростите и предыдущую и избавитесь от текущей.
Refguser, название файлов в сборщике специально так создаются (contenthash - по содержимому файла), чтобы принудительно сбросить кэш у пользователей на те файлы, которые изменились.
В сборщиках фронта, webpack, vite итп, они также могут собирать реакт, но всё зависит от конфига.
А ведь для сроса кеша достаточно какой-нить параметр в урл дописывать.
Недостаточно, некоторые ("старые") прокси-серверы или кэш-системы могут игнорировать query string и продолжать отдавать старую версию файла. Долговременное кэширование (Cache-Control: max-age=31536000) тяжелее настраивать, особенно когда оно выполняется сторонним сервером. Ну и банальная версионность, когда у вас десятки js файлов, то не всегда можно запомнить, какому из файлов нужно увеличить v=146+1...
Refguser, ладно, видимо я совершил ошибку, когда пытался искать это в актуальной документации самого гугла, а не в статьях, которые вышли больше 10 лет назад.
Кроме того достаточно просто немного знать как ранжируют ПС и на что обращают внимание, за что наказывают, чтобы просто логически до этого дойти. (самое простое - скрытый текст. А про юзабилити - это наверное уже будет сложно :))