Как очистить head в WordPress от ненужного кода?

Здравствуйте, друзья! По умолчанию WordPress выводит код в head, который в большинстве случаев совершенно не нужен. В этой небольшой статье рассмотрим, как избавиться от лишнего мусорного кода на сайте WordPress.

В первую очередь удалим все ненужные ссылки: RSS-ленты, WLW Manifest, RSD, версию WP, предыдущую и следующую записи, короткую ссылку.

Удаляем ненужные ссылки из head в WordPress

Для этого в functions.php нужно добавить следующий код.

//Отключение лишних ссылок в head
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'wp_generator');
remove_action('wp_head', 'feed_links',2);
remove_action('wp_head', 'feed_links_extra',3);
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'adjacent_posts_rel_link_wp_head');
remove_action('wp_head', 'wp_shortlink_wp_head',10,0);

Удаляем JSON REST API

С версии 4.4 WordPress создает технические страницы /wp-json/, которые могут индексироваться поисковыми системами. Вот скриншот из вебмастера Яндекса.

Скриншот показывает сколько страниц /wp-json/ в индексе

Чтобы этого избежать в functions.php, добавляем несколько строк кода.

/*--------Отключение и перенаправление c WP-json*/
// Отключаем сам REST API
 add_filter('rest_enabled', '__return_false');

// Отключаем фильтры REST API
 remove_action( 'xmlrpc_rsd_apis', 'rest_output_rsd' );
 remove_action( 'wp_head', 'rest_output_link_wp_head', 10, 0 );
 remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );
 remove_action( 'auth_cookie_malformed', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_expired', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_bad_username', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_bad_hash', 'rest_cookie_collect_status' );
 remove_action( 'auth_cookie_valid', 'rest_cookie_collect_status' );
 remove_filter( 'rest_authentication_errors', 'rest_cookie_check_errors', 100 );

// Отключаем события REST API
 remove_action( 'init', 'rest_api_init' );
 remove_action( 'rest_api_init', 'rest_api_default_filters', 10, 1 );
 remove_action( 'parse_request', 'rest_api_loaded' );

// Отключаем Embeds связанные с REST API
 remove_action( 'rest_api_init', 'wp_oembed_register_route' );
 remove_filter( 'rest_pre_serve_request', '_oembed_rest_pre_serve_request', 10, 4 );
   
//Отключаем type="application/json+oembed"
remove_action( 'wp_head', 'wp_oembed_add_discovery_links' );
remove_action( 'wp_head', 'rest_output_link_wp_head' );
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

Отключаем поддержку смайликов Emoji

С версии 4.2 WordPress добавил поддержку смайликов Emoji. В исходном коде в head появился вот такой JS и CSS код.

JS и CSS код добавляемый при подключении смайликов Emoji

Чтобы отключить поддержку смайликов, удалить лишний код и при этом уменьшить нагрузку на сервер, надо в functions.php добавить вот этот код.

//Полное отключение смайликов Emoji
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );

На этом буду завершать. Надеюсь, что данная статья была полезной. Интересующимся движком WordPress, рекомендую прочитать статью «Как создать свою тему для WordPress».

Используйте приведенные выше примеры, если знаете, что вам это нужно, и понимаете, что делаете. Не забывайте делать бэкап.

Похожие записи:

Добавить комментарийОтменить ответ

Нажимая на кнопку «Добавить», я даю согласие на обработку своих персональных данных в соответствии с политикой конфиденциальности