SEO оптимизация WordPress нового поколения

Продолжаю вещать про создание контентных проектов, после выбора шаблона, пора бы провести seo оптимизацию wordpress. Еще в далеком 2010 году, каждый уважающий себя вебмастер обязан был написать статью про seo оптимизацию wordpress, я еще такую не писал :) Тогда многое что приходилось делать руками или использовать 100 плагинов. Сейчас, практически вся оптимизация держится на нескольких плагинах и немного ручного труда.

Главное зеркало

Настройки > Общие

Главное зеркало wordpress

Для поисковых систем сайт с www. и без — это два разных сайта. В wordpress уже автоматически стоит редирект на адрес который вы укажите. Я использую сайты без www, так короче и современнее. На всякий случай проверьте происходит ли редирект на нужный адрес.

ЧПУ

Ставим плагин Cyr to Lat и получаем красивые URL адреса.

Прописываем в Настройки > Постоянные ссылки

ЧПУ WordPress

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

Мета данные, Sitemap, Хлебные крошки

Для всего этого использую один плагин Yoast SEO. Плагин только на половину переведен на русский, но в нем итак все понятно.

Не забываем включить расширенны настройки:

Yoast Seo wordpress расширенные настройки

Из главных настроек, что хотелось бы отметить.

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

Отключение авторов и даты в Yoast Seo WordPress

На странице дополнительно отрубаем всё — чтобы в урлах не отображались /category/, ?replytocom, всякие редиректы без нашего ведома.

Yoast Seo wordpress дополнительно

Удаляем всякие переменные из типов записи. Оставляем, чтобы показывался только title.

Seo yoast мета данные

А в рубриках не забываем оставить Page. И в метках тоже, если используете их в своей структуре сайта. Page — будет отображать номер страницы в title.

Yoast seo wordpress номер страницы в title

У этого плагина есть возможность настройки Хлебных крошек, если у вас большая структура сайта и они требуются. Так же можно настроить карту сайта xml, с этим проблем не должно быть.

Заголовки h1, h2, h3…

Здесь придется залезть в код. Убираем все заголовки h из бокового меню, футера. Эти теги должны использоваться только в контентном блоке.

Заголовок h1 — должен использоваться 1 раз на странице в виде главного заголовка статьи. Остальные заголовки h2, h3 и т.д. могут использоваться несколько раз в логической своей последовательности. Размеры у этих заголовков так же должны соответствовать логике — h1 больше всех, h2 поменьше, h3 еще меньше и т.д.

На главной странице частенько невозможно употребить заголовок h1. Делать описание сайта на главной и иметь логотип в виде текста, не всегда применимо. Поэтому на главной странице можно забить на h1, и для вывода статей использовать h2.

h2 на главной

В самой же статье, когда мы переходим на неё, то в качестве главного заголовка используем h1.

h1 в статье

В коде wordpress это правится в файле single.php, но все зависит от шаблона.

<h1><?php echo get_the_title(); ?></h1>

Описание рубрик

Если вы сделали грамотную структуру сайта, и выбрали рубрики, а не страницы. То рубрики вы тоже будете продвигать. Поэтому для них необходим текст. Некоторые шаблоны и темы по стандарту используют эту возможность. В некоторые придется вставить код:

<?php echo category_description( $category_id ); ?>

И не забываем главный заголовок так же сделать в h1.

Все это правится обычно в файлах category.php или archive.php

Пример на блоге в рубрике Инструменты, у вас конечно же будет текста больше :)

Описание рубрик

Robots.txt

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

Использую вот такой robots.txt

