WordPress: уменьшаем нагрузку на сервер

Опубликовано: 5.01.2009

Ровно за сутки до нового года мой аккаунт заблокировали. Как выяснилось, за высокую нагрузку на сервер. Пришлось исправлять. Рассмотрим на примере того шаблона, который установлен по умолчанию.
Открываем файл header.php

Заменяем

<meta http-equiv=”Content-Type” content=”<?php bloginfo(‘html_type’); ?>; charset=<?php bloginfo(‘charset’); ?>” />

на

<meta http-equiv=”Content-Type” content=”text/html; charset=UTF-8″ />

Скорее всего, у Вас и так будет кодировка UTF-8. Так зачем лишний раз обращаться к БД?

<meta name=”generator” content=”WordPress <?php bloginfo(‘version’); ?>” />

убираем вообще или оставляем только

<meta name=”generator” content=”WordPress” />

Во-первых это лишнее обращение к БД, а во-вторых лишняя информация, которая может стать полезной для хакеров. Далее заменяем

<link rel=”stylesheet” href=”<?php bloginfo(‘stylesheet_url’); ?>” type=”text/css” media=”screen” />

на

<link rel=”stylesheet” href=”/wp-content/themes/default/style.css” type=”text/css” media=”screen” />

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

<link rel=”alternate” type=”application/rss+xml” title=”<?php bloginfo(‘name’); ?> RSS Feed” href=”<?php bloginfo(‘rss2_url’); ?>” />
<link rel=”pingback” href=”<?php bloginfo(‘pingback_url’); ?>” />

на

<link rel=”alternate” type=”application/rss+xml” title=”Название блога RSS Feed” href=”http://feeds.feedburner.com/mk-ulyanovsk/” />
<link rel=“pingback” href=“http://seo73.ru/xmlrpc.php” />,

<h1><a href=”<?php echo get_settings(‘home’); ?>/” ><?php bloginfo(‘name’); ?></a></h1>

заменяем на

<h1><a href=”/” >Название блога</a></h1>

если у Вас блог на отдельном домене, конечно. В противном случае вместо “/” пишите Ваше расположение.

<div class=”description”><?php bloginfo(‘description’); ?></div>

заменяем на

<div class=”description”>описание блога</div>.

Если встречаются другие подобные элементы, прописывайте адреса прямо в шаблоне. Не фиг лишний раз базу данных тревожить :) . Точно так же нужно поступить и с footer.php. Можно и в других файлах поковыряться.

Важное примечание: кодировка файла должна быть UTF-8 without BOM (встретился недавно с такой проблемой – периодически вместо кириллических символов выводились знаки вопроса. За подсказку спасибо 9seo.). Обычный блокнот тут не поможет, качайте Notepad++ (ну или еще что-нибудь похожее).

NePoD передал мне эстафету “три лучших подарка”.

На первом месте – портмоне. Вот чег мне не хватало. А то деньги в карманах мнутся, рвутся и иногда теряются. Полезная вещь.

Второе и третье места – даже не знаю, что сказать. Остальное – всякие мелкие не очень полезные безделушки. Но главное не подарки, а внимание. Поэтому все они делят 2 и 3 места. Вот так.

Передам эстафету тем, кто написал самые свежие посты в Яндекс.Ленте на текущий момент. А именно 9seo и Андрею Радзевичу.

Mult начал новый 2009 блоггерский год. Тогда и ему тоже передам эстафету :)

