Инструменты и решения нацеленные на оптимизацию и продвижение сайта в поисковых сервисах.
Периодическая таблица факторов ранжирования
Закрываем внешние ссылки
Надо закрывать все внешние ссылки, ведущие на сторонние сайты, от индексации: ставим ссылкам атрибут rel=»nofollow» и по-желанию target=»_blank»
Лучше делать это сразу в ручную, но бывают случае когда сайт уже имеет множество страниц — тогда можно прописать функцию автоматического добавления атрибута rel=»nofollow»:
function true_wp_posts_nofollow_callback($matches){
$a = $matches[0];
$site_url = site_url();
if (strpos($a, 'rel') === false){
$a = preg_replace("%(href=\S(?!$site_url))%i", 'rel="nofollow" $1', $a);
} elseif (preg_match("%href=\S(?!$site_url)%i", $a)){
$a = preg_replace('/rel=S(?!nofollow)\S*/i', 'rel="nofollow"', $a);
}
return $a;
}
function true_wp_posts_nofollow($content) {
return preg_replace_callback('/<a[^>]+/', 'true_wp_posts_nofollow_callback', $content);
}
add_filter('the_content', 'true_wp_posts_nofollow');
Устранение циклических ссылок
Удаление ссылок ссылающихся на самих себя.
Чтобы убрать циклические ссылки меню, надо вставить в funсtions.php
// Убираем ссылку из текущего пункта меню
function no_link_current_page( $p ) {
return preg_replace( '%((current_page_item|current-menu-item)[^<]+)[^>]+>([^<]+)%', '$1$3', $p, 1 );
}
add_filter('wp_nav_menu', 'no_link_current_page');
Чтобы убрать ссылку с логотипа на главной странице, надо установить проверку
<?php
if ( is_home()) { echo '<img id="logo" src="http://dtex-rostov.ru/wp-content/themes/tester/images/logo-dtex2.png">'; }
else { echo '<a href="/"><img id="logo" src="http://dtex-rostov.ru/wp-content/themes/tester/images/logo-dtex2.png"></a>'; }
Плагин Yoast SEO
Пожалуй, лучший плагин, для SEO оптимизации, постоянно дорабатывается. Но карту сайта лучше делать отдельным плагином, см. ниже.
Вывести поля Yoast SEO
<?php echo get_post_meta($post->ID, '_yoast_wpseo_title', true); ?>
<?php echo get_post_meta($post->ID, '_yoast_wpseo_metadesc', true); ?>
<?php echo get_post_meta($post->ID, '_yoast_wpseo_focuskw', true); ?>
У плагина Yoast SEO в настройках Заголовки и метаданные можно настроить динамическое заполнение с помощью переменных (%%title%%, %%sitename%%).
Наиболее часто используемые переменные:
%%date%% — Дата записи/страницы
%%title%% — Название записи/страницы
%%parent_title%% — Заголовок родительской страницы
%%sitename%% — Имя сайта
%%sitedesc%% — Слоган или описание сайта
%%excerpt%% — Цитата записи/страницы (при отсутствии генерируется автоматически)
%%excerpt_only%% — Цитата записи/страницы (без автоматической генерации)
%%tag%% — Текущая метка/метки
%%category%% — Рубрики записи (через запятую)
%%primary_category%% — Основная рубрика записи/страницы
%%category_description%% — Описание рубрики
%%tag_description%% — Описание метки
%%term_description%% — Описание термина
%%term_title%% — Название термина
%%searchphrase%% — Текущая фраза поиска
%%sep%% — Разделитель определен в вашей теме wp_title() тег.
%%pt_single%% — Заменен тип сообщения единая этикетка
%%pt_plural%% — Тип записи во множественном числе
%%modified%% — Время изменения записи/страницы
%%id%% — ID записи/страницы
%%cf_%% — Значение пользовательского поля из записи
%%ct_%% — Значение пользовательских таксономий из записи (через запятую)
%%ct_desc_%% — Описание произвольной таксономии
Чтобы получить название термина таксономии (не стандартной category), например категорию товара, то используем переменную %%ct_product_cat%%
Пользовательские переменные в Yoast SEO
//Добавляем пользовательскую переменную для Yast SEO (Артикул)
function get_meta_for_SEO() {
return get_post_meta(get_the_ID(), '_sku', true);
}
function register_custom_extra_replacements() {
wpseo_register_var_replacement( '%%sku%%', 'get_meta_for_SEO', 'advanced', 'Получает артикул товара' );
}
add_action('wpseo_register_extra_replacements', 'register_custom_extra_replacements');
noindex,follow в категория Woocommerce
В общих настройках установлено индексировать категории товаров, и в каждой категории стоит по умолчанию индексировать, но на страницах все равно noindex,follow. Чтобы это исправить нужно принудительно указать, чтобы они индексировались:
add_filter('wpseo_robots', 'yoast_no_home_noindex', 999);
function yoast_no_home_noindex($string= "") {
if (is_home() || is_front_page() || is_search() || is_product_category()) {
$string= "index,follow";
}
return $string;
}
Вывод цепочек навигации Yoast
<?php if ( function_exists('yoast_breadcrumb') ) { yoast_breadcrumb( '<div id="breadcrumbs">','</div>' ); } ?>
Сервисы мониторинга Яндекс, Google
Яндекс Вебмастер
Яндекс Метрика
Google Search Console
Google Analytics
Еще интересные сервисы для аналитики: Google Trends и Yandex Wordstat.
Файл sitemap.xml
Обязательно создаем файл sitemap.xml, для правильной и быстрой индексации сайта. Для этого устанавливает плагин Google XML Sitemaps. Настроек там немного, всё понятно. Выставляем нужные таксономии для формирования файла sitemap.xml, сохраняем изменения.
Файл будет доступен по адресу https://opttour.ru/sitemap.xml
Валидность сайта
Валидность сайта — соответствие верстки сайта международным стандартам W3C.
Наиболее часто встречающиеся ошибки валидности:
- использование в div атрибута align=» «
- отсутствие у изображений атрибута alt=» «
- дублирование ID, ID должен быть уникальным
- использование в таблицах align=» » width=» » height=» «
- несколько ошибок выдает использование в формах type=»date»
Оптимизируем заголовки
Наиболее запрашиваемые заголовки (фразы вводимые в поиске) нужно подбирать в специальном сервисе wordstat.yandex.ru. Уточняем фразы с помощью операторов
Оператор | Комментарий | Пример |
---|---|---|
< — > Знак минус | Частота запроса без учета минус слов для ключевой фразы | Купить мопед –бу –москва |
< «» > Двойные кавычки | Статистику слова или фразы по фразовому соответствию | «стоимость модем» |
< ! > Восклицательный знак | Частотность по заданной словоформе | !ваза цена |
< + > Знак плюс | Принудительный учет предлогов | +как работает яндекс директ |
<( | )> Круглые скобки и прямой слеш | Группирует статистику по запросам | Кондиционер (авто | машина) |
Файл robots.txt
Создаем в корне сайта файл robots.txt со следующим содержанием
User-agent: *
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: /trackback
Disallow: */trackback
Disallow: */*/trackback
Disallow: */*/feed/*/
Disallow: */feed
Disallow: /*?*
Disallow: /tag
User-agent: Yandex
Disallow: /cgi-bin
Disallow: /wp-admin
Disallow: /wp-includes
Disallow: /wp-content/plugins
Disallow: /wp-content/cache
Disallow: /wp-content/themes
Disallow: */*/feed/*/
Disallow: */feed
Disallow: /*?*
Disallow: /tag
Host: https://opttour.ru
Sitemap: https://opttour.ru/sitemap.xml
Закрыть от индексации какой-либо из типов записей можно так: Disallow: /slide. Также закрываем страницы и разделы генерируемые wordpress
Disallow: /author/*
Disallow: */page/*
Disallow: */attachment/*
Данный файл помогает роботам поисковиков быстрее индексировать сайт (без служебных директорий), а также предотвращает попадание в индекс нежелательных страниц технического назначения: пэйджинация, результаты поиска и т.п.
По поводу запрета попадания в индекс страниц вложения можно прочитать здесь.
AB тестирование
Недавно, на одном из семинаров, узнал о AB тестировании. Суть метода: чтобы протестировать эффективность какого-либо элемента (например форма подписки на рассылку), нужно создать 2 и более видов форм с какими-либо функциональными и визуальными различиями. Установить их на разных страницах, либо чтоб они появлялись по очереди, и после смотреть статистику на какую форму мы получили больше откликов.
[site-socialshare]