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

Александр Овсянников
Обновлено: 07.12.2016
0
(0)

Продолжаю вещать про создание контентных проектов, после выбора шаблона, пора бы провести 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: imajor.ru

Sitemap: https://imajor.ru/post-sitemap.xml

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

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

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

Кеш

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

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

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

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

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

  • Отключает 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 из админ бара
  • Убирает виджет "Страницы"
  • Убирает виджет "Календарь"
  • Убирает виджет "Облако меток"
  • Отключает ревизии полностью или определенное количество
[/checklist]

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

Clearfy чистка кода

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

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

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

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

Рейтинг статьи: 0 / 5. Кол-во оценок: 0

Пока нет голосов! Будьте первым, кто оценит эту статью.

Александр Овсянников
Занимаюсь продвижением и заработком на сайтах с 2009 года. Владелец партнерки по монетизации PUSH-уведомлений MajorPush.pro. Автор курсов в Major Academy по созданию, продвижению и заработку на сайтах. Создатель бесплатной панели для сайтов MajorPanel.ru. Владелец информационных сайтов.
Баннер
Подписаться
Уведомление о
guest
35 комментариев
Inline Feedbacks
View all comments
Евгений
Евгений
07.12.2016 22:12

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

internetmajor
Администратор
internetmajor
08.12.2016 08:13
Reply to  Евгений

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

Евгений
Евгений
23.01.2017 10:51
Reply to  Евгений

Евгений, респект. Поставил, попробовал. То что надо этот 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
Покажет что сайт не оптимизирован для мобил.

internetmajor
Администратор
internetmajor
08.12.2016 08:15
Reply to  Евген

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

Александр
Александр
26.09.2017 21:19
Reply to  internetmajor

Нет, Кама говорил об этом здесь: https://wp-kama.ru/id_803/pishem-pravilnyiy-robotstxt-dlya-wordpress.html#variant-1-optimalnyj-kod-robots.txt-dlya-wordpress

Роботы обрабатывают сначала короткие (по символам) правила, потом длинные, "Allow: *.js" короче, чем "Disallow: /wp-content/", поэтому файлы и не открылись этой директивой

123
123
08.12.2016 00:57

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

internetmajor
Администратор
internetmajor
08.12.2016 08:15
Reply to  123

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

Игорь
Игорь
08.12.2016 03:42

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

Игорь
Игорь
08.12.2016 04:52

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

internetmajor
Администратор
internetmajor
08.12.2016 08:16
Reply to  Игорь

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

Vysokoff.ru
Vysokoff.ru
09.12.2016 14:30
Reply to  Игорь

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

Интернет Мажор
Интернет Мажор
09.12.2016 20:40
Reply to  Vysokoff.ru

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

Vysokoff.ru
Vysokoff.ru
09.12.2016 14:33

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

internetmajor
Администратор
internetmajor
09.12.2016 19:23
Reply to  Vysokoff.ru

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

Teodoros
Teodoros
16.12.2016 21:44
Reply to  internetmajor

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

Ginger Dog
Ginger Dog
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:… Подробнее »

Ginger Dog
Ginger Dog
09.12.2016 15:24
Reply to  Ginger Dog

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

internetmajor
Администратор
internetmajor
09.12.2016 19:23
Reply to  Ginger Dog

Disallow: /wp- Это понятно что так можно прописать, я бы так не стал делать, потому что может быть папка или страница wp-pdf и так далее, где будут храниться нужные файлы и инфа для индексации. По мне так лучше прописывать отдельно, отсекая ненужные папки и файлы, на нагрузку или на ресурсы поисковой системы это никак не сказывается. Специально в статье было написано, что дублирую дерективы, потому что часто поисковик вообще игнорирует эти правила, так сказать подстраховка. Но вот насколько помню лет 5 назад, дерективы */page и allow в таком виде работали. Про robots.txt, уже лет 5 наверное не читал и не… Подробнее »

Freethinker
Freethinker
11.12.2016 18:45
Reply to  internetmajor

>> дерективы */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-*" быть не может, если только вручную туда не добавить.

internetmajor
Администратор
internetmajor
11.12.2016 19:23
Reply to  Freethinker

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

Vinc
Vinc
10.12.2016 21:58

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

internetmajor
Администратор
internetmajor
11.12.2016 11:38
Reply to  Vinc

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

Andrew Ti
Andrew Ti
12.12.2016 17:42

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

Интернет Мажор
Интернет Мажор
12.12.2016 17:48
Reply to  Andrew Ti

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

Andrew Ti
Andrew Ti
12.12.2016 17:51

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

internetmajor
Администратор
internetmajor
12.12.2016 18:04
Reply to  Andrew Ti

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

Freethinker
Freethinker
13.12.2016 06:11
Reply to  Andrew Ti

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

Виталий
Виталий
23.12.2016 19:43

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

Smidl
Smidl
25.01.2017 06:13

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

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

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

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

internetmajor
Администратор
internetmajor
27.01.2017 10:19
Reply to  Smidl

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

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

Serg
Serg
19.01.2018 15:15

Вот реальный твой роботс. Зачем прописывать в статье другой?

User-agent: *
Disallow: /wp-admin/
Disallow: /wp-json/
Disallow: /wp-includes/
Disallow: /feed
Disallow: */page
Disallow: /page/*
Disallow: /search/
Disallow: /&
Disallow: /*?*
Disallow: /?
Host: https://internetmajor.ru

Sitemap: https://internetmajor.ru/post-sitemap.xml

internetmajor
Администратор
internetmajor
19.01.2018 17:22
Reply to  Serg

Времена изменились, стал мудрее и robots.txt тоже помудрел.

Евгений
Евгений
25.07.2018 10:06
Reply to  internetmajor

роботс можно уменьшить, взглянуть на него и видно сразу по сути дубли строк, зачем?)

будь в курсе
Подписывайся и получай заметки о заработке на сайтах, которые не вошли на страницы этого блога. С нами уже более 4000 вебмастеров.
Вконтакте 2k+
Телеграм 2k+
Я уже подписан