Wp head


@cale_b My plugins are based on jQuery library and calling the jQuery from the wp_head() function was not successful on this way

wp_enqueue_script(‘jquery’, ‘get_stylesheet_uri(); . ‘js/jquery.min.js’);

the proper way is adding this to the header.php before everything…

<?php wp_enqueue_script("jquery"); ?> <?php wp_head(); ?> 

It’s very important that you call jquery first before the wp_head(); hook of the other imports… The WordPress comes with the jQuery library because he is using it for the wp-admin pages and some other $post and $get requests on the page… Using their script is much more secure and easier way then adding your own jquery.min.js file inside the themes directory…

wp_head(); function is just the best way calling the stylesheets but when it gets to the Javascripts and Javascript libraries it can get buggy.

Also note that sometimes the WordPress wont render your ‘ $ ‘ as a jQuery variable and you will get errors for TypeError, which of course is correct. In that case you should change all of the ‘ $ ‘ with ‘ jQuery ‘ which is also a defined variable inside the WordPress jQuery library…

Also note that sometimes you will need an inline javascript, etc

 

<script> addEventListener("load", function() { setTimeout(hideURLbar, 0); }, false); function hideURLbar(){ window.scrollTo(0,1); } </script>

All of these inline scripts should not be inside your index.php nor your header.php nor footer.php… You can list all of them inside another your-inline-scripts.js and call them like this just where they should have been listed before like this:

 <script type="text/javascript"  src="<?php bloginfo("template_url"); ?>/js/your-inline-scripts.js"></script> 

or

<script type="text/javascript"  src="<?php echo get_stylesheet_directory_uri(); ?>/js/yourScript.js"></script> 

I prefer this second option…

stackoverflow.com

Зачем это нужно

Благодаря этому нехитрому действию мы избавились от кучи мета-тегов, которые по умолчанию выводит WordPress при помощи функции wp_head(), и получили следующие преимущества:

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

Что это всё означает

Остановимся на каждой строчке отдельно. Это уже для любителей вникнуть в детали.

Скрываем используемую версию WordPress

Эта информация в коде ни к чему. Зачем кому-то (кроме вас) знать версию вашего WordPress? Как раз для этого мы используем:

remove_action('wp_head','wp_generator');

В результате исчезнет мета-тег, который обычно в коде выглядит как-то так:

<meta name="generator" content="WordPress 4.1.1" />

Блог-клиенты

Если вы не используете так называемые «блог-клиенты» (программы и сервисы для публикации записей в блог), то эти строчки помогают устранить ссылки для блог-клиентов:

remove_action('wp_head','wlwmanifest_link');  remove_action('wp_head','rsd_link');

Таким образом, мы избавились от следующих конструкций:

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="http://wp-fun.ru/xmlrpc.php?rsd" />  <link rel="wlwmanifest" type="application/wlwmanifest+xml" href="http://wp-fun.ru/wp-includes/wlwmanifest.xml" />  

Ссылки RSS

Убрать из кода ссылки на RSS-ленты помогут эти строчки:

remove_action('wp_head','feed_links_extra', 3);  remove_action('wp_head','feed_links', 2);

Первая строчка убирает дополнительные RSS-ленты (ленты комментариев, например), а вторая — основную. Чаще всего они не нужны.

Ещё ссылки

Наконец, остальные строки изничтожают массу бесполезных в большинстве случаев ссылок:

remove_action('wp_head','wp_shortlink_wp_head');  remove_action('wp_head','adjacent_posts_rel_link_wp_head');  remove_action('wp_head','rel_canonical');  remove_action('wp_head','index_rel_link');

Первая строчка убирает короткую ссылку, вторая — ссылки на следующий и предыдущий посты, третья — каноническую ссылку (у нас для этого есть SEO-плагины), а четвёртая — ссылку на главную (функция index_rel_link с версии WordPress 3.3.0 считается устаревшей).

В результате мы потратили пять минут (максимум) и сделали код нашего сайта значительно чище и лучше.

