Як збільшити швидкість сайту на WordPress без плагінів та прибрати непотрібні функції

WordPress є універсальною системою керування контентом і тому містить багато функцій, які можуть бути непотрібними на конкретно Вашому веб сайті. В цьому випадку варто вимкнути зайві для Вас фунції WordPress. Це дозволить збільшити швидкість роботи вашого сайту, а також сприятиме покращенню позицій сайту в пошукових системах.

1. Приховати Admin Bar з Frontend

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi 
Hide admin bar from frontend
mi*/
   show_admin_bar( false );

2. Приховати поле Website Or URL з форми додавання коментарів

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi 
Remove Website or URL Field on Comment Form
mi*/
   function ra_remove_comment_url_field( $field ) { return ''; }
   add_filter( 'comment_form_field_url', 'ra_remove_comment_url_field' );

3. Приховати Website Or URL з коментарів

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi 
Hide Commenter Website or URL on Comments
*mi/
function ra_hide_comment_url( $url ) {
    if ( !is_admin() )
        return '';
    else
        return $url; }
add_filter( 'get_comment_author_url', 'ra_hide_comment_url' );

4. Вимкнути ревізії сторінок та записів

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi
Disable post revisions  
mi*/
define('WP_POST_REVISIONS', false);

5. Прибрати зайву інформацію з Header

Спочатку приведемо повний код, який можна без проблем застосувати для пришвидчення більшості (не всіх!) сайтів на WordPress. Додати його треба в файл …/wp-content/themes/*mytheme/functions.php

/*mi
Clean up WordPress Header START
mi*/
function complete_version_removal() {
    return '';
}
add_filter('the_generator', 'complete_version_removal');
remove_action ('wp_head', 'rsd_link');
remove_action( 'wp_head', 'wlwmanifest_link');
remove_action( 'wp_head', 'wp_shortlink_wp_head');
remove_action('wp_head', 'rest_output_link_wp_head', 10);
remove_action('wp_head', 'wp_oembed_add_discovery_links', 10);
remove_action('template_redirect', 'rest_output_link_header', 11, 0);
function remove_query_strings() {
   if(!is_admin()) {
       add_filter('script_loader_src', 'remove_query_strings_split', 15);
       add_filter('style_loader_src', 'remove_query_strings_split', 15);
   }
} 
function remove_query_strings_split($src){
   $output = preg_split("/(&ver|\?ver)/", $src);
   return $output[0];
}
add_action('init', 'remove_query_strings');
/*mi
Clean up WordPress Header END
mi*/

Далі про цей код розповімо докладніше:

5.1. Прибрати інформацію про версію WordPress з Header

Збільшує безпеку сайта.
Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi 
Remove version info from head and feeds
mi*/
function complete_version_removal() {
    return '';
}
add_filter('the_generator', 'complete_version_removal');
5.2. Прибрати XML-RPC RSD посилання

Корисно для тих, хто працює з сайтом лише через веб інтерфейс адміністративної панелі. Прибирає можливість віддаленого додавання контенту через сторонні засоби, такі як, наприклад, електронна пошта чи додатки iOS або Android App.
Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi
Remove RSD link
mi*/
remove_action ('wp_head', 'rsd_link');
5.3. Прибрати wlwmanifest

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi
Remove wlwmanifest link
mi*/
remove_action( 'wp_head', 'wlwmanifest_link');
5.4. Прибрати shortlink

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi
Remove shortlink
mi*/
remove_action( 'wp_head', 'wp_shortlink_wp_head');
5.5. Видалення рядків запитів ( Query Strings ) із статичних ресурсів ( Static Resources )

Якщо ваш сайт не використовує CDN, де ви можете налаштувати отримання статичних файлів без додавання номера версії до адреси файлу, то для оптимізації швидкості завантаження сайту в більшості випадків бажано видалити цей номер версії статичного файлу, наприклад, CSS та ін.
Для цього треба додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi
Remove Query Strings from Static Resources
mi*/
function remove_query_strings() {
   if(!is_admin()) {
       add_filter('script_loader_src', 'remove_query_strings_split', 15);
       add_filter('style_loader_src', 'remove_query_strings_split', 15);
   }
}

function remove_query_strings_split($src){
   $output = preg_split("/(&ver|\?ver)/", $src);
   return $output[0];
}
add_action('init', 'remove_query_strings');
5.6. Видалення api.w.org

Якщо тема та плагіни Вашого сайту не використовують REST API, то Ви можете його відключити. Це в багатьох випадках може пришвидчити завантаження сторінок сайту. Для цьго треба додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

// Disable REST API link tag
remove_action('wp_head', 'rest_output_link_wp_head', 10);

// Disable oEmbed Discovery Links
remove_action('wp_head', 'wp_oembed_add_discovery_links', 10);

// Disable REST API link in HTTP headers
remove_action('template_redirect', 'rest_output_link_header', 11, 0);

6. Видалити непотрібні розміри картинок ( large, medium, thumbnail )

Додати у файл …/wp-content/themes/*mytheme/functions.php цей код:

/*mi 
Remove Unneeded Images Thumbnail Sizes
mi*/
update_option( 'thumbnail_size_h', 0 );
update_option( 'thumbnail_size_w', 0 );
update_option( 'medium_size_h', 0 );
update_option( 'medium_size_w', 0 );
update_option( 'large_size_h', 0 );
update_option( 'large_size_w', 0 );