ОсновноеRadiotalkПользовательское
Webserv24 - Панель управления хостингом
11   •   Посмотреть все темы

Оптимизация движка Вордпресс для снижения нагрузки. Помогите советами.

 

44
Белоглазов_СВ @Белоглазов_СВ
Здравствуйте уважаемые знатоки интернет премудростей. Всерьез задумался над необходимостью максимального снижения нагрузки на сервер из-за размещенного сайта на движке Вордпресс. Уже увидел превышения лимита нагрузки на процессор в 10% и опасаюсь, Что через пару недель это может не только повториться, но и только возрасти со всеми вытекающими последствиями.

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

Основные советы даны по правке кода в файле темы ВП header.php, а именно изменив запрашиваемые данные на статические, прописав это всё ручками.

Это код файла:
1 <?php
2 /**
3 * The Header for our theme.
4 *
5 * Displays all of the <head> section and everything up till <div id="main">
6 *
7 * @package WordPress
8 * @subpackage Twenty_Ten
9 * @since Twenty Ten 1.0
10 */
11 ?><!DOCTYPE html>
12 <html <?php language_attributes(); ?>>
13 <head>
14 <meta charset="<?php bloginfo( 'charset' ); ?>" />
15 <title><?php
16 /*
17 * Print the <title> tag based on what is being viewed.
18 */
19 global $page, $paged;
20
21 wp_title( '|', true, 'right' );
22
23 // Add the blog name.
24 bloginfo( 'name' );
25
26 // Add the blog description for the home/front page.
27 $site_description = get_bloginfo( 'description', 'display' );
28 if ( $site_description && ( is_home() || is_front_page() ) )
29 echo " | $site_description";
30
31 // Add a page number if necessary:
32 if ( $paged >= 2 || $page >= 2 )
33 echo ' | ' . sprintf( __( 'Page %s', 'twentyten' ), max( $paged, $page ) );
34
35 ?></title>
36 <link rel="profile" href="http://gmpg.org/xfn/11" />
37
38 <link rel="stylesheet" type="text/css" media="all" href="<?php bloginfo( 'stylesheet_url' ); ?>" />
39 <link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
40 <?php
41 /* We add some JavaScript to pages with the comment form
42 * to support sites with threaded comments (when in use).
43 */
44 if ( is_singular() && get_option( 'thread_comments' ) )
45 wp_enqueue_script( 'comment-reply' );
46
47 /* Always have wp_head() just before the closing </head>
48 * tag of your theme, or you will break many plugins, which
49 * generally use this hook to add elements to <head> such
50 * as styles, scripts, and meta tags.
51 */
52 wp_head();
53?>
54</head>
55
56<body <?php body_class(); ?>>
57<div id="wrapper" class="hfeed">
58 <div id="header">
59 <div id="masthead">
60 <div id="branding" role="banner">
61 <?php $heading_tag = ( is_home() || is_front_page() ) ? 'h1' : 'div'; ?>
62 <<?php echo $heading_tag; ?> id="site-title">
63 <span>
64 <a href="<?php echo home_url( '/' ); ?>" title="<?php
65echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a>
66 </span>
67 </<?php echo $heading_tag; ?>>
68 <div id="site-description"><?php bloginfo( 'description' ); ?></div>
69
70 <?php
71 // Check if this is a post or page, if it has a thumbnail, and if it's a 72big one
73 if ( is_singular() && current_theme_supports( 'post-thumbnails' )
74&&
75 has_post_thumbnail( $post->ID ) &&
76 ( /* $src, $width, $height */ $image =
77wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'post-thumbnail' ) ) &&
78 $image[1] >= HEADER_IMAGE_WIDTH ) :
79 // Houston, we have a new header image!
80 echo get_the_post_thumbnail( $post->ID );
81 elseif ( get_header_image() ) : ?>
82 <img src="<?php header_image(); ?>" width="<?php
83echo HEADER_IMAGE_WIDTH; ?>" height="<?php echo HEADER_IMAGE_HEIGHT; ?>" alt="" />
84 <?php endif; ?>
85 </div><!-- #branding -->
86
87 <div id="access" role="navigation">
88 <?php /* Allow screen readers / text browsers to skip the navigation menu and
89get right to the good stuff */ ?>
90 <div class="skip-link screen-reader-text"><a href="#content"
91title="<?php esc_attr_e( 'Skip to content', 'twentyten' ); ?>"><?php _e( 'Skip to content', 'twentyten'
92); ?></a></div>
93 <?php /* Our navigation menu. If one isn't filled out, wp_nav_menu
94falls back to wp_page_menu. The menu assiged to the primary position is the one used. If none is
95assigned, the menu with the lowest ID is used. */ ?>
96 <?php wp_nav_menu( array( 'container_class' => 'menu-header',
97'theme_location' => 'primary' ) ); ?>
98 </div><!-- #access -->
99 </div><!-- #masthead -->
100 </div><!-- #header -->
10
102 <div id="main">

Вопрос первый. Я пытался заменить данные с именем блога и его описанием, вписав вместо слова "name" в строках 24 и 65 название своего блога, а вместо слова "description" в строках 27 и 68 описание блога (то, что в одинарных кавычках).
Какого-либо результата я не заметил, специально вписывал разные названия и описания чтобы ощутить изменения. Заметил только что в какой-то момент описание сайта стало указываться точно такое же, как и название (указанное в админке блога, но не прописанное мной).