wp-fun.ru

Базовая оптимизация wordpress header:

Некоторые вставки в верхнюю часть вашего сайта используют хуки для wp_head


. Убрать эту функцию не получится, ведь если это сделать, то вместе с ней исчезнут и полезные куски кода, которые необходимы для сайта. Но тут на помощь к нам приходит файл с функциями functions.php. Открываем его и вносим правки, что я дал ниже.

 

Уберем ссылки на rss категории:

 

Уберем ссылки на основной rss, а также rss комментариев:

 

Удаляем link rel=EditURI, сервис Really Simple Discovery:

 

Удаляем Windows Live Writer (публикация постов к примеру с Microsoft Word и т.п).:

 

Удаляем вывод версии WordPress:

 

Удалим различные ссылки при отображении постов: следующий, предыдущий, короткий url:

 

 

Убираем остальной код из движка WordPress:

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

 

Удаляем стили .recentcomments, они появляются при выводе виджета «последние комментарии»:

 

В WordPress вы могли увидеть достаточно стремный код Emoji, поясню и пролью свет на это. Это код поддержки смайликов, удалить его можно вставив вот эти строки:

 

 

Убираем лишний код плагинов и темы:


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

 

Удаляем стили из модуля WP-Syntax, в нем стилей достаточно мало и располагаются они в файле wp-syntax.css, их я переместил в основной style.css:

 

Удаляем вывод информации о версии, которую вставляет модуль qTranslate-X:

 

Удаляем вывод стилей и скриптов от модуля Contact Form 7, там где он не используется:

 

Удаляем стили от модуля WP-PageNavi на версии 2.5.0 (на более высоких версиях это делается через настройки модуля в админке):

 

Удаляем вывод стилей от модуля Yet Another Related Posts Plugin, их также можно внести в основной файл (т.к. их мало: widget.css, related.css и yarpp-thumbnails-yarpp-thumbnail):

 

Если вы хотите убрать стили и скрипты из какого-либо модуля, то найдите в модуле строку следующего типа, он подключает экшн в ту или иную часть сайта:

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

 

 

Как убрать версию из скриптов/стилей в WordPress:


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

Удаляем версии WordPress со вех возможных страниц, RSS лент, всех скриптов и стилей:

 

Как удалить wp-json и oembed в WordPress:

Начиная с версии WordPress 4.4 ввели дополнительные функции, которые генерирует огромное количество технических страниц. Они хорошо индексируются поисковыми системами, из-за чего возникают проблемы с ранжированием. А это как вы понимаете лишний мусор, мешающий нашему сайту нормально развиваться. Страниц появляется очень много и все они не несут никакой ценности, только один хлам. Избавившись от этого, мы уберем ряд критических ошибок при индексировании.:

 

Удаляем поддержку REST API:

 

Дополнительные правки в header.php:

Дополнительно вы можете удалить следующий код из вашего движка, он особой роли не несет и как по мне он не к чему в нем:

 

Чистим заголовки сервера WordPress:

Для чего нам это нужно? Всё просто, если к примеру мы откроем firebug и взглянем на запись заголовка ответа сервера, то найдем кучу мусора, который в идеале нужно бы убрать, этим мы и займемся далее.


 

Удаляем Link rel=shortlink:

 

Удаляем X-Pingback:

 

Удаляем X-Powered-By:

 

Вот и всё, мы проделали с вами достаточно большую, НО полезную работу для нашего блога, по внутренней оптимизации WordPress. Это будет полезно во-первых для SEO оптимизации и дальнейшего продвижения блога, а во-вторых для красоты исходного кода и увеличения производительности. Если есть вопросы или какие-то моменты я упустил, напишите об этом в комментариях, посмотрим вместе всё…

culabra.ru

Удаляем 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'.  

_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».

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

zyubin.ru

