Наръчник за настройка на SuperCache за WordPress

Това е наръчник за специфични настройки на SuperCache, при активиране за WordPress сайт. Активирането на SuperCache е еднакво за всички видове сайтове, независимо от използваната от тях система. Настройките му обаче може да се различават, за всеки един отделен сайт. Различните настройки се налагат основно заради наличието на специфични за сайта HTTP бисквитки и/или HTTP хедъри.

В разделите на тази статия са описани особеностите, които трябва да се вземат предвид при активирането и след това настройката на SuperCache. В края на всеки раздел е описано какво трябва да проверите, за да знаете дали има нужда да извършвате някакви промени на стандартно зададените настройки на SuperCache.

При настройката на SuperCache ще е необходимо да проверявате статуса на кеширането, за да установите дали се подава кеширано съдържание или не. 💡Проверка, статус и особености на кеширането в SuperCache

Бележка: Активирането на SuperCache в cPanel можете да направите и веднага, но трябва да сте сигурни, че в сайта няма плъгин или тема със специфична функционалност, която използва HTTP бисквитки. Пример за такъв плъгин е WooCommerce и функционалността му „пазарска количка“, която използва HTTP бисквитки и не бива да бъде кеширана.

Настройки по подразбиране на SuperCache връзка към този раздел

След активиране на SuperCache в cPanel, кеширането на сайта работи по следния начин:

  1. Автоматичното изчистване на кешираната информация в SuperCache се извършва на всеки 15 минути. Тази настройка може да се промени през Разширени настройки на SuperCache, в опцията „Автоматично изчистване на кеша„.
  2. HTTP Cookies (HTTP бисквитки): На всички посетители на сайта ще се предоставя кеширано съдържание, независимо от това дали подават HTTP бисквитки към сайта или не. Това поведение на SuperCache е зададено в опциите за напреднали, в раздел „Видове кеширане при налични Cookies„, с опцията „Кеширай всичко„.
  3. HTTP Headers (HTTP хедъри): По подразбиране SuperCache се съобразява с HTTP хедърите Expires, Cache-Control, Set-Cookies и Vary, налични в отговора от сайта. Можете да промените това поведение на SuperCache от опциите за напреднали, в разделите „Изключи обработката на сървърни хедъри“ и „Игнорирани Vary хедъри„.
  4. В SuperCache има автоматично добавени URI адреси, които са защитени от кеширане, като wp-admin, wp-login.php и други. Промяна на защитата може да се извърши през опциите за напреднали, в раздел „Автоматично добавени URI адреси, които не се кешират„.

Защитени от кеширане функционалности в WordPress връзка към този раздел

Административен панел

Една определена функционалност, системна част от WordPress, не бива да се кешира от SuperCache – административния достъп и панел на системата.

WordPress разпознава и следи логнатите потребители в системата, като им изпраща HTTP бисквитка с име: wordpress_logged_in. Също така административният достъп се осъществява на точно определен адрес от сайта: /wp-admin (wp-login.php).

Важно: Бисквитката за логнат потребител и адресите на административния панел на WordPress са защитени автоматично от кеширане в SuperCache.

Статии/страници защитени с парола

Защитените статии с парола също са изключени от кеширане в SuperCache. Системната бисквитка, която WordPress ползва след идентифициране wp-postpass_, също е защитена автоматично от кеширане.

Какво трябва да направите

  1. Основните системни функционалности на WordPress „администрация“ и „статии, защитени с парола“ са автоматично защитени от кеширане. Допълнителна настройка на SuperCache, свързана с тези две функционалности, не е необходима.
  2. Ако сте активирали коментари към статиите, чрез системата за коментари на WordPress, може да защитите от кеширане бисквитката comment_author_. В опциите за напреднали в SuperCache в раздел „Видове кеширане при налични Cookies“ изберете от падащото меню „Кеширай всичко без определени клиентски Cookies„. След това въведете бисквитката comment_author_ в полето „Не кеширай при налично Cookie„.

WordPress плъгини и теми връзка към този раздел

Стандартно, освен системните бисквитки wordpress_logged_in, wp-postpass_ и comment_author_, WordPress не използва други бисквитки.

Важно: Ако сайтът подава други HTTP бисквитки, различни от системните, те със сигурност идват от допълнително инсталиран плъгин или тема в WordPress.

Какво трябва да направите (плъгини и теми)

  1. Проверете какви точно бисквитки се задават от сайта. При проверката разгледайте максимално повече страници / функционалности от сайта.
    💡Как мога да видя бисквитките (cookies), които получавам от даден сайт?
  2. И ако има различни бисквитки, от посочените системни на WordPress, проверете кой плъгин или тема ги задава.
  3. Ще трябва да прецените дали различните бисквитки е необходимо да се изключат от кеширането. Например ако бисквитката се ползва за специфична функционалност, която задава уникалност на съдържанието, за всеки един посетител, тогава тя трябва да се изключи от кеширането. Пример за такава бисквитка е тази на плъгина WooCommerce, която се задава при добавяне на продукти в пазарската количка.
    💡Характеристики на HTTP бисквитката (HTTP cookie)
    💡Сесийни (временни) и постоянни HTTP бисквитки (HTTP cookies)
  4. Когато искате определени бисквитки да не се кешират, след като SuperCache е активиран, в опциите за напреднали, в раздел „Видове кеширане при налични Cookies“ изберете от падащото меню „Кеширай всичко без определени клиентски Cookies„. След това въведете една по една бисквитките в полетата „Не кеширай при налично Cookie„.

Бележка: След инсталиране или деактивиране на плъгин в WordPress, необходимо е да се извършва проверка дали кеширането функционира коректно. Например възможно е ново инсталиран плъгин или тема, да променят подаваните HTTP хедъри, засягащи кеширането. Също така може да задават нови HTTP бисквитки, които трябва да се вземат предвид и да се направи допълнителна настройка в SuperCache.

WooCommerce връзка към този раздел

Стандартно WooCommerce е системно настроен подходящо, така че да функционира коректно при ползване на системи за кеширане.

Възможно е обаче да има инсталирани други плъгини или теми в WordPress, които да оказват влияние на коректното поведение на магазина, при наличието на кешираща система. Поради това, в SuperCache може да се извършат няколко допълнителни настройки.

Какво трябва да направите

  1. Изключване на определени адреси от магазина от кеширане
    Защитете чувствителните зони (адреси) на магазина от кеширане. Това са адресите на „количката„, страницата за „разплащане“ и страницата за клиентския „акаунт„. По подразбиране адресите на тези зони са: /cart, /checkout, /my-account, но при всеки магазин те може да са променени/различни.
    В Разширени настройки на SuperCache, в опцията „URL адреси, които да не се кешират„, добавете адресите на тези зони, така както са зададени във вашия магазин.
  2. Изключване на определени бисквитки от магазина от кеширане
    Защитете от кеширане чувствителните бисквитки на магазина.
    В Опциите за напреднали за Видове кеширане при налични Cookies, изберете „Кеширай всичко без определени Cookies„.
    В полетата на „Не кеширай при налично Cookie„, въведете една по една следните бисквитки: woocommerce_cart_hash и woocommerce_items_in_cart.
  3. В случай че ползвате джаджата на WooCommerce „Recently viewed products„, която се вижда на всяка страница от магазина, възможно е да възникнат случаи, при които даден посетител да вижда продуктите, прегледани от друг потребител. Единият вариант е да изключите бисквитката woocommerce_recently_viewed от кеширане, което обаче ще намали или изобщо премахне ускоряването на сайта. Другият вариант е, в случай че е възможно, джаджата „Recently viewed products“ да се деактивира от магазина.

W3 Total Cache връзка към този раздел

Този плъгин предлага няколко типа кеширане на WordPress сайта. Всички типове кеширане в този плъгин може да се активират и използват съвместно с кеширането от SuperCache.

Бележка: В случай че забележите забавяне в административния панел на WordPress, деактивирайте опциите за кеширане Database Cache и Object Cache.

1) Какво трябва да направите (General Settings -> Reverse Proxy)

  1. URL адрес за интегриране с външни системи
    Добавете в настройките на W3TC SuperCache адреса (IP:Port) за автоматизирано изчистване на кешираното съдържание чрез външна система.
    Този адрес можете да видите и копирате от началната страница на SuperCache в cPanel. Копирайте само IP адреса заедно с порта, без протокола в началото (http://).
  2. Настройка за автоматизирано изчистване на кешираната информация
    В настройките на плъгина Performance -> General Settings -> активирайте Reverse Proxy caching via varnish (1) и поставете адреса (IP:Port) в полето „Varnish servers:“ (2).
  3. След като запишете настройките, при всяка следваща промяна в съдържанието на сайта, като редактиране или публикуване, кешираната информация от SuperCache ще се изчисти.
    По този начин ще виждате извършените промени в сайта веднага.
    В случай че сте активирали и някой от типовете кеширане в W3TC, може да е необходимо допълнително да изчистите кешираната информация и от плъгина.

Този плъгин може да контролира подаваните HTTP хедъри (Cache-Control, Expires, Last-Modified, ETag), свързани с кеширането на ресурсите на сайта. Настройките се намират в раздел Browser Cache. След първоначално активиране на плъгина, всички настройки в Browser Cache са зададени по подразбиране и не е необходимо да се променят допълнително. За всеки случай обаче, може да проверите какви хедъри се подават от сайта. Възможно е да има инсталиран плъгин/тема, които по някакъв начин променят HTTP кеш хедърите за сайта.

2) Допълнителна настройка на HTTP хедърите (Browser Cache)

  1. Browser Cache настройките са разделени в четири раздела, според типа на уеб ресурсите: General (основни настройки), CSS & JS (.css стилове, .js скриптове), HTML & XML (статии/страници, емисии/feed) и Media (медийни и други файлове).
  2. Активирайте опциите „Enable HTTP (gzip) compression„, „Disable cookies for static files“ и „Set Last-Modified header“ в първия раздел General (основни настройки). Това ще активира тези настройки във всички останали раздели (CSS & JS, HTML & XML, Media).