Что я не правильно сделал в этой части? Там же в коде оказывается еще можно и много других параметров поправить. И действительно ли такие манипуляции смогут в реале помочь в снижении нагрузки?

Отредактировано Белоглазов_СВ - 26.01.2012
6600
Александр @admiral
Изменить запрашиваемые данные на статические имеется ввиду например в строке:
14 <meta charset="<?php bloginfo( 'charset' ); ?>" />
заменить её на:
14 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

тут UTF-8 смотря какая кодировка сайта, может и windows-1251 быть или другая, это просто две часто используемые кодировки
Еще один пример замены:
<link rel="stylesheet" type="text/css" media="all" href="" /<?php bloginfo( 'stylesheet_url' ); ?>>
тут вставку пхп кода <?php bloginfo( 'stylesheet_url' ); ?>
заменяем на свой путь до файла стилей, не обязательно полный путь, вместе с доменом, можно и даже правильней будет использовать короткие ссылки,
например wp-content/themes/mystyle/style.css
И т.д., находя лишние вставки пхп кода и заменяя их постоянными данными, да это снизит количество никому не нужных запросов, эти вставки конечно хорошо для универсальности, но когда используешь на своем сайте единственный шаблон то они теряют всякий смысл
Для оптимизации wp так же попробуй использовать какую нибудь кеширующую систему, плагин, модуль или что там на wp, суперкеш например, что бы кешировались не только файлы, но и запросы в базу, кеш плагинов для wp предостаточно и нужно смотреть от которого будет больше пользы чем вреда, ну и смотря как его настроить еще и что кешировать, основные запросы я уже написал что нужно кешировать, это файлы, картинки, скрипты, то что не часто обновляется, а так же запросы в базу, думаю результат заметишь)

PS что бы заменить в этой строке вставку:
12 <html <?php language_attributes(); ?>>
просто открой исходный код страницы и посмотри что в нем выводится, на то и замени

PPS ********** небольшой обзор плагинов для кэширования, подобных обзоров в поиске предостаточно, ссылку дал лишь для того что бы было представление о чем речь и от чего отталкиваться

44
Белоглазов_СВ @Белоглазов_СВ
Шаблон единственный.
Плагин Суперкеш установил.
Полученной выше инфы похоже на пару дней переваривания хватит. Или может мне лучше более детально изучить способности плагина?

5421
Глеб @Глебон
********** почитайте может поможет 😀

6600
Александр @admiral
Глебон, статья не из лучших, но кое что подчерпнуть можно, не из лучших потому что пол статьи о плагинах, которых может и не стоять у кого то, это все специфика, главное суть оптимизации, а её я не особо увидел, хотя может то что мельком только просмотрел о чем речь.
Белоглазов С.В., ну кому на пару дней, кому недель, а кому часов/минут ) Поищи информацию по настройке плагина, по его работе и результатам, будут улучшения (а я думаю будут, если кеширование вообще не было как такового), то хорошо, но этому (оптимизации) постоянно нужно учится и совершенствоваться, открывать новые способы, возможности, отсеивать худшие варианты того что лучше не делать и не использовать, толчек и направление впринципе даны, если что не понятно можно тут писать, обсудим, тема впринципе актуальная думаю, многие используют эту кмс и будет интересно почитать как и чем лучше снизить нагрузку и заставить вп быстро отдавать информацию пользователям, так как от этого не мало зависит и посещаемость ресурса. Да мне и самому, если честно, надоело каждому объяснять как и что лучше, проще на форуме раз обсудить, чем каждому писать одно и то же)

PS изменения запросов в базу не касался, так как это специфическая задача конкретного ресурса и о такой скурпулезной оптимизации если и задумываться, то только для очень высокопосещаемых сайтов

44
Белоглазов_СВ @Белоглазов_СВ
Высокая посещаемость вещь как я понимаю относительная.
Сразу после переезда на хостинг она у мена составила 407 посетителей по Гугл аналитике, нагрузка на процессор легла в 10,5%. Недели через 2-3 в любом случае пойдет рост посещаемости, так как Яндекс из-за нескольких дней простоя уже во второй раз, 2/3 страниц убрал из поиска и постепенно будет их возвращать обратно, вот тут-то я и опасаюсь превышения выделенных лимитов.

Начну тогда с плагина Супер-кеш и потом перейду к правке кода и точно будет много вопросов.

А я правильно понял, что везде, где увижу запись, оканчивающуюся на "_url", то в этих местах можно производить замену на конкретный УРЛ?

Отредактировано Белоглазов_СВ - 26.01.2012
6600
Александр @admiral
Ну я имел ввиду очень высокопосещаемые ресурсы, когда оптимизировать нужно все подряд, когда уже все что можно уже было оптимизировано до предела.
[quote=Белоглазов С.В.]А я правильно понял, что везде, где увижу запись, оканчивающуюся на "_url", то в этих местах можно производить замену на конкретный УРЛ?[/quote]
необязательно и не только "_url" может быть на конце, так нельзя судить, просто надо смотреть что за вставки пхп когда и что они выводят, за что отвечают

2970
удалён @Foggy
Помимо предложенного выше (особенно ссылки на хабр), могу порекомендовать продукт ********** от ********** - ребят, которые знают об оптимизации даже больше, чем всё.