Удаляем WP-JSON из кода WordPress

WordPress оптимизация сайта

После очередного обновления самой популярной CMS для блогов WordPress администраторы сайтов столкнулись с ссылками WP-JSON скриптов в исходном коде

В данной системе последнее время внедряется много лишних функций, которые кроме улучшений, как правило, ненужных рядовому пользователю, приносят и вред. Вред заключается в некотором замедлении загрузки сайта, что нехорошо сказывается на ранжируемость со стороны поисковых систем, так все скрипты с сайта грузятся в один поток и блокируют загрузку остального содержимого страницы (картинок, текста). Также замечено, что данная технология вызывает дублирование путей к содержимому сайта (картинок). Теперь, для того, чтобы проверить сайт на битые ссылки придётся просматривать ещё и простыню с ссылками, которые сгенерировал WP-JSON API.

Для чего WP-JSON нужен?

WP-JSON API от https://api.w.org это по сути своей интерфейс для управления сайтом, работающим на WordPress. Т.е. можно брать и использовать данный API для любых разработок, так или иначе, связанных с данной системой. Будь то удалённое управление (тот же Web Shell), совместная работа, программный интерфейс для работы прямо с компьютера без входа в админ панель. Разработкой этой в WordPress занимались уже давно — вот внедрили. Что это принесло обычным блогерам и простым администраторам сайтов, думаю, что ничего хорошего. Т.е. пока выгоды нет совсем, но уже есть потенциальные дыры, через которые ушлые ребята могут подбирать пароли для админки WordPress несколько быстрее, чем прежде.
Но ведь разработчики WordPress думают не только о сегодняшнем дне, но и светлом будущем для нас всех. Спасибо.

Как удалить WP-JSON из кода WordPress

Сейчас разберёмся как удалить из кода ссылки WP-JSON. Делается это тремя строчками в файле functions.php или через плагин. Второй способ несколько безопаснее и удобнее в некоторых случаях.

В целом оба способа аналогичны лишь с той разницей, что плагин можно безопасно установить через админ панель без входа на сервер. Нет нужды заходить через FTP, необходимо загрузить ZIP архив с плагином из раздела: Плагины ->Добавить новый -> Загрузить плагин. Надеюсь все в курсе, что редактировать файл function.php через панель администратора — самоубийственно.

Код для удаления JSON через файл темы functions.php:

//Remove JSON API links in header html
remove_action( 'wp_head', 'rest_output_link_wp_head');
remove_action( 'wp_head', 'wp_oembed_add_discovery_links');
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

Необходимо добавить этот код в самый конец functions.php и сохранить.

Код для удаления JSON ссылок через плагин Remove script JSON:

<?php
* ====================================
* Plugin Name: Remove script JSON
* Description: Убирает скрипты в подвал,
удаляет emoji, wlwmanifest_link, wp_shortlink, feed_links,
feed_links_extra, rsd_link; удаляет скрипты wp-json
* Version: 1.0
* ====================================
function functionsphp_head_info(){
}
//Remove JSON API links in header html
remove_action( 'wp_head', 'rest_output_link_wp_head');
remove_action( 'wp_head', 'wp_oembed_add_discovery_links');
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

Скачать плагин для удаления JSON ссылок можно здесь Remove script JSON.

Данный способ использования кода более безопасен в использовании, нежели вставка кода в файл functions.php. WordPress устроен таким образом, что при внедрении любого кода через плагины запускает код в безопасном режиме, если содержимое плагина вызвало падение системы — отключает его с предупреждение об ошибке. Если же внедрить код сразу в файл темы functions.php, то система обработает его в обычном режиме — ошибки в коде вызовут ошибку CMS и сайт не будет работать пока ошибка в коде не будет исправлена.

Так же предлагаю полезный плагин, который помогает вылечить от некоторых современных болезней WordPress последних версий

PageSpeed для сайта hpc.by

Плагин состоит из нескольких функциональных блоков и способен:

  • переместить все скрипты из header сайта в footer (сделать это рекомендует Google для ускорения загрузки сайта) и повышения рейтинга PageSpeed Insights;
  • удалить emoji, wlwmanifest, feed в WordPress;
  • удалить ссылки WP-JSON

<?php
* ====================================
* Plugin Name: Remove script
* Description: убираем все скрипты в подвал сайта; удаляем wp-json, emoji, wlwmanifest_link, wp_shortlink,
feed_links, feed_links_extra, rsd_link;
* ====================================
function functionsphp_head_info(){
}
//Remove scripts to footer
function footer_enqueue_scripts(){
remove_action('wp_head','wp_print_scripts');
remove_action('wp_head','wp_print_head_scripts',9);
remove_action('wp_head','wp_enqueue_scripts',1);
add_action('wp_footer','wp_print_scripts',5);
add_action('wp_footer','wp_enqueue_scripts',5);
add_action('wp_footer','wp_print_head_scripts',5);
}
add_action('after_setup_theme','footer_enqueue_scripts');
//Remove emoji, wlwmanifest,feed
remove_action('wp_head', 'print_emoji_detection_script', 7);
remove_action('wp_print_styles', 'print_emoji_styles');
remove_action('wp_head', 'wlwmanifest_link');
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
remove_action('wp_head', 'feed_links_extra', 3);
remove_action('wp_head', 'rsd_link');
remove_action('wp_head', 'feed_links', 2);
remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );
//Remove JSON API links in header html
remove_action( 'wp_head', 'rest_output_link_wp_head');
remove_action( 'wp_head', 'wp_oembed_add_discovery_links');
remove_action( 'template_redirect', 'rest_output_link_header', 11, 0 );

Скачать данный плагин можно по ссылке с нашего сайта здесь — Remove_Script.zip.
Установить его можно обычным способом, указав путь к файлу через админ панель в разделе Плагины сайта WordPress.

Немного про оптимизацию сайта на WordPress или как быстро набрать более 90 баллов в PageSpeed Insights

Напомню, что путём перемещения скриптов JS и файлов CSS в подвал сайта, можно повысить шанс продвинуть сайт в ТОП Google, сделать это можно с помощью плагина Remove_Script.zip. С его помощью можно набрать дополнительные 20 баллов в PageSpeed Insights, что поможет сайту быть более эффективным.

Было:

PageSpeed Insights 70 баллов

Стало:

90 баллов в PageSpeed Insights 90 баллов
Если в процессе решения данной проблемы возникнут вопросы, предложения (или код откажется работать) — прошу написать об этом в комментариях.

Читайте также

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *