Как да настроим wp-cron.php в WordPress сайт за да се минимизира процесорното време в хостинга

Как се прави оптимизация на процесорно време в хостинг?

Най-често срещания проблем със Българските хостинг компании като Суперхостинг, ХостБългария и т.н е повишеното процесорно време на сайта Ви който хоствате при тях. Проблема възниква не само при най-евтините планове но и при средни и то съвсем лесно и елементарно. Ето как изглежда един уведомителен имейл от хостинг доставчик:

Здравейте,

При проверка на статистиките и логовете на акаунта виждаме, че повишеното процесорно време се дължи на многократно стартиране на wp-cron.php. Изпълнението на wp-cron.php по дни е следното:

12 юни 2015 – 1295 пъти
13 юни 2015 – 11 139 пъти
14 юни 2015 – 20 345 пъти
на 15 юни 2015 до момента – 6070 пъти

Ако намалите честотата на изпълнение на wp-cron.php би трябвало да се редуцира и изразходваното от акаунта процесорно време.

Ето какво пише Георги Стефанов по темата “Кои са честите причина за повишаване на CPU време в хостинга“:

1. Завишено посещение от роботи – автоматични скриптове, паяци обхождащи сайта.

2. Автоматичен крон скрипт, който периодично изпълнява тежка операция, като преиндексиране, архивиране на SQL таблици или файлове и др.

Аз ще добавя и използването на автоматизиран софтуер като scrapebox за спам коментари.

Хостинг компанията при положение че сайта Ви изразходва повече от договорените ресурси е нормално да Ви подканва да преминете към по-скъп план който ще увеличи минутите на месец, но НЯМА да реши проблема Ви. А той може да се реши с едноминутна работа.

Какво е cron job?

Cron job е *nix команда за планиране на сървърни работи (команди или шел скриптове) за извършване на автоматично повтарящи се задачи.

WordPress разчита основно на cron за графика на планираните дейности като затваряне на коментарите след определени дни, изтриване на спам папката и др. Може да тествате и следните 2 плъгина (FFF-Cron-Manager, и WP Crontrol) с които можете да видите, редактирате, изтриете и контролирате какво се случва в WP cron.

Как става конфигурирането на wp-cron.php в WordPress инсталация?

Първа стъпка

Стъпка 1: Свали файла wp-config.php и го отвори за редакция с notepad++ (Всеки файл който редактирате е задължително да го имате в резервно копие, защото се случва при добавяне и изтриване на код после да не работи правилно при качването в сайта.)

Стъпка 2: Добави този код define(‘DISABLE_WP_CRON’, ‘true’);

Стъпка 3: Save и качи пак файла с filezilla в хостинга.

Втора стъпка конфигуриране на cron job ръчно в Cpanel

Стъпка 1: Логни се в cpanel-а >Advanced > Cron job

cron job in wordpress

cron job in wordpress

cron job in wordpress

Стъпка 2: На common settings избери “Once an day” и на Hour “every 6 hours”. На Command напиши следния код
cd /home/Тук-е-името-на-твоя-хостинг/public_html; php -q wp-cron.php

Стъпка 3: Клик на Add new cron job

Цък тук за повече инфо.

 

Това е! Сега вградения крон на всяка инсталация на WP ще се стартира през 6 часа и процесорното ти време ще падне като няма да се наложи да преминеш към по-висок план и да платиш съответно повече пари на хостинг доставчика.

Димо Белов предложи и едно друго решение на проблема:

В .htaccess добавете следното (Блокира агресивния бот на bing и IP адреса на хостинга който се самохитва – стартиране на HTTP заявки от сайта към самия него):

1) RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^(.*)msnbot [NC,OR]
RewriteCond %{HTTP_HOST} 91.196.124.127
RewriteRule .* – [F]

и 2) в wp-config.php добавете следното:

define(‘DISABLE_WP_CRON’, true);

Има и още едно интелигентно решение на проблеми със натоварване на хостинги и то се казва използване на CDN. За един сайт използването на cloudflare е безплатно.