В редакторе сайта (CMS) title — название страницы во вкладке браузера — уже исправлен, но посетитель получает прежний. Повторное сохранение текста может быть бесполезно: старый ответ находится в кеше CDN, приложения или браузера. Сравните HTML сервера сайта, публичный ответ CDN и страницу в браузере, чтобы найти оставшуюся копию.
Найдите, на каком этапе остался старый текст
Кеш хранит ответ для повторного использования. Директива no-cache разрешает хранить его, но требует проверки актуальности перед использованием. Официальная документация.
Запишите новый title из редактора и фактический старый title публичной страницы. Затем сравните сформированный сервером HTML и ответ через обычный публичный маршрут, используя только разрешённый диагностический доступ. Если ответ исходного сервера уже новый, а CDN старый, повторное сохранение записи не решает причину. Если оба старые, смотрите генератор и его источник данных. Если HTML новый, а document.title старый, проверьте клиентский код. Так вы найдёте место правки: генератор HTML, кеш CDN или скрипт, меняющий заголовок.
Сравните данные и ответы
| Что сравниваем | Что там видно | С чем сопоставить | Что должно совпасть |
|---|---|---|---|
| Поле CMS | Новый текст сохранён | Проверить генератор | Не только редактор |
| HTML сервера сайта | Вычисленная страница | Сравнить с CMS | Новые значения |
| CDN ответ | Публичная копия | Проверить актуальность | Новое содержимое HTML |
| 304 | Повторное использование | Сверить ETag или дату изменения | Известно тело клиента |
Добавьте гостевой и авторизованный режим, обычный URL и предусмотренный диагностический запрос. Администратор может обходить кеш, поэтому его успешный просмотр не подтверждает внешний ответ. Параметр после ? может создать отдельную запись кеша. Свежая страница со случайным параметром ещё не подтверждает обновление обычного URL. Если CMS или CDN меняют ответ в зависимости от cookie либо заголовков Vary, запишите эти различия рядом с результатом. Для каждого режима сохраняйте тело, а не только отметку HIT или MISS. Одинаковый заголовок кеша не гарантирует одинаковое содержание двух ответов.
Получите HTML и заголовки обычного URL
Сохраните ETag, Last-Modified, Cache-Control, Age и доступные заголовки инфраструктуры вместе с извлечёнными метатегами. Эти признаки помогают проверке, но их отсутствие не доказывает отсутствие кеша. Посмотрите, какой компонент устанавливает срок актуальности HTML и какое изменение CMS запускает обновление кеша. Для title и description проверяйте исходный документ, а не API-запрос, который возвращает новый текст отдельно. Сравните канонический URL запроса: технический вариант со слешем или хостом может иметь иной сохранённый ответ.
Ответ публичного URL сохранит команда терминала; при необходимости передайте её разработчику.
curl -sS -D headers.txt -o response.html 'https://example.com/service/'Сравните возраст ответа и доступные заголовки кеша из headers.txt с canonical и robots в response.html. Затем повторите запрос после точечной очистки HTML-кеша. Новый документ должен содержать актуальные теги без обходного параметра в URL. Замените example.com своим доменом; этот GET не изменяет настройки сайта. Справка curl.
Ищите новый title/description в response.html. Если сервер за CDN уже отдаёт новое значение, а публичный URL старое, обновите кеш CDN этой страницы. Если HTML новый, а document.title старый, проверьте скрипт, который меняет заголовок.
Проверьте обновление description
Измените description одной услуги на тестовой копии, сохранив прежнее значение. Получите ответ исходного сервера и публичный ответ по тому же URL. Если новый текст виден только на исходном сервере, очистите кеш HTML этой страницы штатной командой или кнопкой CDN и повторите обычный GET. Затем сохраните новую правку записи и проверьте автоматическое обновление: ручная очистка не должна требоваться каждый раз. Опыт не доказывает состояние поискового индекса; он проверяет цепочку публикации. Для реального сайта используйте безопасное редакционное изменение или уже выполненную правку, не подменяя публичный текст случайным диагностическим маркером.
Исправьте обновление нужных копий
Проверьте, обновляет ли CMS кеш самой страницы, связанного списка и языковых версий. Очистка только одной копии может оставить старый title по URL со слешем или у другого языка. Добавьте необходимые адреса в обработчик обновления CMS или CDN. Не отключайте весь кеш, если задача касается актуальности одного представления. После правки проверьте холодный и повторный запрос. Срок хранения HTML задавайте с учётом того, как часто редактор меняет эту страницу. Статические bundle и изображения имеют другие требования; не распространяйте на них новое правило автоматически только потому, что они обслуживаются тем же CDN.
Почему 304 не содержит нового HTML
При условном запросе клиент может отправить If-None-Match или If-Modified-Since и получить 304. Ответ 304 не содержит нового HTML: браузер использует свою сохранённую страницу. Проверьте, какой текст в этой копии и изменился ли ETag или Last-Modified после редактирования. Если сервер ошибочно возвращает прежний ETag, браузер может продолжать показывать старый текст. no-cache разрешает хранение с последующей проверкой, а no-store запрещает сохранять ответ. Не выбирайте директиву по бытовому смыслу названия. Проверьте обычный полный ответ и предусмотренную валидацию, сохраняя оба наблюдения отдельно.
Сохраните запись ещё раз и откройте как гость
Обычный URL без добавленного query получает новые метатеги и при первом, и при повторном открытии. Изменение CMS штатно обновляет кеш; ручная очистка не нужна после каждой правки. Старый сниппет поиска проверяется по дате обхода отдельно.
Читайте также: Стратегии кэширования для веб-приложений: от браузера до CDN и Как контролировать изменения Title, meta robots и canonical. Проверки сайта доступны на странице технического аудита reChecker.