User-agent: *
Disallow: /cgi-bin
Disallow: /wp-json/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /wp-admin/
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
Disallow: /page/
Disallow: */page
Disallow: /?feed=
Disallow: */comments
Disallow: */comment-page*
Disallow: /comments/feed/
Disallow: /*trackback
Disallow: */trackback
Disallow: /*feed
Disallow: */feed
Disallow: /feed
Disallow: */&
Disallow: /&
Disallow: /?
Disallow: /*?*
Allow: /wp-content/uploads/
Allow: *.css
Allow: *.js
Host: majornet.ru

Sitemap: http://majornet.ru/post-sitemap.xml

Редиректы и битые ссылки

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

Так же использую Broken Link Cheker — он уже сканит полностью весь сайт на битые ссылки, а не только на посещенные.

Кеш

По поводу кеша я уже писал статейку, использую Wp-Cache.com, он простой без всяких настроек и при этом норм справляется со своей функцией.

Остальная оптимизация лишнего

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

В плагине все просто, проставляете галочки и сохраняете, каждая функция подробно описана на сайте плагина, а так же при его настройке.

Плагин умеет следующее:

  • Отключает JSON REST API
  • Отключает Emoji
  • Удаляет код meta generator
  • Удаляет код dns-prefetch
  • Удалить RSD ссылку
  • Удаляет WLW Manifest ссылку
  • Удаляет короткую ссылку /?p=
  • Удаляет из кода ссылки на предыдущую, следующую запись
  • Удаляет стили .recentcomments
  • Автоматически проставляет заголовок Last Modified
  • Отдает ответ If-Modified-Since
  • Автоматически проставляет аттрибут alt
  • Прячет внешние ссылки в комментариях в JS
  • Прячет внешние ссылки авторов комментариев в JS
  • Создает правильный robots.txt
  • Редирект с https на http
  • Убирает дублирование названия в хлебных крошках WP SEO by Yoast
  • Удаляет архивы дат
  • Удаляет архивы пользователей
  • Удаляет архивы тегов
  • Удаляет страницы вложений
  • Удаляет дубли пагинации постов
  • Убирает возможность узнать логин администратора
  • Прячет ошибки при входе на сайт
  • Убирает ссылку на X-Pingback и возможность спамить pingback’ами
  • Отключает ленту RSS
  • Убирает в форме комментирования поле «Сайт»
  • Убирает ссылки на сайт wordpress.org из админ бара
  • Убирает виджет «Страницы»
  • Убирает виджет «Календарь»
  • Убирает виджет «Облако меток»
  • Отключает ревизии полностью или определенное количество

Выглядит все вот так:

Clearfy чистка кода

Подробнее о каждой функции можно прочитать на сайте плагина и там же купить его.

После всей этой оптимизации добавляем сайты в панель вебмастера Яндекса и Google, указываем карты сайта xml.

Вроде бы ничего не забыл.

Евгений
07.12.2016 в 22:12

html карта сайта — dagon sitemap
Циклические ссылки — Remove Redundant Links
Проверить валидность, мобильную версию.
Broken Link Checker — ищем битые видосы и ссылки
Original texts yandex webmasters — тексты в панельку на автомате)

Ответить
Majornet majornet.ru
08.12.2016 в 08:13

Html карта для нового проекта не нужна, да и вообще если все норм с индексацией то не нужна она.
А вот Remove Redundant Links нужный плагин :) Спасибо.

Ответить
Евгений z-force.info
23.01.2017 в 10:51

Евгений, респект. Поставил, попробовал. То что надо этот Original texts yandex webmasters.

Ответить
seoonly.ru seoonly.ru
07.12.2016 в 22:53

Спасибо!! Просто 10/10 и в закладки

Ответить
Евген
07.12.2016 в 23:10

Allow: *.css
Allow: *.js

На самом деле это не открывает все файлы js и css, можешь посмотреть свой сайт тут https://search.google.com/search-console/mobile-friendly
Покажет что сайт не оптимизирован для мобил.

Ответить
Majornet majornet.ru
08.12.2016 в 08:15

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

Ответить
123
08.12.2016 в 00:57

Че за шлак тут на этой странице? Пиздец блогир хуев. Ахуенная статья.

Ответить
Majornet majornet.ru
08.12.2016 в 08:15

неопределенность она такая

Ответить
Игорь
08.12.2016 в 03:42

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

Ответить
Игорь
08.12.2016 в 04:52

После того как отключил — Strip the category base (usually /category/) from the category URL
У меня перестали посты открываться. Пришлось больше времени потратить на восстановление.

Ответить
Majornet majornet.ru
08.12.2016 в 08:16

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

Ответить
Vysokoff.ru vysokoff.ru
09.12.2016 в 14:30

Конечно у вас урлы перестали открываться, вы убрали часть урла! Нельзя менять структуру URL, когда уже всё проиндексировалось!

Ответить
Majornet majornet.ru
09.12.2016 в 20:40

А вроде бы Yoast сам редирект 301 прописывает со старых на новые урлы, или это плагин по Перенаправлениям делает. Я просто как то менял урлы у меня автоматом редиректы прописались.

Ответить
Vysokoff.ru vysokoff.ru
09.12.2016 в 14:33

Хочу свои 5 копеек внести:
Рекомендую лучше для транслита использовать плагин Cyr to Lat enhanced ,а не тот что указан в статье. На Cyr to Lat обжигался, он не всегда правильную транслитизацию делает и Яндекс, например, не подсвечивает слова некоторые, которые переведены этим плагином.
И ещё момент, убирай последнюю крошку, которая дублирует Н1.

Ответить
Majornet majornet.ru
09.12.2016 в 19:23

Ок, спасибо за советы, учту

Ответить
16.12.2016 в 21:44

Ещё один хороший плагин RusToLat — в нём есть настройка смены стандарта перевода по ГОСТу :)

Ответить
Ginger Dog ggds.ru
09.12.2016 в 15:23

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

вместо
Disallow: /wp-json/
Disallow: /wp-content/
Disallow: /wp-includes/
Disallow: /wp-admin/
Disallow: /xmlrpc.php
Disallow: /wp-login.php
Disallow: /wp-register.php
можно просто написать
Disallow: /wp-
всего 1 директива, а суть получается такая же

эти правила вовсе не будут работать, нужно указывать начальный /
Allow: *.css
Allow: *.js

и эти директивы тоже не будут работать
Disallow: */page
Disallow: */comments
Disallow: */trackback
да и не нужны они, коль есть уже такого типа
Disallow: /*trackback

так что перед тем как составлять роботс почитайте мануалы и включите голову…

насчет плагинов…
Cyr to Lat — нужный плагин, я использую другой, но суть там та же
Wp-Cache — кэширование для WP просто необходимо, можно использовать любой другой, они почти все работают по одному принципу
Broken Link Cheker — полезный плагин
Clearfy — тоже полезный, я использую самописный
Yoast SEO — тяжелый с кучей лишних функций. для управления мета использую произвольные поля, все остальное решается самописным плагином

Ответить
Ginger Dog ggds.ru
09.12.2016 в 15:24

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

Ответить
Majornet majornet.ru
09.12.2016 в 19:23

Disallow: /wp-
Это понятно что так можно прописать, я бы так не стал делать, потому что может быть папка или страница wp-pdf и так далее, где будут храниться нужные файлы и инфа для индексации. По мне так лучше прописывать отдельно, отсекая ненужные папки и файлы, на нагрузку или на ресурсы поисковой системы это никак не сказывается.

Специально в статье было написано, что дублирую дерективы, потому что часто поисковик вообще игнорирует эти правила, так сказать подстраховка. Но вот насколько помню лет 5 назад, дерективы */page и allow в таком виде работали.