Комментариев — 43 »

  1. Pepper 5.01.2009 в 20:05

    Это же можно сделать и в остальных частях шаблона, где постоянно генерируется один и тот же код. Например, заменить меню на статические ссылки.

    Кстати, вам также поможет плагин WP Super Cache, он кеширует страницы, что значительно увеличивает скорость генерации HTML и снижает нагрузку на сервер.

  2. Vlad 6.01.2009 в 12:16

    Странно, что вордпресс вдруг сильно нагрузил хостинг…вобще это всегда был один из самых лёгких и быстрых движков для блогов…надо свой подредактировать :) Хотя SuperCache поставил, но чёт страшновато, если опять начнут баннить

  3. WebJunk 6.01.2009 в 16:57

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

  4. Серёга 6.01.2009 в 17:26

    тоже были как-то такие проблеммы, только меня никто не блокировал… т.к. сервак у меня свой… просто как-то заметил, что остальные сайты как-то тормозят… проверил нагрузку на сервер – оказалось блог слишком много ресурсов грузи… пришлось отключить пару модулей

    “…вобще это всегда был один из самых лёгких и быстрых движков для блогов”…

    to Vlad, несоглашусь… движок грузит сразу все модули и делает много запросов в базу… гораздо легче dle

    хотя я пока не собираюсь изменять wordpress’у :)

  5. Pepper 6.01.2009 в 18:35

    Vlad, я бы не сказал, что вордпресс один из самых легких, скорее наоборот.

    WP Super Cache помогает снять нагрузку с сервера, когда на сайте много посетителей. Полезная вещь, несомненно. Но у меня на одном сайте он за несколько дней создает около 2000 файлов. Так что тут есть и плюсы и минусы.

    VDS ради вордпресса? Уж проще движок сменить тогда :)

  6. dgrach 7.01.2009 в 14:45

    wp – хороший движок, но он некогда не был самым легким, лучше уже юзать dle если ресурсы хостинга не позволяют.

  7. WebJunk 8.01.2009 в 0:17

    Pepper, да, а что Вас так удивляет?
    Или Вы думаете посещаемые проекты на самописном движке будут на виртуальном хостинге тянуть? ;)
    На какой движок сменить?

  8. Алексей 8.01.2009 в 1:22

    Ну конечно, чем меньше запросов в БД тем меньше нагрузка на сервак и быстрее выполнение скрипта.
    Вообще CMS считаются в этом плане медленными и вызывающие нагрузку на сервер. Потому что они не заточены под какую либо работу и всё генерируют.
    Кстати, а для WordPress есть возможность кешиовать страницы, что значительно снизит нагрузку.

  9. Pepper 8.01.2009 в 19:48

    Я не знаю какой движок будет хорош для посещаемого проекта, но я знаю, что вордпресс довольно тяжелый. Не зря для него так рекомендуют плагины для кэширования.

    У самого не один сайт на этом движке. В плане скорости он слабоват, но зато удобно, поэтому и пользуюсь. А в большом проекте удобствами можно принебрегнуть. Да та же NucleusCMS куда шустрее.

  10. Володя 10.01.2009 в 17:10

    И сколько было уников суммарно что заблочили??? У меня на моих основных хостах проблем никогда таких небыло. Скорее всего это хостер захотел больше.

  11. yuzelen 12.01.2009 в 12:12

    Меня WP и сейчас устраивает. Большинство блогов у меня как раз на нем. Пробовал несколько cmsок, но все равно вернулся на WP с использованием кэширования. Мне в общем пока хватает. Когда начнутся проблемы – тогда и будем их решать.

  12. [m.k] 12.01.2009 в 14:58

    Володя, в отчете, который предоставил хостер, были 3 сайта – этот блог (50-60 чел.в день) и 2 сайта (один 70-120 чел/день, второй 60-90). И заняли они 1% процессорного времени.
    Заблокировали тогда, когда случилась авария в дата-центре. Посещаемость такая была и до этого, но раньше не блокировали.

  13. Anfi 17.01.2009 в 0:12

    Гдето читал, что есть ещё обращение к базе за данными админа, когда комментируешь на своём блоге, но в своём блоге я не нашёл это обращение, что скажете?

  14. [m.k] 17.01.2009 в 0:31

    Anfi, в файле comments.php

  15. Аноним 11.04.2009 в 12:27

    Обычно не пишу подобные комменты в блогах…
    Сегодня попробовал на локале, тормоза дикие..
    Шаблон дефол вп тюниг показывает более 20 запросов в бд.
    Супер кеш снимает 3-4 – …. а не кеш.
    “один 70-120 чел/день, второй 60-90″ – этож распипец полный, аля джумла, а мож и хуже.
    На сайте(блоге) должно быть несколько тысяч уников в день иначе поделка, иначе как зарабатывать на нем))

  16. [m.k] 11.04.2009 в 14:58

    >На сайте(блоге) должно быть несколько тысяч уников в день иначе поделка, иначе как зарабатывать на нем))

    10 целевых посетителей лучше, чем 100 нецелевых. А еще можно ссылки продавать.

  17. Dev 9.08.2009 в 13:25

    А как вообще в WP подсчитать количество запросов к Базе Данных. Я хочу увидеть количество, а потом оптимизировать блог и при этом наблюдать до скольки упадет время и количество запросов.

  18. Нагрузка 9.10.2009 в 11:49

    Чтобы подсчитать количество запросов к базе – нужна командная строка базы, если из шела, то mysql -u {имя пользователя} -p{пароль – без пробела после p} {имя базы}
    И потом:
    > status;
    Если включен механизм кеширования в самом mysql, то любопытно взглянуть на
    > show status like ‘q%';
    выйти из командной строки
    > \q

  19. Dizel 14.01.2010 в 20:58

    Конечно, можно достигнуть хорошего результата, если немного модифицировать шаблон, но для этого нужно хоть немного знать PHP. С другой стороны, при смене шаблона, нужно снова чистить код, что не есть гуд

  20. anadikt 18.01.2010 в 17:22

    у меня постоянно блокируют аккаунт хостера, в связи с тем что блог с небольшой посещаемостью нагружает сервер выше положенного. Сделал все как написано в статье .. помогло немного, но не до конца, может посоветуете на какой движок перейти? либо хостера поменять?

  21. [m.k] 18.01.2010 в 18:38

    anadikt, лучше хостера сменить. А движок пытался искать, но ничего подходящего с таким же функционалом не нашел.

  22. Serzh 5.05.2010 в 23:59

    А разве эти значения достаются из БД? а не из массива?

  23. Sergey 5.06.2010 в 21:22

    Спасибо Михайл, все сделал как вы написали. Водпресс только начинаю осваивать (drupal и dle мне ближе).

  24. Boris 30.12.2010 в 14:54

    Такая же история перед новым годом… Хостеры отключили за перегрузку сервака (на сайте 15 000 уников). Провел “зачистку” по нагружающим элементам – помогло слабо, суперкеш тоже не рулит. Акк включили, но придется переходить на другой пакет хостинга. Вот так вот

  25. php-user 12.01.2011 в 23:35

    Делал по Вашей инструкции, и полечилось с первого раза.

  26. Всеволод 10.04.2011 в 12:30

    Полезная информация, а то чёт у самого сервер нагружет

  27. Электрик 15.05.2011 в 20:19

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

  28. Сергей 26.05.2011 в 23:34

    Блин. Спасибо большое. Мне тоже хостер присылал превышена нагрузка. Зделал как описано, вот уже месяц письма небыло. Еще раз спасибо.

  29. kashlakova 15.06.2011 в 20:28

    Согласна с Электриком – то, что мы уберём 10 обращений к базе из 1000 ничего нам не даст. Мне пока хостеры не стучали, но, скорее всего, легче сменить хостера или движок, чем хоть как-то кодом облегчить обращение к базе.

  30. Лев 13.07.2011 в 21:20

    Хм, не знал… Полез исправлять код! Спасибо, автор! :) *BRAVO*

  31. рейвен 7.10.2011 в 16:42

    Блиин, вот фигня с этой нагрузкой, сейчас тоже думаю, как облегчить ее (

  32. Димас 29.02.2012 в 19:17

    Автору *THUMBS UP*. Попробую щас так же сделать, а то хостер в последннее время не сильно радует.
    P.S Спасибо за статью.

  33. VeGA 18.10.2012 в 21:58

    Молодец, админ. Реально натолкнул на мысль о полной оптимизации.

  34. Olunka 12.11.2012 в 2:31

    Жалобы по поводу того, что WordPress излишне нагружает сервер участились.
    Некоторые пользователи даже меняют движок на Друпал.
    Спасибо за статью, она для меня сейчас актуальна.

  35. ArchitectOfRuin 17.11.2012 в 5:17

    Высокую нагрузку на сервер получал в результате чистки скопившихся ревизий в блоге. Правда, их там действительно было много, с двух тысяч записей, набираемых в самом редакторе WP.

  36. Константин 30.01.2013 в 23:04

    Не, ну в WordPress есть прелоад переменных. Большинство из них сразу в массив загоняются одним запросам к БД. Таким образом нет смысла отказываться от того же bloginfo. Те же переменные которые сразу не подгружаются, надо просто сделать таковыми… 8)

  37. Юрий 25.03.2013 в 22:14

    Я начинал с wordpress, он легок в освоении и имеет кучу плагинов. Но нагрузку он создает непомерную, и кеш помогает от части (если у блога 100 постов). То что предлагается в статье, делал, помогает немного. А еще его ломают регулярно. Те сайты которые можно было, я перевел на другую CMS. Нагрузка почти нулевая, никто не ломится и не пытается взломать =)

  38. dielf 30.10.2013 в 15:13

    спасибо за статью!

  39. Алексей Ершов 6.11.2013 в 23:32

    Мой сайт как-то блокировали из-за брутфорс аттаки. Какой-то скрипт пытался подобрать логин и пароль методом перебора и тем самым создавал высокую нагрузку. Я установил плагин WP Security. Там есть возможность задать максимальное количество попыток входа и время блокировки по IP-адресу.
    Информация в статье полезная – никогда об этом не задумывался. Надо будет применить.

  40. Интернетчик 2.02.2014 в 14:40

    В принципе целесообразно обойтись лишь плагином, типа Hyper Cache для кеширования страниц сайта в чистые html страницы. Но не всегда его целесообразно использовать. Например, некоторые динамичные элементы на страницах уже не будут динамичными, могут не работать каптчи и т.д.
    Так что советы автора – то что надо! ;) Хоть тема и не до конца раскрыта. Можно вырезать там кучу еще чего!

  41. Елена 8.12.2015 в 12:13

    Полезная инфа, а я как раз сейчас занимаюсь ускорением блога и обязательно воспользуюсь вашими советами. Спасибо!

  42. Юрий 4.06.2017 в 17:57

    Ваш блог информативный и легкий, это радует, несмотря на простоту. Только интересно, сейчас статья эта актуальна?

Оставьте комментарий к посту ”WordPress: уменьшаем нагрузку на сервер”

Разрешено использовать тэги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Трекбеки и пингбеки

Ключевые слова:
AdSense google page rank Sape SEO WordPress Блог Сапа Софт Яндекс акция ап апдейт бесплатно дизайн домен запросы индекс цитирования интернет интернет-магазин комментарии компьютер конкурс продвижение реклама спам ссылки тИЦ форум эстафета