Много полезна информация, за анализ и оптимизация на даден сайт, може да се намери в секция Логове (Logs) на контролния панел cPanel в меню „AWStats„.
Чрез статистиката в AWStats може да се засекат някои от причините за повишено потребление на процесорен ресурс от хостинг акаунта.
Какво е процесорно време, как се отчита и какво се включва в статистиката?
Завишено посещение от „лоши“ ботове
Агресивното индексиране на сайта от „лоши“ ботове често води до завишено потребление на процесорно време.
Дали даден сайт има завишено посещение от ботове може да се разбере на пръв поглед, като се погледне първата секция в статистиката – „Сумарно„:
Това е пример за сайт, който има агресивно индексиране от ботове. Може да се види в статистиката на Traffic viewed и Traffic not viewed за Страници, Хита и Използван трафик. В случая броят на страниците и хитовете, генериран от ботовете, е много по-голям от този за нормалните посещения.
Traffic viewed – Трафикът, който е генериран от посетителите. Този тип трафик се генерира от нормалните посетители на дадения сайт, докато те разглеждат сайта.
Traffic not viewed – Трафикът, който е генериран от ботове, роботи и отговори на сървъра със специални HTTP статус кодове.
Информация за ботовете може да се намери и в секция „Претърсващи роботи„.
Възможно е да се ограничи достъпа на „лошите ботове“ до сайтовете в хостинг акаунта, чрез добавяне на определени правила в .htaccess файла. Например:
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} ^(.*)MJ12bot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)SolomonoBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)Baiduspider [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)Yeti [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)Ezooms [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)AhrefsBot [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(.*)exabot [NC]
RewriteRule .* - [F]
В посочените редове са дадени примери за няколко агресивни бота.
Най-пълна информация за посещението на ботовете може да се намери в Access лога на сайта.
Завишено индексиране от Bingbot
Възможно е понякога обхождащите машини на MSN и Bing също да бъдат много агресивни. По аналогичен начин може да бъде намален Crawl rate-а им. Това се извършва в Bing Webmaster Tools.
Динамична обработка на изображения
Динамичната обработка на изображения представлява процес в системата, при който за визуализирането на изображение с определени критерии, това изображение се обработва непосредствено преди визуализацията.
Например, за визуализацията на умалено изображение (thumbnail) се стартира скрипт, който го преоразмерява непосредствено преди зареждането. Не се запазва копие на обработеното изображение. При следващо извикване, изображението се обработва отново.
Пример за динамично оразмеряване, при който картинка се визуализира по подобен начин в адресната лента на браузъра:
https://mydomain.com/image.php?path=/uploads/image.jpg&newxsize=160&newysize=160
За да се покаже снимката, скриптът image.php се извиква всеки път. На сайта обикновено има много повече от една картинка. Например, ако на една страница има 5 картинки, извикването на скрипта е 5 пъти и това само за един потребител при едно отваряне.
Това води до многократно изпълнение на един и същ скрипт. В статистиката за процесорно време се отчита именно времето за обработка на скриптове от хостинг акаунта. Това води и до увеличаване на процесорното време.
В статистиката за изразходваното процесорно време не се отчита времето, необходимо за обработка на статичните елементи. Затова удачен вариант за оптимизация е да се замени динамичната обработка на изображенията и да се сервират статични ресурси.
Сервирането на статичното съдържание представлява например, картинката да се извиква директно, без да се ползва скрипт:
https://mydomain.com/images/thumbimage.jpg
За целта изображенията може да се обработят веднъж, например при качване. След това се запазват копия на вече обработените изображения.
Често срещани PHP скриптове за динамично преоразмеряване на картинки: timthumb.php, show_image_in_imgtag.php, thumb.php, phpthumb.php и др.
Липсващ ресурс от сайта, при достъпването на който получаващото се съобщение „404“ се обработва от PHP
При повечето готови системи съобщението за липсващ ресурс „404“ се визуализира като част от дизайна на темата на сайта и това е постигнато като съобщението се обработва от PHP.
Грешка 404 може да се получи ако например в кода е зададено да се зарежда даден елемент (css, js, адрес или друго), а такъв не е наличен в акаунта или не е достъпен.
Когато към сайта има множество липсващи ресурси, като например картинка или липсваща статия, то при извикването на този ресурс се стартира страницата за грешка 404, чието визуализиране се обработва от PHP.
Единият от вариантите е да добавите липсващите елементи в хостинг акаунта или да ги премахнете от кода на сайта. Подробна информация можете да намерите в AWStats в секцията „HTTP кодове за грешка“. Като се натисне върху „404“ ще се покаже информация кои адреси са зададени да се ползват в кода на сайта, но ги няма в хостинг акаунта.