Рубрика: Функции

Лишние ссылки в header

Пришло время познакомить Вас с еще одной полезной функцией — remove_action(), которая работает на основе другой функции — remove_filter() и выступает в роли чистильщика хуков, удаляя функции, прикрепленные к какому-либо хуку-действия.

Открываем файл functions.php и в самый конец, перед знаком ?>, вставляем следующий код:

Как работает функция remove_action()?

Первым параметром функция принимает хук-действие, в нашем случаи wp_head.

Во-втором параметре указывается название функции, действие которой надо отменить.

Третьим параметром идет приоритет хука, который был установлен при добавлении (по умолчанию 10).

Четвертым параметром указывается число аргументов хука (по умолчанию 1).

Сохраняем изменения в functions.php и смотрим исходный код, лишних ссылок в header больше нет.

 

———————————

Как отличить полезную информацию от бесполезной или даже вредной? На самом деле не стоит пугаться, вредной информации не так уж много и в основном она выводится через wp_head() самим WordPress.

1.  Вы используете для написания или редактирования статей блог-клиенты? Я нет. Уверен, что многие веб-мастера даже не знают, что это такое. Намекну. Блог-клиент — это программа, типа Microsoft Word. Полный список блог-клиентов вы можете посмотреть тут.

Если для написания постов Вы используете редактор WordPress, то можно смело убирать еще одну строчку из исходного кода:

1 <link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://seo-mayak.com/xmlrpc.php?rsd" />

Но как эта ссылка появилась в header? В данном случаи к хуку wp_head() цепляется функция rsd_link(), которая и генерирует эту строчку.

Как удалить лишние ссылки с header я расскажу чуть позже, читайте статью до конца. Продолжим.

2. Несколько лет назад, после переноса базы данных с Денвера на хостинг, из-за недостатка знаний, на моем кулинарном блоге перестала работать функция вставки изображений через редактор WordPress.

Пока я разбирался в чем дело, а на это ушло несколько месяцев, пришлось искать выход из положения и им оказался сторонний редактор Windows Live Writer. Возможно как-нибудь я опишу данный редактор, но пока не будем на этом останавливаться.

Так вот, меня тогда мало интересовало, как Windows Live Writer подключается к блогу, но с пришествием времени я понял, что для подключения он ищет такую строчку:

1 <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://seo-mayak.com/wp-includes/wlwmanifest.xml" />

Генерируется функцией wlwmanifest_link().

Сейчас я не использую Windows Live Writer, поэтому и ссылка мне эта больше не нужна. Добавим в очередь на удаление.
3. Следующая строчка, кандидат на удаление, вызывает мое тихое удивление:

1 <link rel='shortlink' href='http://seo-mayak.com/?p=2840' />

Генерируется функцией wp_shortlink_wp_head().

Для каких целей WordPress генерирует короткую ссылку, которая по сути создает полный дубль, мне не понятно. Также я не нашел внятных объяснений у «бывалых». Все просто советуют избавиться о лишней ссылки и все.

4. Вот еще 2 строчки, которые по моему мнению не несут никакой пользы:

1 <link rel='prev' title='Готовая форма обратной связи на PHP без плагинов' href='http://mayak.ru/sozdanie-bloga/obxodimsya-bez-plaginov/php-forma-obratnoj-svyazi.html' />
2 <link rel='next' title='Динамическая карта сайта XML с помощью плагина All in One SEO Pack' href='http://mayak.ru/sozdanie-bloga/plaginy-wordpress/dinamicheskaya-karta-sajta-xml-plagin-all-in-one-seo-pack.html' />

Генерируется функцией adjacent_posts_rel_link_wp_head().

Это ни что иное как ссылки на предыдущую и следующую статьи. Для чего они были помещены в header непонятно. WordPress парой удивляет. То короткую ссылку зацепил на «веревку» wp_head(), еще и постраничную навигацию вывесил.

Не вижу никакой пользы от этих ссылок. Ведь есть карта сайта XML, а также карта сайта для посетителей, в которых все правильно изложено и робот не должен рассеивать ссылки.

Польза от данных строчек будет в том случаи, если на блоге есть очень большие статьи, которые делятся на несколько страниц. Тогда понятно, что роботу будет проще определиться: где начало, а где конец. Но при отсутствии таких постов, логика атрибутов prev и next не прослеживается. Будем от них избавляться.

5. Данная строчка не содержит ссылки, но от нее также желательно избавится:

1 <meta name="generator" content="WordPress 3.8.3" />

Генерируется функцией wp_generator().

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

6. Также, с помощью функции wp_head(), в header выводится ссылка на фид комментариев:

1 <link rel="alternate" type="application/rss+xml" title="SEO Маяк &raquo; Лента комментариев к &laquo;Правильная структура заголовков сайта. HTML теги h1 &#8212; h6 и их влияние на продвижение&raquo;" href="http://mayak.ru/seo-prodvizhenie/tonkosti-prodvizheniya/pravilnaya-struktura-zagolovkov-sajta-html-tegi-h1-h6-i-ix-vliyanie-na-prodvizhenie.html/feed" />

Генерируется функцией feed_links_extra().

Лично я, в качестве RSS-потока, использую feedburner, впрочем как и большинство блогеров и мне, в исходном коде, совершенно не нужна ссылка на встроенный в WordPress фид с комментариями. Поэтому будем расставаться и с этой строчкой.

Итого у меня получилось 6 пунктов с лишней информацией, от которой можно и нужно избавится. Кстати тем самым мы немного сократим HTML, если Вы помните есть такая рекомендация в PageSpeed.