Wp headЕсли посмотреть исходный код чистой темы на WordPress, то можно заметить, что в теге <head> выводится кучу ненужной ерунды — вот её мы и уберем, тем самым сделаем небольшую оптимизацию WordPress header.


Оказывается, большинство ненужных элементов реализуется с помощью функции wp_head(). Но просто так, в html коде, её удалять не рекомендуется, потому как это негативно скажется на работе блога. Нам нужно удалить лишь некоторые элементы, чем мы и займёмся.

Прежде всего, уберем вывод версии вордпресс. В исходном коде это выглядит так:

<meta name="generator" content="WordPress 3.2.1" />

Зачем? Как правило, разработчики CMS при обновлении рассказывают что нового добавили в новую версию, какие проблемы были в старых версиях. А зная текущую версию движка сайта, хакеру проще взломать его. Доброжелателей хватает.

Так что не будем версией светить. Для этого необходимо добавить одну строчку в файле functions.php, который находится в папке с вашей темой:

<?php remove_action ('wp_head', 'wp_generator'); ?>

Через функцию wp_head также выводятся и другие ненужные мета-теги. Удаляем их с помощью этого кода (добавляем в тот же файл functions.php):

  <?php  remove_action( 'wp_head', 'feed_links_extra', 3 );  remove_action( 'wp_head', 'feed_links', 2 );  remove_action( 'wp_head', 'rsd_link' );  remove_action( 'wp_head', 'wlwmanifest_link' );  remove_action( 'wp_head', 'index_rel_link' );  remove_action( 'wp_head', 'start_post_rel_link', 10, 0 );  remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );  remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 );  remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );  ?>  

И пару слов о том, что мы удаляем.

feed_links_extra — вывод RSS фида для записей, тегов, рубрик и т.д. Таким образом, мы запрещаем создавать такие фиды, но тем не менее, они будут доступны, если добавить /feed в конец урла.

feed_links — формально запрещаете появление ссылок на основную RSS ленту и ленту комментариев. Но дополнительно еще нужно удалить такие строки в файле header.php:

  <link title="RSS Main Feed" rel="alternate" type="application/rss+xml" href="<?php bloginfo('rss2_url'); ?>" />  <link title="RSS Comment Feed" rel="alternate" type="application/rss+xml" href="<?php bloginfo('comments_rss2_url'); ?>" />  

rsd_link и wlwmanifest_link — используется различными блог-клиентами для публикации записей в блоге.

index_rel_link, parent_post_rel_link, start_post_rel_link, adjacent_posts_rel_link_wp_head — это ссылки на главную страницу, на первую запись, на предыдущую и следующую запись и связь с родительской записью.

wp_shortlink_wp_head — короткая ссылка к текущей странице.

Некоторые из них возможно не будут работать в разных версиях WordPress, работоспособность проверена для версии 3.2.1. Правильные названия функций всегда можно посмотреть в файле wp-includes/default-filters.php

korchik.com

Откуда берется информация в head

Ненужные нам мета-теги выводятся с помощью wp_head(). Удалять ее вызов категорически нельзя, она отвечает за подключение стилей и скриптов темы и плагинов.

Чтобы удалить вывод лишней информации в <head>, воспользуемся функцией remove_action — она удалит вызов указанной функции (второй параметр), подключенной к определенному хуку (первый параметр).

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

Вызов remove_action можно добавить напрямую:

remove_action( 'wp_head', 'wp_generator' );

Или обернуть в функцию и подключить:

  1. к хуку after_setup_theme при добавлении в файл functions.php темы:
    function delete_junk_from_header() { remove_action( 'wp_head', 'wp_generator' ); } add_filter( 'after_setup_theme', 'delete_junk_from_header' );
  2. или к хуку plugins_loaded при добавлении в свой плагин FunctionsPHP:
    function delete_junk_from_header() { remove_action( 'wp_head', 'wp_generator' ); } add_action( 'plugins_loaded', 'delete_junk_from_header' );

Полный список функций, удаляющих мусор WordPress