Про robots.txt, уже лет 5 наверное не читал и не изучал эту тему, согласен, спасибо за советы, проверю :)

Ответить
Freethinker freethinker.ru
11.12.2016 в 18:45

>> дерективы */page и allow в таком виде работали.

На самом деле Disallow: */comments и подобные директивы будут работать (если только в Mail.ru проблемы могут быть), но они синтаксически неверные — обязательно нужно указывать правила относительно корня сайта:
Disallow: /*comments

>> потому что может быть папка или страница wp-pdf и так далее

Пфф.. Так можно тогда сказать про все остальные директивы: может быть страница
/comments-reply-kak-udalit/
/pager-na-stranice-paginacii/
/feedly-luchshiy-rider-rss/
/trackback-mehanizm-uvedomleniya-saita/

…и все эти страницы будут запрещены текущими правилами robots.txt. А «левых» папок в корне сайта с названием «wp-*» быть не может, если только вручную туда не добавить.

Ответить
Majornet majornet.ru
11.12.2016 в 19:23

Встречал плагины категорий которые имели такую вложенность /wp-catalog/, так же давненько создавал сайт по pdf инструкциям там так же в плагине для pdf доков имел вид wp-pdf, и это никак нельзя было изменить сторонними средствами в настройках плагина. Поэтому кто не помнит свой robots или не понимает как он работает, может закрыть эти страницы от индексации. Да и не вижу смысла спорить об этом, разницы нет, что /wp- прописать что отдельно, только с нюансом, о котором написал выше.

Ответить
Vinc
10.12.2016 в 21:58

А что делать с внешними ссылками, редирект или ноидекс, как вообще лучше?

Ответить
Majornet majornet.ru
11.12.2016 в 11:38

Смотря, что за ссылки имеете ввиду. Если например ссылки полезные в статьях, то я бы ничего с ними не делал. Если это ссылки в каталоге предприятий или подобное и их много, то закрывал бы под seohide.

Ответить
Andrew Ti
12.12.2016 в 17:42

не могу никак добавить %Page% к страницам пагинации, в настройках стоит а в title не выводится, подскажи что может быть?

Ответить
Majornet majornet.ru
12.12.2016 в 17:48

Надо вот так прописывать %%page%%

Ответить
Andrew Ti
12.12.2016 в 17:51

у меня так и прописано %%term_title%% %%page%% , может быть проблема в шаблоне ? в форме вывода title

Ответить
Majornet majornet.ru
12.12.2016 в 18:04

Может быть и проблема в шаблоне в header.php надо попробовать прописать title по другому, вот здесь вот написано https://kb.yoast.com/kb/the-seo-title-output-for-the-plugin-doesnt-work-as-expected/

Ответить
Freethinker freethinker.ru
13.12.2016 в 06:11

Может стоит плагин кэширования и следует удалить кэш.

Ответить
Виталий vernigora.com
23.12.2016 в 19:43

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

Ответить
Smidl
25.01.2017 в 06:13

Зачем echo get_the_title(); если есть the_title(); ?

И зачем в category_descripttion(); передавать айди, если мы и так на странице категории находимся и все автоматически работает?

По роботсу вопросов тьма, выше делали дельные замечания.

А так, в целом, правильно все

Ответить
Majornet majornet.ru
27.01.2017 в 10:19

Все зависит от шаблона, где то прописано get_the_title(); где то the_title(); ? какая разница, сути это не меняет, что заголовок должен быть в h1.

Насчет robots.txt у меня прекрасно работает такой роботс, никогда не было проблем с индексацией или что то лишнее залетало в индекс — значит логично, что он рабочий. Я чисто исхожу из своего опыта, что у меня работает, а какие то там правила и так далее меня не сильно волнуют, robots прекрасно работает и с * и с /.
Не особо вижу смысла заморачиваться с правилами, если итак все работает.

Ответить
Оставить комментарий


Следи за нами в FaceBook.
Все новые статьи и много уникального!
Пример текста
Спасибо, не показывайте мне эту штуку больше!
Друг, не уходи!
Тестирую
Хочешь нежности? Подписывайся!