В случай че сайтът не подава хедърите Expires и Cache-Control, активирайте опциите в General: „Set expires header“ и „Set cache control header„. За да функционират тези два хедъра коректно, в .htaccess файла не бива да се съдържат директиви на mod_expires извън раздела на W3TC (от # BEGIN W3TC Browser Cache до # END W3TC Browser Cache).

Wordfence Security връзка към този раздел

Този плъгин използва по подразбиране няколко бисквитки, за реализирането на няколко функционалности. Една от използваните бисквитки (wfvt_*) се задава при всеки един хит към сайта. Това означава, че хедърът Set-Cookie е наличен във всеки един отговор от сайта. Това поведение елиминира каквото и да било кеширане на сайта. Изключването на Set-Cookie от обработка от SuperCache не би било правилно. Към самия плъгин Wordfence Security се предлага настройка за деактивиране на бисквитките.

Какво трябва да направите

  1. Вижте трите особености, които ще спрат да функционират след деактивиране на бисквитките:
    https://www.wordfence.com/help/dashboard/options/#general-wordfence-options (Disable Wordfence Cookies).
  2. В случай че тези функционалности не са жизнено необходими, деактивирайте използването на бисквитки от този плъгин, през настройките му в WordPress: Wordfence -> OptionsAdvanced Options и маркирайте опцията: „Disable Wordfence Cookies„.

Броячи на посещения (view/hit counters) връзка към този раздел

Плъгините, които ползват POST заявка или AJAX за отчитане на посещенията, ще функционират коректно, като всеки хит ще бъде отчетен. Броят на посещенията, в реално време, ще може да се следи през администрацията на WordPress, тъй като за нея системно е деактивирано кеширането.

Актуален брой на посещенията обаче, няма да може да се види на самия сайт. Например при изкарване на броя посещения за статиите чрез джаджа. Причината за това е, че след като HTML кода на страницата е кеширан, той не се видоизменя в клиентския браузър. За да може при достъпване на кеширана страница от сайта, да се вижда актуалния брой на посещенията й, ще е необходимо да се извърши допълнителна разработка на системата за отчитане, което може да означава преработка на кода и логиката на изпълнение (на плъгина).

За актуални и коректни данни за посещенията в сайта, препоръчваме да се използва или Google Анализ или плъгин за WordPress, който работи с AJAX за отчитане на хитовете. Примерни плъгини, които поддържат AJAX са: AJAX Hits Counter + Popular Posts Widget, Post Views Counter и други.

  • За да може да се отчете посещение, броячът трябва да използва или POST заявка или JavaScript/AJAX.
  • Когато се използва POST заявка, но броячът няма отделен файл за целта, това може да доведе до не-ефективност на кеша, тъй като за всяко посещение системата на WordPress ще се стартира и изпълнява, въпреки че SuperCache е активиран.

Какво трябва да направите

  1. Ако ползвате плъгин за отброяване на посещенията, проверете в настройките му за опция за включване на режим JavaScript/AJAX.
  2. Изключване на директорията на плъгина от кеширане
    Изключете директорията на плъгина от кеширане в настройките на SuperCache. След като плъгинът е инсталиран, проверете коя е неговата директория и пътя до нея в хостинг акаунта. Например за плъгин Post Views Counter пътят е wp-content/plugins/post-views-counter. В SuperCache, в Разширени настройки, добавете този път в опцията „URL адреси, които да не се кешират„.
  3. Ако са ви необходими актуални данни за посещенията, може да използвате например услугата на Google Анализ. След като имате акаунт в Google Анализ, за извеждане на данните директно в административния панел на WordPress, може да инсталирате допълнителен плъгин, като Google Analytics Dashboard for WP (GADWP), Google Analytics for WordPress by MonsterInsights и други.
Обновена: 06.04.2022
Беше ли Ви полезна тази статия?

Вижте още