Если вы хотите ускорить работу своего ВордПресс-сайта, то один из способов – сжать код HTML WordPress. Разбираемся, как это сделать.
Зачем сжимать HTML в WordPress?
Если знакомы с сайтостроением, то должны понимать, что результат работы каждой страницы – это сгенерированный HTML-код. Именно таким образом веб-браузер “понимает”, что и как отображать конечному пользователю. Чем меньше кода, тем быстрее сервер хостинга отдаст содержимое посетителю. Для этого существует понятие минимизации HTML. Ее цель – уменьшить количество символов за счет удаления пробелов, символов табуляции, переносов строк.
Как сделать минификацию?
Для системы WP есть несколько способов решить эту задачу.
Способ 1. С помощью плагинов
Разберем самые популярные.
Minify HTML
Бесплатный плагин Minify HTML корректно сжимает HTML-код, удаляя из него не только вышеперечисленные элементы, но также ненужные теги, относительные схемы и домены из ссылок. После установки и активации перейдите в админ-раздел Настройки > Minify HTML, в опции Minify HTML отметить пункт Enable и нажмите Сохранить изменения.

В итоге исходный код любой из страниц сайта будет иметь следующий вид:

Autoptimize
Еще один достойный вариант – Autoptimize. Для включения в нем сжатия откройте Настройки > Autoptimize, отметьте пункт Optimize HTML Code? и кликните Save Changes and Empty Cache.

Fast Velocity Minify
Очередной модуль – Fast Velocity Minify. Не требует настроек.
Clearfy Pro
На очереди премиум-плагин Clearfy Pro. Он, помимо прочих своих полезных возможностей, корректно минимизирует исходный код. Для этого в разделе Clearfy Pro перейдите на вкладку Код и задействуйте опцию Включить HTML минификацию. Не забудьте сохранится.

Способ 2. Код в файле функций
Еще один способ оптимизации – это вставить код в functions.php активной темы.
Если вы не знаете что такое файл functions.php, то в этом случае можете воспользоваться плагином ProFunctions.
В конец файла добавьте строки:
class WPPlugins_HTML_Minify {
protected $compress_css = true;
protected $compress_js = true;
protected $info_comment = true;
protected $remove_comments = true;
protected $html;
public function __construct( $html ) {
if ( !empty( $html ) ) {
$this->parseHTML( $html );
}
}
public function __toString() {
return $this->html;
}
protected function minifyHTML( $html ) {
$pattern = '/<(?<script>script).*?<\/script\s*>|<(?<style>style).*?<\/style\s*>|<!(?<comment>--).*?-->|<(?<tag>[\/\w.:-]*)(?:".*?"|\'.*?\'|[^\'">]+)*>|(?<text>((<[^!\/\w.:-])?[^<]*)+)|/si';
preg_match_all( $pattern, $html, $matches, PREG_SET_ORDER );
$overriding = false;
$raw_tag = false;
$html = '';
foreach ( $matches as $token ) {
$tag = ( isset( $token['tag'] ) ) ? strtolower( $token['tag'] ) : null;
$content = $token[0];
if ( is_null( $tag ) ) {
if ( !empty( $token['script'] ) ) {
$strip = $this->compress_js;
}
else if ( !empty( $token['style'] ) ) {
$strip = $this->compress_css;
}
else if ( $content == '<!--wp-html-compression no compression-->' ) {
$overriding = !$overriding;
continue;
}
else if ( $this->remove_comments ) {
if ( !$overriding && $raw_tag != 'textarea' ) {
$content = preg_replace('/<!--(?!\s*(?:\[if [^\]]+]|<!|>))(?:(?!-->).)*-->/s', '', $content);
}
}
}
else {
if ( $tag == 'pre' || $tag == 'textarea' ) {
$raw_tag = $tag;
}
else if ( $tag == '/pre' || $tag == '/textarea' ) {
$raw_tag = false;
}
else {
if ( $raw_tag || $overriding ) {
$strip = false;
}
else {
$strip = true;
$content = preg_replace( '/(\s+)(\w++(?<!\baction|\balt|\bcontent|\bsrc)="")/', '$1', $content );
$content = str_replace( ' />', '/>', $content );
}
}
}
if ( $strip ) {
$content = $this->removeWhiteSpace( $content );
}
$html .= $content;
}
return $html;
}
public function parseHTML( $html ) {
$this->html = $this->minifyHTML( $html );
}
protected function removeWhiteSpace( $str ) {
$str = str_replace( "\t", ' ', $str );
$str = str_replace( "\n", '', $str );
$str = str_replace( "\r", '', $str );
while ( stristr( $str, ' ' ) ) {
$str = str_replace( ' ', ' ', $str );
}
return $str;
}
}
function wpplugins_html_minify_finish( $html ) {
return new WPPlugins_HTML_Minify( $html );
}
function wpplugins_html_minify_start() {
ob_start( 'wpplugins_html_minify_finish' );
}
add_action( 'get_header', 'wpplugins_html_minify_start' ); Скрипт начнет работать после сохранения и будет уменьшать размер всех страниц.