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

07.12.2016
Рубрика: Блог

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

Sitemap: https://internetmajor.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.

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

Интернет Мажор
Автор этого блога. Зарабатываю на сайтах с 2009 года и тебе советую.
36
Оставить комментарий
avatar
14 Цепочка комментария
22 Ответы по цепочке
2 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
19 Авторы комментариев
ВладимирЕвгенийИнтернет МажорSergАлександр Авторы недавних комментариев
  Подписаться  
Уведомление о
Евгений
Евгений

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

Евгений

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

seoonly.ru

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

Евген
Евген

Allow: *.css
Allow: *.js

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

123
123

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

Игорь
Игорь

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

Игорь
Игорь

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

Vysokoff.ru

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

Интернет Мажор

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

Vysokoff.ru

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

Ginger Dog

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

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

Vinc
Vinc

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

Andrew Ti
Andrew Ti

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

Интернет Мажор

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

Andrew Ti
Andrew Ti

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

Freethinker

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

Виталий

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

Smidl
Smidl

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

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

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

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

Serg
Serg

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

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

Владимир

Благодарю за отличную инструкции. Все просто и легко читается =) спс.

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