Кавычки в заголовках статей: как ставить правильно

Раньше не задавался вопросом какие кавычки в заголовках статей на сайте можно ставить. Просто ставил любые. В итоге в некоторых были двойные кавычки  " ", а в других были ёлочки « ». Вы сами можете просмотреть как отображаются Title Вашего сайта через оператор site:site.ru. Вот и я проверил. И что мы видим:

А теперь смотрим как выглядят сниппеты если кавычки вида "":

Заголовок с кавычками

Вывод из этого простой: Кавычки-ёлочки в Google обрезают отображаемый заголовок, поэтому предпочтительно ставить обычные двойные кавычки "". Что я и сделал - массово поменял все.

Яндекс.Метрика и индексация скрытого контента

Яндекс метрика и индексация закрытого контента

Яндекс.Метрика установлена на многих сайтах и, как известно, исправно "стучит" Яндексу обо всём. Т.е. если у вас много ссылок на парнёрские программы, редиректы на рекламодателей или, не дай бог, партнёрка от Амиго - Метрику надо с сайта убирать.

И не помогут тут ни директивы Disallow в robots.txt, ни метатеги:

<meta name="robots" content="noindex, nofollow" />

ни даже закрытие через JS и AJAX. А всё потому, что если ссылки в контенте ещё можно скрыть, то клик по этой ссылке скрыть невозможно, как и адрес сайта куда перешёл посетитель. Всё это печально, но частично можно проблему с закрытием некоторых разделов и страниц сайта от индексации элементарно установив галочку в настройка Я.метрики, при получении кода. Это настройка "Запрет отправки на индексацию страниц сайта".

В код счетчика будет добавлено свойство ut:"noindex" для объекта Ya.Metrika и параметр ut=noindex после //mc.yandex.ru/watch/XXXXXX в noscript-части кода.

Показываю:

Запрет отправки на индексацию страниц сайта

Так, что есть смысл пройтись по своим сайтам и заменить код метрики.

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

Нумерация на странице поиска Яндекс

Веб-мастерам и SEO-специалистам при просмотре результатов поисковой выдачи важно видеть номер позиции сайта. Раньше Яндекс показывал нумерованные позиции, но с некоторых пор отказался. Есть конечно расширение от Топвизор, но оно только для Chrome, так что пользователи Firefox и других браузеров пролетают. Нумерацию также добавляет плагин RDSbar, но опять же не везде. Как вариант есть букмарклет - у меня заработал и выглядит выдача неплохо. Недостаток - надо кликать по кнопке, чтобы появилась нумерация.

Предложу свой вариант - использование пользовательского скрипта (userscripts). В результате выдача будет выглядеть так (стрелками показана нумерация):

Нумерация поисковой выдачи Яндекс

Сначала немного теории. Чтобы нумерация состоялась, список в поисковой выдаче должен быть заключён в тег <ol>. Поэтому нужно добавить скрипт, который подменял бы на странице поиска тег <ul> на <ol>. Сделать это можно простым скриптом:

$(window).load(function() {
 $("ul").replaceWith(function(index, oldHTML){
 return $("<ol>").html(oldHTML);
});
 });

Проверено - работает в  Opera 41.

Чтобы задействовать скрипт в браузере, необходимо установить расширение типа Violentmonkey, Tampermonkey  и им подобные. Удачи!

P.S. Если у Вас не установлен блокировщик рекламы, то нумероваться будут и рекламные объявления. так что установите что-то типа uBlock origin.

Отзыв о сайте и программе vto.pe

Недавно попробовал работать с соцсетями с помощью сайта vto.pe (ВТопе). Поначалу всё было радужно. Добавил задание - накрутка лайков на записи группы Вконтакте. Чтобы заработать поинты для оплаты задания установил Vtopebot, добавил туда свои фейковые аккаунты ВК, Fb и Twitter. И всё поначалу было отлично. Поинты текут рекой. Лайки ставятся.

И в один прекрасный день получаю такое:

Аккаунт Вконтакте заблокирован из-за vto.pe

 

Я срочно начал восстанавливать аккаунт. Параллельно начал писать в ТП запрос. Вы не поверите. После написания обращения просто невозможно нажать кнопку "Отправить". Ссылка на страницу "Контакты" в блоге неактивна. Т.е. их вообще никак нельзя найти. При этом сайт и программа довольно качественные и внушают, на первый взгляд,  доверие.

Я понял, что это не та компания, с которой стоит иметь дело. Как потом выяснилось мои акаунтом "вступали" в группы, предлагающие интим-услуги и прочую чернуху. С аккаунта бомбили спамом других.

Так что мой вам совет - не пользуйтесь этой программой и сервисом. Ну разве что Вам плевать на свои аккаунты в соцсетях.

Изменение Title и Description SEO-плагинов WordPress

изменение Title и Description средствами php

