Всем привет!
Проверил я свой блог на ошибки и увидел лишнее, которое нужно удалить.
Какие же ошибки были?
Ошибки, которые необходимо удалить:
- - ссылку на JSON REST API;
- - ссылку на WLW Manifest;
- - технические страницы wp-json;
- - дубли архивов дат;
- - ссылку shortlink.
Эти ссылки появились в WordPress 4.4. Для чего и зачем – я не знаю. Но раз сервис мне порекомендовал их удалить для оптимизации блога, значит, так я и сделаю.
Рекомендую и вам проверить ваш блог на наличие ошибок, у вас они тоже могут быть.
Для проверки сайта использовал сервис wpshop:
wpshop.biz/plugins/clearfy
Приступаю к чистке лишнего.
Необходимо удалить ссылку на JSON REST API
WP с версии 4.4 создает технические страницы /wp-json/, которые успешно индексируются поисковиками, и в индекс попадают мусорные страницы.
Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку
<link rel='http://api.w.org/' href='#' />
Пример:
Решение:
Удаляем 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" ENGINE="application/wlwmanifest+xml" href="http://ВАШ_САЙТ/wp-includes/wlwmanifest.xml" />
Пример:
Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:
//Удаление WLWManifest из кода WordPress remove_action('wp_head', 'wlwmanifest_link');
Удалить технические страницы wp-json
WP с версии 4.4 создает технические страницы /wp-json/, которые успешно индексируются поисковиками, и в индекс попадают мусорные страницы.
Как проверить у себя?
http://адрес_сайта/wp-json
Если открылась страничка с кодом, значит, у вас есть техническая страничка wp-json:
Решение
Откройте файл «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 );
После этого кода, если перейдете по адресу
http://адрес_сайта/wp-json
то вас вместо кода должна открыться главная страница сайта.
Удалить ссылку shortlink
Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку
<link rel='shortlink' href='#' />
Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:
//Удаление ссылки shortlink remove_action('wp_head', 'wp_shortlink_wp_head', 10, 0);
В ДОПОЛНЕНИЕ
На других сайтах я еще нашел вот такие ошибки:
Необходимо удалить мета-тег generator
Позволяет злоумышленникам узнать версию WP, установленную на сайте. Этот meta тег никакой полезной функции не несет.
Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку:
<meta name="generator" content="WordPressВЕРСИЯ_ВОРДПРЕСС" />
Пример:
Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:
//Удаление мета-тега generator remove_action('wp_head', 'wp_generator');
Необходимо удалить ссылку на RSD
По умолчанию WP выводит ссылку на RSD
Как проверить у себя?
Откройте исходный код вашего блога и найдите там ссылку:
<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://ВАШ_САЙТ/xmlrpc.php?rsd" />
Решение
Откройте файл «functions.php» вашей темы и сразу после тега «<?» впишите вот такой код:
//Удаление ссылки на RSD remove_action('wp_head', 'rsd_link');
Сайт отдает RSS ленты
Основная дыра, через которую будут воровать Ваш контент - RSS-ленты. Для статейных сайтов, сайтов-визиток, корпоративных сайтов - отключать обязательно.
Как проверить у себя?
Перейдите по адресу:
http://ВАШ_САЙТ/feed/
Если откроется страница с кодом
значит нужно дыру закрывать.
Решение
Вставьте в самом начале файла «.htaccess» вот такой код:
<ifmodule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !^.*(FeedBurner|FeedValidator) [NC] RewriteRule ^feed/?.*$ http://feeds.feedburner.com/Stepkinblog [L,NC,R=302] </ifmodule>
Только не забудьте поменять в коде «Stepkinblog» на ваш фидер
Теперь если вы перейдете по адресу:
http://ВАШ_САЙТ/feed/
то произойдет перенаправление стандартной RSS лены на ваш фидер от сервиса FeedBurner.
FeedBurner – это сервис RSS рассылки от компании Google.
Если вы не зарегистрированы там, тогда вам сюда:
http://feedburner.google.com/
Файл robots.txt не содержит всех необходимых правил!
После установки WP нет файла «robots.txt» и его приходится создавать вручную.
Как проверить у себя?
Перейдите в адресной строке по адресу:
http://адрес_сайта/robots.txt
Если не откроется код вот такого вида:
значит у вас нет файла «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: http://site.ru/sitemap.xml
Открыта возможность узнать логин администратора
Как проверить у себя?
В адресной строке ввести вот такой адрес:
http://адрес сайта.ru/?author=1
1 – это id пользователя.
В адресной строке откроется логин автора:
http://адрес сайта.ru /author/ВАШ_ЛОГИН/
Решение
Вставьте в самый конец файла «.htaccess» вот такой код:
RedirectMatch Permanent ^/author/login-admin http://ваш_сайт.ру
где, login-admin – нужно заменить на ваш реальный логин.
http://ваш_сайт.ру – адрес сайта или страница, на которую
Найдены дубли архивов пользователей
Как проверить у себя?
Напишите в адресной строке браузера и перейдите:
http://адрес_сайта/author/Ваш_Логин/
Решение
Если вы установили в верхний код в файл «.htaccess»:
RedirectMatch Permanent ^/author/login-admin http://ваш_сайт.ру
то и эта проблема с дублями архивов пользователей исчезнет.
Устранить код Emoji
WP с версии 4.2 добавил поддержку смайликов Emoji в исходный код для старых браузеров. Используется внешняя библиотека от Twitter. В 90% случаев это лишь создает лишний код и запросы к внешним ресурсам.
Как проверить у себя и решение я уже писал тут : как удалить на блоге Emojl.
Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓
Последние новости категории:
Похожие статьи
Популярные статьи:
-
Как узнать id компьютера
Дата: 29 марта 2013
Прокомментировано:90
просмотров: 330330 -
Размеры форматов листов А0 – А7
Дата: 23 января 2013
Прокомментировано:3
просмотров: 274683 -
Смешные логические загадки с подвохом, отгадки прилагаются
Дата: 12 ноября 2014
Прокомментировано:5
просмотров: 222435 -
Готовые макеты блоков для веб-страниц на HTML и CSS
Дата: 25 июня 2014
Прокомментировано:23
просмотров: 187485 -
Установка windows 7 на ноутбук
Дата: 18 декабря 2012
Прокомментировано:169
просмотров: 186559
22 Ответов на комментарий - Оптимизация WordPress (очень важная статья!)
Добавить комментарий
Метки: wordpress, без плагинов
По поводу логина автора, слава богу, он выводит все в нижнем регистре. Но отсюда следуют две вещи: блокировать это однозначно надо, и вот вам наглядное доказательство пользы использования символов разного регистра в логинах и паролях
Что-то не все методы сработали. Пробовал на двух сайтах. Не убрались дубли страниц, логин админа и не удалились технические страницы wp-json.
Некоторых перечисленных в статье проблем у меня не было, так что испробовал не всё.
Хочу спросить про RSS-ленты. Сдаётся мне, что я чего-то не понимаю.
Как мне видится, FeedBurner это не столько новостная лента, сколько автоматизированная рассылка. Посетителю сайта нужно на неё подписаться и потом он будет новости получать на почту. Ну и где тут новостная лента?
Если забить в Опере или даже в ИЕ адрес-сайта/feed то откроется симпатичный или не очень встроенный новостной ридер (без участия почты).
Только Хром почему-то такого по умолчанию не имеет.
Если правильно настроить в WordPress работу с RSS-лентами (постить туда только анонсы, а не целиком статьи), то как бы и криминала быть не должно, и пользователям удобно читать именно ленты новостей.
Стоит ли так опасаться RSS и тем более блокировать их?
В продолжение темы.
После установки расширения для Хрома он тоже стал читать RSS-ленты. Несколько коряво, но сносно. Не ожидал такого от хромого, тем более что Гугл уже отказалась от поддержки FeedBurner’a. Так что будущее его туманно.
Всё же рассылка – это рассылка, а новостная лента – это нечто другое. Стоит ли их смешивать?
Неожиданно, но вдруг всё актуально, и работает. Спасибо!)
Есть еще такие блоги, которые до сих пор используют логин “admin” или “administrator”.
По статистике, именно на эти логины само больше идет подбор пароля.
Коротко, может этого и хватит, чтобы не углубляться: RSS лента – это, в первую очередь , функционал, который позволяет владельцам сторонних ресурсов публиковать новости с вашего сайта на своих.
В принципе, подборы не страшны даже при пароле средней сложности и стандартном логине “admin”. Главное заюзать ф-цию sleep() в скрипте авторизации. Выставленная задержка в 2-3 сек (можно хоть 5-10 с уведомлением типа “Подождите, происходит авторизация”) один раз при авторизации не будет особо напрягать пользователя, а вот брутфорсеру принесет немало неудобств.
Спасибо за ценный комментарий!
Нам бы полностью готовый код, чтобы не думать и не гадать и испытать все, что Вы написали.
Так, а что там готового?
В файл, где происходит сверка логина и пароля перед этой самой сверкой дописать
Если бы я так объяснял своим читателям, то наверное читал бы я свой блог сам.
Так, sleep(5); – это и есть готовый код.
Прелесть этого метода в том, что абсолютно ничего менять не нужно в родном коде – нужно добавить лишь одну строку.
А по поводу файла, где происходит сверка логина и пароля, что еще можно добавить?
Название?
Так файл в каждом движке свой.
Код из него?
Он тоже разный для каждой CMS.
Могу расписать особенности работы веб-сервера, и то, как и почему, это будет работать. Но думаю, что в такие дебри лезть не стоит. Посему дал максимально лаконичный и универсальный ответ. )
“Так файл в каждом движке свой.” – Нас интересует CMS WordPress.
Если вы затронули эту тему, то будьте добры рассказать все до конца, чтобы у читателей не было вопросов.
Благодарю автора за такую своевременную информацию, она оказалась весьма полезной и нужной для меня, поскольку некоторое время назад, я обнаружила несколько полных копий моего сайта со всем содержимым. По данным из Яндекс вебмастера, вор использовал для копирования файлы /wp-json/, /feed, xmlrpc.php, /?p=2968, wp-includes/wlwmanifest.xml
При чем сделать полную копию он мог буквально за пару часов.
Остался только вопрос: замечено было, также использование
/comments/feed ,
/xmlrpc.php ,
/xmlrpc.php?rsd,
/wp-includes/wlwmanifest.xml
Можно ли и нужно ли их закрывать?
И еще вопрос, если несложно
Можно ли настроить редирект со страницы вида
/?p=2968 на
канонический url
название_сайта.ru/moda/odezda
?
И еще, что замечено, после установки кода для фида, он действительно теперь переправляет пользователя на страницу сайта в feedburner.com, но это, если мы берем site.ru/feed
а вот если вбить адрес конкретной статьи и в конце добавить /feed, то снова отображается код, только уже одной этой статьи.
То есть, можно сделать копию через фид статьи?
Здравствуйте, Жанна!
По поводу “xmlrpc.php”, почитайте вот эту статью “Уязвимость WordPress через файл xmlrpc.php“.
В robots.txt закройте их от индексации:
У меня есть бесплатный плагин, который автоматически создаст robots.txt. если у Вас его еще нет.
Вам нужна обычная настройка постоянных ссылок.
Почитайте вот тут:
/seo-optimizaciya-2/seo-optimizaciya-wordpress.html/
Жанна, любой текст можно скопировать, как бы вы его не защищали от копирования.
Огромное спасибо!!!
Действительно очень полезная статья! Вот только не получилось Скрыть логин администратора и Избавиться от дублей архивов пользователя После вставки кода, пишет страница недоступна, и выдаёт ошибку 500.
Возможно это как-то исправить?
Пожалуйста, Саша.
Возможно, вы что-то в коде пропустили. Так как ошибка 500, это внутренняя ошибка сервера.
Внимательно посмотрите и почитайте статью. Так как у меня все отлично работает.