Как да изчистите кеша на браузъра Safari на Mac: Всички методи обяснени
Изчистването на кеша на Safari премахва локално съхранените копия на уеб ресурси — изображения, скриптове, стилови таблици и API отговори — които Safari натрупва, за да ускори повторното зареждане на страници. Когато тези данни остареят или се повредят, те причиняват проблеми с визуализацията, цикли при влизане, остаряло съдържание на страниците и бавна производителност. Изчистването на кеша принуждава Safari да извлича нови данни от изходните сървъри, като незабавно решава повечето от тези проблеми.
Това ръководство обхваща всички налични методи за изчистване на кеша на Safari в macOS, включително прекия път от менюто Developer, пълното изтриване на данни чрез Preferences, клавишната комбинация и ръчното изтриване от файловата система — с технически контекст кога е подходящ всеки подход.
Какво кешира Safari и защо е важно
Safari поддържа няколко отделни слоя за съхранение на диска и разбирането им ви помага да изберете правилния метод за изчистване:
- Дисков кеш (
com.apple.Safari/WebKitCache): Необработени HTTP данни от отговори — HTML, CSS, JavaScript, изображения, шрифтове. Това е целта на командата „Empty Caches”. - Бисквитки (
Cookies/Cookies.binarycookies): Сесийни токени, постоянно състояние на влизане, идентификатори за проследяване. - LocalStorage / IndexedDB: Клиентско състояние на приложения, съхранявано от уеб приложения (напр. чернови в Gmail, съдържание на пазарска количка).
- Service Worker кеш: Програмируем кеш слой, използван от Progressive Web Apps (PWAs). Той е отделен от HTTP дисковия кеш и не се изчиства от командата „Empty Caches” в менюто Developer — критично разграничение, което повечето ръководства пропускат.
- DNS кеш: Управлява се на ниво операционна система, не директно от Safari.
Знанието кой слой причинява проблема ви определя кой метод да използвате.
Сравнение на методите за изчистване на кеша в Safari
| Метод | Изчиства дисков кеш | Изчиства бисквитки | Изчиства история | Изчиства LocalStorage | Изчиства Service Worker кеш | Изисква меню Developer |
|---|
| — | — | — | — | — | — | — |
|---|
| Develop > Empty Caches | Да | Не | Не | Не | Не | Да |
|---|
| Клавишна комбинация Option + Cmd + E | Да | Не | Не | Не | Не | Да |
|---|
| Safari > Clear History | Да | Да | Да | Да | Не | Не |
|---|
| Ръчно изтриване от файловата система | Да | Не | Не | Не | Не | Не |
|---|
| Safari > Settings > Privacy > Manage Website Data | Не | Да | Не | Да | Да | Не |
|---|
Използвайте тази таблица като матрица за вземане на решения преди да изберете метод. Ако отстранявате проблеми с PWA или сайт, използващ Service Workers, нито една от стандартните опции за изчистване на кеша няма да нулира напълно състоянието — трябва да използвате Manage Website Data или раздела Application в Web Inspector.
Метод 1: Изчистване на кеша чрез менюто Developer
Менюто Developer е най-бързият начин за изчистване на HTTP дисковия кеш на Safari, без да се засягат бисквитките, запазените пароли или историята на сърфиране. Това е правилният подход, когато дадена страница обслужва остарели ресурси, но сесията и състоянието на влизане трябва да бъдат запазени.
Стъпка 1: Активиране на менюто Developer
- Отворете Safari.
- Кликнете върху Safari в лентата с менюта, след което изберете Settings (macOS Ventura и по-нови) или Preferences (macOS Monterey и по-стари). Можете също да натиснете
Cmd+,. - Отидете в раздела Advanced.
- Поставете отметка в полето Show Develop menu in menu bar.
Менюто Develop вече ще се появи между Bookmarks и Window в лентата с менюта. Тази настройка се запазва след рестартиране — трябва да я активирате само веднъж.
Стъпка 2: Изчистване на кеша
- Кликнете върху Develop в лентата с менюта.
- Изберете Empty Caches.
Safari незабавно изчиства дисковия кеш. Не се появява диалогов прозорец за потвърждение и не е необходимо рестартиране. Операцията е мигновена независимо от размера на кеша.
Техническа бележка: В macOS кешът на Safari се съхранява на ~/Library/Caches/com.apple.Safari/WebKitCache/. Командата „Empty Caches” извиква директно API за инвалидиране на кеша на WebKit — тя не просто изтрива файлове, което означава, че обработва целостта на кеша правилно и избягва оставянето на осиротели записи в индекса.
Метод 2: Изчистване на кеша, историята и всички данни на уебсайтове
Използвайте този метод, когато имате нужда от цялостно нулиране — например при отстраняване на постоянни проблеми с влизане, разрешаване на цикли на пренасочване, свързани с бисквитки, или подготовка на браузър профил за работа, изискваща поверителност.
Стъпка 1: Достъп до Clear History
- Отворете Safari.
- Кликнете върху Safari в лентата с менюта.
- Изберете Clear History.
Стъпка 2: Избор на времеви диапазон и потвърждение
Ще се появи диалогов прозорец с падащо меню, предлагащо четири времеви диапазона:
- Last hour
- Today
- Today and yesterday
- All history
Изберете подходящия диапазон и кликнете върху Clear History.
Това единствено действие премахва историята на сърфиране, HTTP дисковия кеш, бисквитките и другите данни на уебсайтове за избрания период. То не премахва запазените пароли (съхранени в iCloud Keychain), данните за AutoFill или отворените раздели.
Граничен случай: Ако изберете „Last hour”, но повреден запис в кеша е бил записан преди два часа, той няма да бъде изчистен. При съмнение изберете „All history” за пълно нулиране.
Метод 3: Клавишна комбинация
След като менюто Developer е активирано, можете да изчистите кеша по всяко време, без да навигирате в менютата:
Натиснете Option + Command + E.
Това е функционално идентично с Develop > Empty Caches. Особено полезно е по време на активни сесии за отстраняване на грешки, когато трябва многократно да изчиствате кеша между презареждания на страницата. Комбинирайте го с Cmd + Shift + R (принудително презареждане), за да принудите Safari да извлече отново всички ресурси от сървъра веднага след изчистването.
Метод 4: Ръчно изтриване от файловата система
Ръчното изтриване ви дава директен достъп до директорията с кеша, което е полезно когато:
- Safari не отговаря или не може да бъде стартиран.
- Искате да прегледате съдържанието на кеша преди изтриването.
- Пишете скрипт за автоматизация или извършвате системна поддръжка за множество потребителски акаунти.
Стъпки
- Затворете напълно Safari. Използвайте
Cmd+Qили потвърдете чрез Activity Monitor, че няма работещи процеси на Safari. Изтриването на кеш файлове, докато Safari е активен, може да причини повреда на индекса.
- Отворете Finder. В лентата с менюта кликнете върху Go > Go to Folder (или натиснете
Cmd+Shift+G).
- В полето за въвеждане напишете следния път и натиснете Return:
~/Library/Caches/com.apple.Safari- В тази директория ще намерите поддиректории, включително
WebKitCacheи евентуалноfsCachedData. Изберете цялото съдържание и го преместете в Кошчето.
- Изпразнете Кошчето.
Важно: Не изтривайте самата директория 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: Премахване на конкретни данни на уебсайтове (бисквитки, LocalStorage, Service Workers)
Този метод често се пренебрегва, но е от съществено значение за изчистването на Service Worker кешове и LocalStorage за конкретни сайтове — двата слоя, които стандартните методи за изчистване на кеша напълно пропускат.
- Отворете Safari Settings / Preferences (
Cmd+,). - Отидете в раздела Privacy.
- Кликнете върху Manage Website Data.
- Използвайте полето за търсене, за да намерите конкретен домейн, или кликнете върху Remove All, за да изтриете всички съхранени данни на уебсайтове.
- Кликнете върху Done.
Това е единственият вграден метод в потребителския интерфейс на Safari, който премахва регистрациите на Service Worker и свързаните с тях кешове. Ако Progressive Web App се държи неправилно след актуализация, това е правилното решение.
Как изчистването на кеша е свързано с конфигурацията на уеб сървъра и хостинга
Поведението на кеша е уравнение с две страни. Дори след изчистването на локалния кеш на Safari, уеб сървърът може да инструктира браузъра незабавно да кешира отново съдържанието чрез заглавките Cache-Control и Expires. Ако управлявате уебсайт и потребителите ви съобщават за остаряло съдържание, решението е от страна на сървъра — по-конкретно, коригиране на директивите за контрол на кеша в конфигурацията на уеб сървъра или настройките на 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";Ако работите с Dedicated сървър и използвате контролен панел като cPanel, тези заглавки могат да бъдат конфигурирани чрез .htaccess или директно в конфигурацията на виртуалния хост на Apache. Съчетаването на правилни заглавки за кеш от страна на сървъра с изчистване на кеша от страна на клиента е правилният подход за цялостно разрешаване на постоянни проблеми с кеширането.
За сайтове, защитени с HTTPS — което влияе на начина, по който браузърите обработват кешираните ресурси, особено при заглавки Strict-Transport-Security — уверете се, че вашите SSL сертификати са валидни и правилно конфигурирани. Изтекъл или неправилно конфигуриран SSL сертификат може да накара Safari да откаже кешираните ресурси и да показва грешки при свързване, които наподобяват повреда на кеша.
Ако управлявате множество домейни или поддомейни, всеки с обхват на собствен кеш, поддържането на точна Регистрация на домейни и DNS записи гарантира, че стратегиите за обновяване на кеша (като версионирани URL адреси на ресурси) се разрешават правилно във всички среди.
Отстраняване на проблеми: Когато изчистването на кеша не решава проблема
Ако изчистването на кеша не разрешава проблема ви, преминете през този диагностичен контролен списък:
- Все още виждате старо съдържание? Сървърът може да връща отговор
304 Not Modifiedвъз основа на заглавкитеETagилиLast-Modified. Използвайте Web Inspector на Safari (Develop > Show Web Inspector > раздел Network) и проверете кодовете на статуса на отговорите. Код304означава, че сървърът е потвърдил, че кешираната версия е актуална — проблемът е на сървъра, не в браузъра. - Цикълът при влизане продължава след изчистване на кеша? Вероятно трябва да изчистите и бисквитките. Използвайте Метод 2 или Метод 5.
- PWA не се актуализира? Service Worker обслужва кешираните ресурси. Използвайте Метод 5 (Manage Website Data) или отворете Web Inspector > Application > Service Workers и кликнете върху „Unregister”.
- Папката с кеша е празна, но производителността все още е лоша? Проблемът може да е мрежова латентност, време за разрешаване на DNS или време за отговор на сървъра — не локалният кеш. Използвайте раздела Network в Web Inspector, за да идентифицирате действителния източник на латентност.
~/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, идентифицирайте точния проблем, за да изберете правилния метод:
- Използвайте Develop > Empty Caches (
Option+Cmd+E) за остарели визуални ресурси, без да губите състоянието на сесията. - Използвайте Safari > Clear History > All History за пълно нулиране на браузъра, включително бисквитки и история.
- Използвайте Privacy > Manage Website Data за 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, който е напълно отделен от кеша на браузъра, бисквитките и историята на сърфиране. Нито един от описаните тук методи за изчистване на кеша не засяга запазените ви идентификационни данни.
Защо кешът на Safari се запълва бързо отново след изчистване?
Safari кешира отново ресурсите при всяко посещение на страница според директивите Cache-Control на сървъра. Интензивното сърфиране, сайтовете с много медийно съдържание и уеб приложенията с агресивни политики за кеширане ще запълнят отново кеша в рамките на часове. Това е нормално поведение — кешът функционира така, както е проектиран.
Изчиства ли „Empty Caches” в менюто Develop Service Worker кешовете?
Не. Командата „Empty Caches” в менюто Develop е насочена само към HTTP дисковия кеш (кешът на ресурсите на WebKit). Service Worker кешовете се управляват отделно от Cache Storage API на браузъра. За да ги изчистите, използвайте Safari Settings > Privacy > Manage Website Data или използвайте панела Application в Web Inspector, за да отмените регистрацията на конкретни Service Workers.
Как да изчистя кеша на Safari в macOS Sonoma, ако стандартният път на кеша липсва?
В macOS Sonoma и Safari 17+, кешът може да се съхранява в контейнера на приложението на ~/Library/Containers/com.apple.Safari/Data/Library/Caches/. Навигирайте там с помощта на диалога Go to Folder на Finder или терминала и изтрийте съдържанието на поддиректорията WebKitCache при напълно затворен Safari.
Мога ли да автоматизирам изчистването на кеша на Safari по разписание с помощта на инструменти на macOS?
Да. Можете да използвате launchd, за да планирате изпълнение на шел скрипт, който изпълнява rm -rf ~/Library/Caches/com.apple.Safari/WebKitCache/ (или пътя на контейнера за Sonoma) на определени интервали. Създайте файл со списък на свойства в ~/Library/LaunchAgents/ с ключ StartCalendarInterval. Уверете се, че заданието се изпълнява само когато Safari не е активен, като добавите проверка pgrep към скрипта, както е показано в раздела за ръчно изтриване.
