15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать
21.10.2024

Как очистить кэш браузера Safari на Mac: все методы объяснены

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

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

Что кэширует Safari и почему это важно

Safari поддерживает несколько отдельных уровней хранилища на диске, и понимание их поможет выбрать правильный метод очистки:

  • Дисковый кэш (com.apple.Safari/WebKitCache): необработанные данные HTTP-ответов — HTML, CSS, JavaScript, изображения, шрифты. Именно на это нацелена команда «Очистить кэш».
  • Cookies (Cookies/Cookies.binarycookies): токены сессий, постоянное состояние входа, идентификаторы отслеживания.
  • LocalStorage / IndexedDB: состояние клиентских приложений, сохранённое веб-приложениями (например, черновики Gmail, содержимое корзины покупок).
  • Кэш Service Worker: программируемый уровень кэша, используемый прогрессивными веб-приложениями (PWA). Он отделён от дискового кэша HTTP и не очищается командой «Очистить кэш» в меню разработчика — это важное различие, которое упускают большинство руководств.
  • DNS-кэш: управляется на уровне ОС, а не непосредственно Safari.

Знание того, какой уровень вызывает проблему, определяет, какой метод использовать.

Сравнение методов очистки кэша Safari

МетодОчищает дисковый кэшОчищает CookiesОчищает историюОчищает LocalStorageОчищает кэш Service WorkerТребует меню разработчика
Разработка > Очистить кэшДаНетНетНетНетДа
Сочетание клавиш Option + Cmd + EДаНетНетНетНетДа
Safari > Очистить историюДаДаДаДаНетНет
Ручное удаление файловДаНетНетНетНетНет
Safari > Настройки > Конфиденциальность > Управление данными сайтовНетДаНетДаДаНет

Используйте эту таблицу как матрицу принятия решений перед выбором метода. Если вы отлаживаете PWA или сайт, использующий Service Workers, ни один из стандартных вариантов очистки кэша не сбросит состояние полностью — необходимо использовать Управление данными сайтов или вкладку «Приложение» в Веб-инспекторе.

Метод 1: Очистка кэша через меню разработчика

Меню разработчика — самый быстрый способ очистить дисковый кэш HTTP в Safari, не затрагивая cookies, сохранённые пароли или историю браузера. Это правильный подход, когда страница отдаёт устаревшие ресурсы, но сессия и состояние входа должны быть сохранены.

Шаг 1: Включение меню разработчика

  1. Откройте Safari.
  2. Нажмите Safari в строке меню, затем выберите Настройки (macOS Ventura и новее) или Параметры (macOS Monterey и старше). Также можно нажать Cmd + ,.
  3. Перейдите на вкладку Дополнения.
  4. Установите флажок Показывать меню «Разработка» в строке меню.

Меню Разработка теперь будет отображаться между «Закладками» и «Окном» в строке меню. Этот параметр сохраняется после перезагрузки — его нужно включить только один раз.

Шаг 2: Очистка кэша

  1. Нажмите Разработка в строке меню.
  2. Выберите Очистить кэш.

Safari немедленно очищает дисковый кэш. Диалог подтверждения не появляется, перезапуск не требуется. Операция выполняется мгновенно независимо от размера кэша.

Техническое примечание: В macOS кэш Safari хранится по адресу ~/Library/Caches/com.apple.Safari/WebKitCache/. Команда «Очистить кэш» напрямую вызывает API инвалидации кэша WebKit — она не просто удаляет файлы, что обеспечивает корректную обработку целостности кэша и предотвращает появление осиротевших записей индекса.

Метод 2: Очистка кэша, истории и всех данных сайтов

Используйте этот метод, когда необходима комплексная очистка — например, при устранении постоянных проблем со входом в систему, циклов перенаправления, связанных с cookies, или при подготовке профиля браузера для работы с конфиденциальными данными.

Шаг 1: Открытие функции очистки истории

  1. Откройте Safari.
  2. Нажмите Safari в строке меню.
  3. Выберите Очистить историю.

Шаг 2: Выбор временного диапазона и подтверждение

Появится диалоговое окно с выпадающим меню, предлагающим четыре временных диапазона:

  • Последний час
  • Сегодня
  • Сегодня и вчера
  • Всю историю

Выберите подходящий диапазон и нажмите Очистить историю.

Это единственное действие удаляет историю браузера, дисковый кэш HTTP, cookies и другие данные сайтов за выбранный период. Оно не удаляет сохранённые пароли (хранящиеся в iCloud Keychain), данные автозаполнения или открытые вкладки.

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

Метод 3: Сочетание клавиш

После включения меню разработчика вы можете очистить кэш в любое время, не открывая никаких меню:

Нажмите Option + Command + E.

Это функционально идентично команде «Разработка» > «Очистить кэш». Особенно удобно во время активных сеансов отладки, когда нужно многократно очищать кэш между перезагрузками страниц. Сочетайте с Cmd + Shift + R (жёсткая перезагрузка), чтобы заставить Safari немедленно повторно загрузить все ресурсы с сервера после очистки.

Метод 4: Ручное удаление файлов

Ручное удаление даёт прямой доступ к каталогу кэша, что полезно в следующих случаях:

  • Safari не отвечает или не запускается.
  • Вы хотите просмотреть содержимое кэша перед удалением.
  • Вы пишете скрипт автоматизации или выполняете обслуживание системы для нескольких учётных записей пользователей.

Шаги

  1. Полностью закройте Safari. Используйте Cmd + Q или убедитесь через Мониторинг активности, что процессы Safari не запущены. Удаление файлов кэша при активном Safari может привести к повреждению индекса.
  1. Откройте Finder. В строке меню нажмите Переход > Переход к папке (или нажмите Cmd + Shift + G).
  1. В поле ввода введите следующий путь и нажмите Return:
~/Library/Caches/com.apple.Safari
  1. В этом каталоге вы найдёте подкаталоги, включая WebKitCache и, возможно, fsCachedData. Выделите всё содержимое и переместите в Корзину.
  1. Очистите Корзину.

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

Для автоматизации эквивалентная команда оболочки выглядит так:

rm -rf ~/Library/Caches/com.apple.Safari/WebKitCache/

Выполняйте её только при незапущенном Safari. Перед выполнением можно убедиться, что Safari закрыт:

pgrep -x Safari || rm -rf ~/Library/Caches/com.apple.Safari/WebKitCache/

Метод 5: Удаление данных конкретных сайтов (Cookies, LocalStorage, Service Workers)

Этот метод часто упускают из виду, но он необходим для очистки кэшей Service Worker и LocalStorage для отдельных сайтов — двух уровней, которые стандартные методы очистки кэша полностью пропускают.

  1. Откройте Настройки / Параметры Safari (Cmd + ,).
  2. Перейдите на вкладку Конфиденциальность.
  3. Нажмите Управление данными сайтов.
  4. Используйте поле поиска для поиска конкретного домена или нажмите Удалить все, чтобы стереть все сохранённые данные сайтов.
  5. Нажмите Готово.

Это единственный встроенный метод пользовательского интерфейса Safari, который удаляет регистрации Service Worker и связанные с ними кэши. Если прогрессивное веб-приложение работает некорректно после обновления, это правильное решение.

Связь очистки кэша с конфигурацией веб-сервера и хостинга

Поведение кэша — это уравнение с двумя переменными. Даже после очистки локального кэша Safari веб-сервер может дать браузеру команду немедленно повторно кэшировать контент с помощью заголовков Cache-Control и Expires. Если вы управляете сайтом и пользователи сообщают об устаревшем контенте, исправление находится на стороне сервера — а именно в настройке директив cache-control в конфигурации веб-сервера или параметрах CDN.

В среде VPS Хостинга под управлением Nginx, например, вы управляете поведением кэширования на уровне заголовков ответа:

location ~* .(css|js|png|jpg|woff2)$ {
    expires 30d;
    add_header Cache-Control "public, immutable";
}

Для сред разработки и тестирования, где браузеры никогда не должны кэшировать ответы, используйте:

add_header Cache-Control "no-store, no-cache, must-revalidate";

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

Для сайтов, защищённых HTTPS — что влияет на то, как браузеры обрабатывают кэшированные ресурсы, особенно с заголовками Strict-Transport-Security — убедитесь, что ваши SSL-сертификаты действительны и правильно настроены. Просроченный или неправильно настроенный SSL-сертификат может привести к тому, что Safari откажется от кэшированных ресурсов и отобразит ошибки подключения, имитирующие повреждение кэша.

Если вы управляете несколькими доменами или поддоменами, каждый из которых имеет собственную область кэширования, точность регистрации доменов и DNS-записей гарантирует, что стратегии сброса кэша (например, URL-адреса ресурсов с версионированием) корректно разрешаются во всех средах.

Устранение неполадок: когда очистка кэша не решает проблему