В некоторых редких случаях в WordPress нужно автоматически менять (или добавлять что-то) в Title и Description. Например менять год в заголовке статьи. Так она будет всегда актуальной. Допустим "Как установить плагины в Wordpress [год]" И вместо [год] будет подставляться 2016, 2017 и т.д. Вставлять значения пользовательских полей.

Так как большинство веб-мастеров используют два плагина All in One Seo и Yoast, то рассмотрим на их примере.

Изменение заголовков и описаний с помощью пользовательских полей (Custom fields) в Yoast Seo

Тут на самом деле всё просто. Разработчики предусмотрели возможность вставлять шаблоны метаописаний.

Например их можно задать в шаблоне плагина (version - имя пользовательского поля):

пользовательские поля в Yoast SEO

Полный список шаблонов на официальном сайте плагина:

https://kb.yoast.com/kb/yoast-wordpress-seo-titles-metas-template-variables/

Изменение заголовков и описаний в All in One Seo средствами PHP и

Custom fields

По-умолчанию в данном плагине это сделать не так-то просто. Никаких встроенных инструментов плагин не даёт. Придётся применять php-сниппеты.

Используем исходную информацию по плагину http://4coder.info/en/blog/2011/all-in-one-seo-pack-customization/

Начнём с простого. Допишем в конец тайтла всех записей какое-то слово (например World!):

add_filter('aioseop_title_page','my_custom_title');
global $post;
function my_custom_title($text) {
$mytext = 'World!'; //задаём свой текст
$text .= $mytext; //"склеиваем" исходный Title и свой текст
return $text; //выводим текст
}

 (данный сниппет нужно добавлять в файл Function.php).

Тоже самое делаем для Description:

add_filter('aioseop_description','my_custom_description');
 global $post;
 function my_custom_description($text) {
 $mytext = 'World!'; //задаём свой текст
 $text .= $mytext; //"склеиваем" исходный Description и свой текст
 return $text; //выводим текст
 }

Теперь допишем в конец описания значение какого-нибудь пользовательского поля (custom fields). Если это сайт про онлайн-игры, то в пользовательское поле можно вписать номер версии игры и просто меняя номер версии при редактировании записи, менять её везде - в заголовке, описании, тексте поста и т.д.

Допустим Title  "Скачайте игру Покемоны версия <тут подставляем версию>"

И Description "На нашем сайте вы всегда можете скачать Покемоны <тут подставляем версию>"

Пример для описания:

add_filter('aioseop_description','my_custom_description');
global $post;
function my_custom_description($text) {
$mycustomseo = get_post_meta($post->ID, 'my_custom_field', true);//получаем значение пользовательского поля my_custom_field
$text .= $mycustomseo; //"склеиваем" исходный Description и пользовательское поле
 return $text; //выводим текст
}

Изменение сеозаголовков и описаний All in One Seo + Woocommers

Прежде всего почему мы используем связку All in One Seo + Woocommers? Потому что он уже был установлен на сайте. Хотя в Yoast проблема добавления пользовательских полей в описание решается намного проще и выше описана.

Так как в Woocommers не записи, а товары, то в сниппете нужно использовать не $post, а $product.

add_filter('aioseop_description','my_custom_description');
global $product;
function my_custom_description($text) {
$mycustomseo = get_the_terms($product->ID, 'pa_my_custom_field');//получаем значение пользовательского поля my_custom_field
$text .= $mycustomseo; //"склеиваем" исходный Description и пользовательское поле
 return $text; //выводим текст
}

Конкретный пример. Был сайт по продаже контрольных работ. В каждой контрольной были разные варианты и покупатель мог выбрать какой именно вариант контрольной он хочет купить. Естественно это был один товар и его Title выглядел примерно так:

"Контрольная по математике для 1 курса варианты 01, 03, 12"

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

add_filter('single_post_title','my_custom_product_title');
global $product;
function my_custom_product_title($text) {
$versionvalues = get_the_terms( $product->id, 'pa_variant');
if (!empty($versionvalues))
{
$mycustomseo = ' Вариант ';
$end_element = array_pop($versionvalues);//изымаем последний элемент, присваиваем его значение переменной
foreach ( $versionvalues as $versionvalue)
{
$mycustomseo .= $versionvalue->name; $mycustomseo .= $versionvalue->value;// делаем что-либо с первыми...
$mycustomseo .= ', ';
}

$mycustomseo .= $end_element->name; $mycustomseo .= $end_element->value; // делаем что-либо с последним элементом...

}

$text .= $mycustomseo;
return $text;
}

Здесь мы записываем исходный title в переменную $text, получаем массив значений всех вариантов $versionvalues, потом изымаем из него последний элемент $end_element (после него не нужна запятая) и в цикле foreach склеиваем это всё в одну строку, проставляя пробелы и запятые.