BloGGood.ru

Блог Костаневича Степана

До Нового Года осталось:

Блог на разные темы, seo-оптимизация, раскрутка сайта, создание сайта, вкусные эффекты для сайта и многое другое…

Главная » Wordpress » Оптимизация WordPress (очень важная статья!)

Оптимизация WordPress (очень важная статья!)

2017-02-28 / Вр:13:29 / просмотров: 5427

Оптимизация WordPress (очень важная статья!)

Всем привет!
Проверил я свой блог на ошибки и увидел лишнее, которое нужно удалить.
Какие же ошибки были?
Ошибки, которые необходимо удалить:

  • - ссылку на JSON REST API;
  • - ссылку на WLW Manifest;
  • - технические страницы wp-json;
  • - дубли архивов дат;
  • - ссылку shortlink.

Оптимизация WordPress (очень важная статья!)

Эти ссылки появились в WordPress 4.4. Для чего и зачем – я не знаю. Но раз сервис мне порекомендовал их удалить для оптимизации блога, значит, так я и сделаю.
Рекомендую и вам проверить ваш блог на наличие ошибок, у вас они тоже могут быть.

Для проверки сайта использовал сервис wpshop:

wpshop.biz/plugins/clearfy

Приступаю к чистке лишнего.

Необходимо удалить ссылку на JSON REST API
WP с версии 4.4 создает технические страницы /wp-json/, которые успешно индексируются поисковиками, и в индекс попадают мусорные страницы.

Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку

<link rel='https://api.w.org/' href='https://ВАШ_САЙТ/wp-json/' />

Пример:

Оптимизация WordPress (очень важная статья!)

Решение:
Удаляем WP-JSON из кода WordPress
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:

//Удаление WP-JSON из кода WordPress
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 );

Удалить ссылку на WLW Manifest
По умолчанию WP выводит ссылку на WLW Manifest

Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://ВАШ_САЙТ/wp-includes/wlwmanifest.xml" />

Пример:

Оптимизация WordPress (очень важная статья!)

Увеличить изображение?

Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:

//Удаление WLWManifest из кода WordPress
remove_action('wp_head', 'wlwmanifest_link');

Удалить технические страницы wp-json 
WP с версии 4.4 создает технические страницы /wp-json/, которые успешно индексируются поисковиками, и в индекс попадают мусорные страницы.

Как проверить у себя?

https://адрес_сайта/wp-json

Если открылась страничка с кодом, значит, у вас есть техническая страничка wp-json:

Оптимизация WordPress (очень важная статья!)

Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:

// Удаление технической страницы wp-json
// Отключаем сам REST API
add_filter('rest_enabled', '__return_false');
// Отключаем события 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 );
// Отключаем фильтры 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 );

После этого кода, если перейдете по адресу

https://адрес_сайта/wp-json

то вас вместо кода должна открыться главная страница сайта.

Удалить ссылку shortlink
Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку

<link rel='shortlink' href='https:// ВАШ_САЙТ/' />

Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:

//Удаление ссылки shortlink
remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);

В ДОПОЛНЕНИЕ

На других сайтах я еще нашел вот такие ошибки:

Необходимо удалить мета-тег generator
Позволяет злоумышленникам узнать версию WP, установленную на сайте. Этот meta тег никакой полезной функции не несет.

Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку:

<meta name="generator" content="WordPressВЕРСИЯ_ВОРДПРЕСС" />

Пример:

Оптимизация WordPress (очень важная статья!)

Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:

//Удаление мета-тега generator
remove_action('wp_head', 'wp_generator');

Необходимо удалить ссылку на RSD
По умолчанию WP выводит ссылку на RSD

Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку:

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="https://ВАШ_САЙТ/xmlrpc.php?rsd" />

Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:

//Удаление ссылки на RSD
remove_action('wp_head', 'rsd_link');

Сайт отдает RSS ленты
Основная дыра, через которую будут воровать Ваш контент - RSS-ленты. Для статейных сайтов, сайтов-визиток, корпоративных сайтов - отключать обязательно.

Как проверить у себя?
Перейдите по адресу:

https://ВАШ_САЙТ/feed/

Если откроется страница с кодом

Оптимизация WordPress (очень важная статья!)

значит нужно дыру закрывать.

Решение
Вставьте в самом начале файла «.htaccess» вот такой код:

<ifmodule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC]
RewriteRule ^feed/?.*$ https://feeds.feedburner.com/Stepkinblog [L,NC,R=302]
</ifmodule>

Только не забудьте поменять в коде «Stepkinblog» на ваш фидер
Теперь если вы перейдете по адресу:

https://ВАШ_САЙТ/feed/

то произойдет перенаправление стандартной RSS лены на ваш фидер от сервиса FeedBurner.
FeedBurner – это сервис RSS рассылки от компании Google.
Если вы не зарегистрированы там, тогда вам сюда:
https://feedburner.google.com/