Вот полный список экшенов, которыми я пользуюсь:

remove_action( 'wp_head', 'feed_links', 2 ); // Удаляет ссылки RSS-лент записи и комментариев  remove_action( 'wp_head', 'feed_links_extra', 3 ); // Удаляет ссылки RSS-лент категорий и архивов    remove_action( 'wp_head', 'rsd_link' ); // Удаляет RSD ссылку для удаленной публикации  remove_action( 'wp_head', 'wlwmanifest_link' ); // Удаляет ссылку Windows для Live Writer    remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0); // Удаляет короткую ссылку  remove_action( 'wp_head', 'wp_generator' ); // Удаляет информацию о версии WordPress  remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 ); // Удаляет ссылки на предыдущую и следующую статьи    // отключение WordPress REST API  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 );  // устаревшие функции  // используйте только для WordPress до версии 3.2 включительно   if ( get_bloginfo('version') <= '3.2' ) {     remove_action( 'wp_head', 'adjacent_posts_rel_link', 10, 0 ); // Удаляет ссылки на предыдущую и следующую статьи   remove_action( 'wp_head', 'index_rel_link'); // Удаляет ссылку на главную страницу    remove_action( 'wp_head', 'parent_post_rel_link', 10, 0 ); // Удаляет ссылку на родительскую страницу    remove_action( 'wp_head', 'start_post_rel_link', 10, 0 ); // Удаляет ссылку на первую запись    }

Теперь немного уточнений.

Первая и вторая строчка удалят все ссылки на RSS-ленты. При удалении функции feed_links (первая строка), позаботьтесь о подключении ссылки на главную RSS-ленту блога.

При удалении RSD ссылки (третья строка), убедитесь, что не пользуетесь удаленной публикацией.

Если регулярно обновляете WordPress и его версия выше 3.2, то нет необходимости использовать последний блок с проверкой версии и удалением функции для устаревшей версии CMS.

avovkdesign.com

Всем привет! Сегодня на seo-mayak.com я хочу рассказать об одной очень важной функции WordPress, которая называется wp_head(), а также мы наведем порядок в header и вытравим от туда лишние ссылки.

Не так давно, в статье «Оптимизация WordPress. Нагрузка на сервер и как ее снизить» мы копались в файле header.php, сокращая количество запросов к БД. Сейчас же речь пойдет немного о другом, но тема также касается нагрузки, которую несет сервер.

Говорить мы будем о лишних ссылках, которые генерируются WordPress или сторонними плагинами и выводятся в header с помощью функции wp_head() между тегами <head></head>. По данным ссылкам ходят различные боты, полезные и не очень, что создает дополнительную нагрузку на сервер.

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

wp_head

Итак, что это за функция такая wp_head() и как она работает? Действительно не мешало бы разобраться. Поехали!

Если заглянуть в файл header.php, то там, обычно перед закрывающим тегом </head>, мы найдем такую строчку:

<?php wp_head(); ?>  

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

После я принялся выяснять, что это за функция такая и с чем ее «едят». Оказалось wp_head() —  это не просто функция, а так называемый — хук.

На заметку! Хук (hook с англ. зацепка, крючок) — это своего рода функция-перехватчик, с помощью которой можно повлиять на роботу той или иной функции.

Надо сказать, что хуки бывают двух видов: хуки-фильтры и хуки-действия.

Хук-фильтр способен перехватывать работу функций и вносить в их некие корректировки, которые не изменят функцию полностью, но повлияют на окончательный результат. Не так давно, для добавления картинок в RSS-ленту, мы как раз использовали хук-фильтр.

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

Функция wp_head() как раз относится к тем самым хукам-действий, но имеет свою особенность. Работает данный хук на основе другой функции, которая называется —do_action().

Я сейчас не стану подробно описывать принцип действия функции do_action(), так как в будущем собираюсь посветить ей отдельную статью, так что не примените подписаться на обновления блога.