Если очистка кэша не устраняет проблему, воспользуйтесь этим диагностическим контрольным списком:

  • По-прежнему отображается старый контент? Сервер может возвращать ответ 304 Not Modified на основе заголовков ETag или Last-Modified. Используйте Веб-инспектор Safari (Разработка > Показать Веб-инспектор > вкладка «Сеть») и проверьте коды статуса ответов. Код 304 означает, что сервер подтвердил актуальность кэшированной версии — проблема на стороне сервера, а не браузера.
  • Цикл входа сохраняется после очистки кэша? Вероятно, нужно также очистить cookies. Используйте метод 2 или метод 5.
  • PWA не обновляется? Service Worker отдаёт кэшированные ресурсы. Используйте метод 5 («Управление данными сайтов») или откройте Веб-инспектор > Приложение > Service Workers и нажмите «Отменить регистрацию».
  • Папка кэша пуста, но производительность по-прежнему низкая? Узким местом может быть сетевая задержка, время разрешения DNS или время ответа сервера — а не локальный кэш. Используйте вкладку «Сеть» в Веб-инспекторе для определения реального источника задержки.
  • ~/Library/Caches/com.apple.Safari не существует? В macOS Sonoma и новее с Safari 17+ некоторые пути кэша были реорганизованы в ~/Library/Containers/com.apple.Safari/Data/Library/Caches/. Если стандартный путь пуст, проверьте этот путь контейнера.

Для macOS Sonoma и новее правильный путь для ручной очистки:

~/Library/Containers/com.apple.Safari/Data/Library/Caches/

Технический контрольный список ключевых выводов

Перед очисткой кэша Safari определите точную проблему, чтобы выбрать правильный метод:

  • Используйте Разработка > Очистить кэш (Option + Cmd + E) для устаревших визуальных ресурсов без потери состояния сессии.
  • Используйте Safari > Очистить историю > Всю историю для полного сброса браузера, включая cookies и историю.
  • Используйте Конфиденциальность > Управление данными сайтов для кэша Service Worker, IndexedDB и LocalStorage — особенно при проблемах с PWA.
  • Используйте ручное удаление файлов только при полностью закрытом Safari; удаляйте содержимое WebKitCache, а не родительский каталог.
  • В macOS Sonoma и новее проверьте ~/Library/Containers/com.apple.Safari/Data/Library/Caches/, если стандартный путь кэша кажется пустым.
  • После очистки клиентского кэша убедитесь, что заголовки Cache-Control на стороне сервера правильно настроены для предотвращения немедленного повторного кэширования устаревшего контента.
  • Если вы управляете веб-сервером, используйте версионированные имена файлов ресурсов (например, style.v2.css) как стратегию сброса кэша, работающую независимо от настроек кэша на стороне клиента.

Часто задаваемые вопросы

Удаляет ли очистка кэша Safari сохранённые пароли?

Нет. Сохранённые пароли хранятся в iCloud Keychain, который полностью отделён от кэша браузера, cookies и истории браузера. Ни один из описанных здесь методов очистки кэша не затрагивает сохранённые учётные данные.

Почему кэш Safari быстро заполняется снова после очистки?

Safari повторно кэширует ресурсы при каждом посещении страницы в соответствии с директивами Cache-Control сервера. Активный браузинг, сайты с большим количеством медиаконтента и веб-приложения с агрессивными политиками кэширования заполнят кэш в течение нескольких часов. Это нормальное поведение — кэш функционирует так, как задумано.

Очищает ли команда «Очистить кэш» в меню «Разработка» кэши Service Worker?

Нет. Команда «Очистить кэш» в меню «Разработка» нацелена только на дисковый кэш HTTP (кэш ресурсов WebKit). Кэши Service Worker управляются отдельно через Cache Storage API браузера. Для их очистки используйте Safari «Настройки» > «Конфиденциальность» > «Управление данными сайтов» или панель «Приложение» в Веб-инспекторе для отмены регистрации конкретных Service Workers.

Как очистить кэш Safari в macOS Sonoma, если стандартный путь кэша отсутствует?

В macOS Sonoma и Safari 17+ кэш может храниться в контейнере приложения по адресу ~/Library/Containers/com.apple.Safari/Data/Library/Caches/. Перейдите туда с помощью диалога «Переход к папке» в Finder или терминала и удалите содержимое подкаталога WebKitCache при полностью закрытом Safari.

Можно ли автоматизировать очистку кэша Safari по расписанию с помощью инструментов macOS?

Да. Вы можете использовать launchd для планирования выполнения скрипта оболочки, который запускает rm -rf ~/Library/Caches/com.apple.Safari/WebKitCache/ (или путь контейнера Sonoma) через заданные интервалы. Создайте файл списка свойств в ~/Library/LaunchAgents/ с ключом StartCalendarInterval. Убедитесь, что задание выполняется только при неактивном Safari, добавив в скрипт проверку pgrep, как показано в разделе ручного удаления выше.

15%

Сэкономьте 15% на всех хостинговых услугах

Проверьте свои навыки и получите скидку на любой тарифный план

Используйте код:

Skills
Начать