Файл robots.txt не содержит всех необходимых правил!
После установки WP нет файла «robots.txt» и его приходится создавать вручную.

Как проверить у себя?
Перейдите в адресной строке по адресу:

https://адрес_сайта/robots.txt

Если не откроется код вот такого вида:

Оптимизация WordPress (очень важная статья!)

значит у вас нет файла «robots.txt» и его нужно создать в корне сайта.

Решение
Создайте файл «robots.txt» в корне сайта вот таким кодом:

User-agent: Yandex
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /comments
Disallow: */trackback
Disallow: */embed
Disallow: */feed
Disallow: /cgi-bin
Disallow: *?s=
Host: site.ru

User-agent: *
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/themes
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /comments
Disallow: */trackback
Disallow: */embed
Disallow: */feed
Disallow: /cgi-bin
Disallow: *?s=

Sitemap: https://site.ru/sitemap.xml

Открыта возможность узнать логин администратора
Как проверить у себя?

В адресной строке ввести вот такой адрес:

https://адрес сайта.ru/?author=1

1 – это id пользователя.

В адресной строке откроется логин автора:

https://адрес сайта.ru /author/ВАШ_ЛОГИН/

Решение

Вставьте в самый конец файла «.htaccess» вот такой код:

RedirectMatch Permanent ^/author/login-admin https://ваш_сайт.ру

где, login-admin – нужно заменить на ваш реальный логин.
https://ваш_сайт.ру – адрес сайта или страница, на которую

Найдены дубли архивов пользователей
Как проверить у себя?

Напишите в адресной строке браузера и перейдите:

https://адрес_сайта/author/Ваш_Логин/

Решение
Если вы установили в верхний код в файл «.htaccess»:

RedirectMatch Permanent ^/author/login-admin https://ваш_сайт.ру

то и эта проблема с дублями архивов пользователей исчезнет.

Устранить код Emoji
WP с версии 4.2 добавил поддержку смайликов Emoji в исходный код для старых браузеров. Используется внешняя библиотека от Twitter. В 90% случаев это лишь создает лишний код и запросы к внешним ресурсам.

Как проверить у себя и решение я уже писал тут : как удалить на блоге Emojl.

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Получай обновления блога!!! Подпишись:

Популярные статьи:

22 Ответов на комментарий - Оптимизация WordPress (очень важная статья!)

  1. Кирилл

    По поводу логина автора, слава богу, он выводит все в нижнем регистре. Но отсюда следуют две вещи: блокировать это однозначно надо, и вот вам наглядное доказательство пользы использования символов разного регистра в логинах и паролях

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Есть еще такие блоги, которые до сих пор используют логин “admin” или “administrator”.
    По статистике, именно на эти логины само больше идет подбор пароля.

    Ответить

    nesnayka отвечает:

    В принципе, подборы не страшны даже при пароле средней сложности и стандартном логине “admin”. Главное заюзать ф-цию sleep() в скрипте авторизации. Выставленная задержка в 2-3 сек (можно хоть 5-10 с уведомлением типа “Подождите, происходит авторизация”) один раз при авторизации не будет особо напрягать пользователя, а вот брутфорсеру принесет немало неудобств. :smile:

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Спасибо за ценный комментарий!
    Нам бы полностью готовый код, чтобы не думать и не гадать и испытать все, что Вы написали.

    Ответить

    nesnayka отвечает:

    Так, а что там готового?
    В файл, где происходит сверка логина и пароля перед этой самой сверкой дописать

    sleep(5);
    Степан => автор блога

    Степан => автор блога отвечает:

    Если бы я так объяснял своим читателям, то наверное читал бы я свой блог сам. :grin:

    nesnayka отвечает:

    Так, sleep(5); – это и есть готовый код.
    Прелесть этого метода в том, что абсолютно ничего менять не нужно в родном коде – нужно добавить лишь одну строку.
    А по поводу файла, где происходит сверка логина и пароля, что еще можно добавить?
    Название?
    Так файл в каждом движке свой.
    Код из него?
    Он тоже разный для каждой CMS.

    Могу расписать особенности работы веб-сервера, и то, как и почему, это будет работать. Но думаю, что в такие дебри лезть не стоит. Посему дал максимально лаконичный и универсальный ответ. )

    Степан => автор блога

    Степан => автор блога отвечает:

    “Так файл в каждом движке свой.” – Нас интересует CMS WordPress.
    Если вы затронули эту тему, то будьте добры рассказать все до конца, чтобы у читателей не было вопросов.

  2. Wal

    Что-то не все методы сработали. Пробовал на двух сайтах. Не убрались дубли страниц, логин админа и не удалились технические страницы wp-json.
    Некоторых перечисленных в статье проблем у меня не было, так что испробовал не всё.
    Хочу спросить про RSS-ленты. Сдаётся мне, что я чего-то не понимаю.
    Как мне видится, FeedBurner это не столько новостная лента, сколько автоматизированная рассылка. Посетителю сайта нужно на неё подписаться и потом он будет новости получать на почту. Ну и где тут новостная лента?
    Если забить в Опере или даже в ИЕ адрес-сайта/feed то откроется симпатичный или не очень встроенный новостной ридер (без участия почты).
    Только Хром почему-то такого по умолчанию не имеет.
    Если правильно настроить в WordPress работу с RSS-лентами (постить туда только анонсы, а не целиком статьи), то как бы и криминала быть не должно, и пользователям удобно читать именно ленты новостей.
    Стоит ли так опасаться RSS и тем более блокировать их?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Коротко, может этого и хватит, чтобы не углубляться: RSS лента – это, в первую очередь , функционал, который позволяет владельцам сторонних ресурсов публиковать новости с вашего сайта на своих.

    Ответить

  3. Wal

    В продолжение темы.
    После установки расширения для Хрома он тоже стал читать RSS-ленты. Несколько коряво, но сносно. Не ожидал такого от хромого, тем более что Гугл уже отказалась от поддержки FeedBurner’a. Так что будущее его туманно.

    Всё же рассылка – это рассылка, а новостная лента – это нечто другое. Стоит ли их смешивать?

    Ответить

  4. Кирилл Катровский

    Неожиданно, но вдруг всё актуально, и работает. Спасибо!)

    Ответить

  5. Жанна

    Благодарю автора за такую своевременную информацию, она оказалась весьма полезной и нужной для меня, поскольку некоторое время назад, я обнаружила несколько полных копий моего сайта со всем содержимым. По данным из Яндекс вебмастера, вор использовал для копирования файлы /wp-json/, /feed, xmlrpc.php, /?p=2968, wp-includes/wlwmanifest.xml
    При чем сделать полную копию он мог буквально за пару часов.
    Остался только вопрос: замечено было, также использование
    /comments/feed ,
    /xmlrpc.php ,
    /xmlrpc.php?rsd,
    /wp-includes/wlwmanifest.xml
    Можно ли и нужно ли их закрывать?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Здравствуйте, Жанна!
    По поводу “xmlrpc.php”, почитайте вот эту статью “Уязвимость WordPress через файл xmlrpc.php“.

    В robots.txt закройте их от индексации:

    Disallow: /xmlrpc.php
    Disallow: */comments/
    Disallow: /wp-includes 
    

    У меня есть бесплатный плагин, который автоматически создаст robots.txt. если у Вас его еще нет.

    Ответить

  6. Жанна

    И еще вопрос, если несложно :smile:
    Можно ли настроить редирект со страницы вида
    /?p=2968 на
    канонический url
    название_сайта.ru/moda/odezda
    ?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Вам нужна обычная настройка постоянных ссылок.
    Почитайте вот тут:
    https://bloggood.ru/seo-optimizaciya-2/seo-optimizaciya-wordpress.html/

    Ответить

  7. Жанна

    И еще, что замечено, после установки кода для фида, он действительно теперь переправляет пользователя на страницу сайта в feedburner.com, но это, если мы берем site.ru/feed
    а вот если вбить адрес конкретной статьи и в конце добавить /feed, то снова отображается код, только уже одной этой статьи.
    То есть, можно сделать копию через фид статьи?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Жанна, любой текст можно скопировать, как бы вы его не защищали от копирования.

    Ответить

  8. саша

    Огромное спасибо!!! :arrow: :rose:

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Пожалуйста, Саша.

    Ответить

  9. Богдан

    Действительно очень полезная статья! Вот только не получилось Скрыть логин администратора и Избавиться от дублей архивов пользователя :sad: После вставки кода, пишет страница недоступна, и выдаёт ошибку 500.
    Возможно это как-то исправить?

    Ответить

    Степан => автор блога

    Степан => автор блога отвечает:

    Возможно, вы что-то в коде пропустили. Так как ошибка 500, это внутренняя ошибка сервера.
    Внимательно посмотрите и почитайте статью. Так как у меня все отлично работает.

    Ответить

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

;-) :| :x :twisted: :smokes: :smile: :shock: :sad: :rose: :roll: :razz: :pop-corne: :oops: :o :mrgreen: :lol: :idea: :grin: :gazeta: :evil: :cry: :cool: :coffe: :arrow: :???: :?: :!:

Чтобы добавить в комментарий код HTML, PHP, CSS, JavaScript, нужно сделать так: [code] ваш код [/code]

Метки: ,

Мои цели на 2017 год:

1). Закончить тему «Bootstrap»

2). Закончить тему «Все про PHP и MySQL»

3). Довести количество статей до 750

4). Создать портфолио и мини интернет-магазин шаблонов

5). Создать книгу

6). Довести количество статей до 800

7). Добиться посещаемости 3000 человек/сутки

8). Увеличить число подписчиков до 250

Статистика по блогу

Количество записей на блоге: 788
Количество страниц на блоге: 20
Количество рубрик на блоге: 28
Количество меток на блоге: 72
Количество комментариев на блоге: 4419