Итак, что же такого особенного в хуке wp_head()? Если включить воображение и попытаться объяснить все человекопонятным языком, то функцию wp_head() можно сравнить веревкой, которая натянута между тегами <head></head>. Пространство между этими тегами называется header.

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

Также, «волшебной» веревкой пользуются плагины, например такие, как All in One SEO Pack, который с помощью wp_head() выводит в header мета теги: title, description, keywords и др.

Для примера я приведу выдержку из исходного кода SEO Маяк, на которой наглядно продемонстрировано, сколько информации плагин All in One SEO Pack выводит в header, через функцию wp_head():

<!-- All in One SEO Pack 2.1.5 by Michael Torbert of Semper Fi Web Design[218,286] -->  <link rel="author" href="https://plus.google.com/u/0/112550732745635908043" />  <meta name="description" content="Сегодня на seo-mayak.com мы продолжим выполнять рекомендации PageSpeed и разберем пункт &quot;Сократите CSS&quot;, что позволит еще немного ускорить загрузку сайта." />    <meta name="keywords" content="сократить css, ускорить загрузку сайта" />    <link rel="canonical" href="/sozdanie-bloga/skorost-zagruzki/kak-sokratit-css-i-uskorit-zagruzku-sajta.html" />  <meta property="og:title" content="Как сократить CSS и ускорить загрузку сайта | SEO Маяк" />  <meta property="og:type" content="article" />  <meta property="og:url" content="/sozdanie-bloga/skorost-zagruzki/kak-sokratit-css-i-uskorit-zagruzku-sajta.html" />  <meta property="og:image" content="/wp-content/plugins/all-in-one-seo-pack/images/default-user-image.png" />  <meta property="og:site_name" content="SEO Маяк" />  <meta property="og:description" content="Сегодня на seo-mayak.com мы продолжим выполнять рекомендации PageSpeed и разберем пункт &quot;Сократите CSS&quot;, что позволит еще немного ускорить загрузку сайта." />  <meta name="twitter:card" content="summary" />  <meta name="twitter:description" content="Сегодня на seo-mayak.com мы продолжим выполнять рекомендации PageSpeed и разберем пункт &quot;Сократите CSS&quot;, что позволит еще немного ускорить загрузку сайта." />  			<script>  			(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){  			(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),  			m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)  			})(window,document,'script','//www.google-analytics.com/analytics.js','ga');    			ga('create', 'UA-44081052-1');  			  			ga('send', 'pageview');  			</script>  <!-- /all in one seo pack -->  

НО! Насколько полезна выводимая в исходный код информация? То, что «вывешивает» All in One SEO Pack, мы заполняем сами в настройках плагина, но есть такие данные, к которым мы не имеем никакого отношения.

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

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

На Денвере у меня сохранилась не «вылеченная» копия блога, из исходного кода которого, я хочу показать Вам несколько строк:

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

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

<link rel="EditURI" type="application/rsd+xml" title="RSD" href="/xmlrpc.php?rsd" />

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

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

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

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

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

<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="/wp-includes/wlwmanifest.xml" />

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

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

<link rel='shortlink' href='/?p=2840' />

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

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

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

<link rel='prev' title='Готовая форма обратной связи на PHP без плагинов' href='http://mayak.ru/sozdanie-bloga/obxodimsya-bez-plaginov/php-forma-obratnoj-svyazi.html' />  <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. Данная строчка не содержит ссылки, но от нее также желательно избавится:

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

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

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

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

 <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.

Лечение wp_head(). Функция remove_action()

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

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

remove_action( 'wp_head', 'rsd_link' );  remove_action( 'wp_head', 'wlwmanifest_link' );  remove_action( 'wp_head', 'wp_shortlink_wp_head', 10, 0 );  remove_action( 'wp_head', 'adjacent_posts_rel_link_wp_head', 10, 0 );  remove_action( 'wp_head', 'wp_generator' );  remove_action( 'wp_head', 'feed_links_extra', 3 );  

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

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

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

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

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

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

До встречи!

С уважением, Виталий Кириллов

seo-mayak.com

Структура и содержимое правильного head

  В соответствии со стандартами HTML только несколько тегов, могут быть помещены в раздел head. Это следующие теги: <base>, <link>, <meta>, <title>, <style> и <script>.

Самые важные из этих тегов в плане оптимизации страницы это title, который указывает название окна текущего документа и meta — применяется для указания информации об HTML-документе, которая помогает браузерам правильно отображать страницы, а поисковым машинам — их индексировать и ранжировать в выдаче.

Но, зачастую эти теги, либо вообще отсутствуют, либо из-за подключаемых плагинов оказываются в самом конце блока head, что в свою очередь не благоприятно влияет на ранжирование сайта в выдаче. Самым простым способом добавить эти теги для wordpress сайта — установить один из плагинов:

— All in One SEO Pack — один из лучших плагинов для оптимизации WordPress блога под поисковые системы. Позволяет вводить мета теги для каждой страницы, менять формат вывода тайтлов и т.д.

— Platinum SEO Pack — более продвинутая версия All in One SEO Pack. Дополнительно умеет добавлять тег nofollow к ссылкам.

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

<head>  <meta http-equiv="Content-Language" content="ru">  <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  <meta name=”robots” content="index, follow" />   <title>Оптимизация блока head сайта на wordpress</title>   <meta name="description" content="Описание документа">   <meta name="keywords" content="ключевые слова">   <meta name="author" content="Автор документа">  <link rel="canonical" href="http://goldserfer.ru/" />  <link rel="stylesheet" href="../themes/colorbold/style.css" type="text/css" />  <link rel="shortcut icon" href="../favicon.ico" type="image/x-icon">  </head>

Ну что постараемся привести код к такому виду? Конечно да!

Избавляемся от лишнего кода в head

  Первое, что нужно сделать так это объединить все файлы стилей вашей темы в один общий файл style.css. Для этого откройте последовательно дополнительные файлы стилей скопируйте из них код и вставьте в конец файла style.css После этих действий, можно удалить из header.php код вывода дополнительных стилей. В итоге в html у вас должна остаться только одна строчка подключения стилей вашей темы:

<link rel="stylesheet" href="../themes/colorbold/style.css" type="text/css" />

В коде  файла шаблона header.php функция <?php wp_head(); ?> реализует большую часть «дополнительных вставок» не нужных для блока head. Просто удалить эту функцию нельзя, так как это непременно повлечет за собой определенные последствия, что негативно может отразиться на работе блога.

Поэтому, лучше будет просто деактивировать подключение в область head стилей плагинов, через файл функций  fuctions.php.

Очень важно! Перед какими либо изменениями в файле fuctions.php, не поленитесь сделайте его копию.

Используем следующий алгоритм:

1). Прежде чем начать отключать добавление плагинов в head скопируйте html код который они добавляют.

2). Создайте в области Body дополнительный блок к примеру под названием header:

<div id="header">    А тут код плагинов    </div>

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

3). Нужно тщательно просмотреть основной файл php плагина, хуки которого Вы собрались удалить. При помощи сочетания клавиш Ctrl+F отыщите там следующую конструкцию:

add_action('wp_head', 'plugin_function_here');

4). Чтобы корректно избавится от данного вызова, нужно добавить в файл functions.php следующую строку:

remove_action('wp_head', 'plugin_function_here');

5). Сохраняем шаблон и проверяем,  что у нас получилось.
Уникальные случаи тоже встречаются, при  которых применение remove_action для wp_head() не работает. Приведу в пример WP-PageNavi (версия 2.5.0), там явного вызова функции в wp_head() нет, невзирая на это, плагин подгружает свой файл стилей. Внимательно посмотрите на первоначальный код wp-pagenavi.php, там есть такая функция «Enqueue PageNavi Stylesheets», добавляющая стили через:

goldserfer.ru


You May Also Like

About the Author: admind

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.