Оптимизация wordpress. Добиваемся высоких позиций в ТОП10

Опубликовано: 01.09.2018

Друзья, в этом посте я бы хотел раскрыть важную тему о том, как оптимизировать WordPress. Действительно, это самая важная вещь для веб-мастера, так как создать красивый сайт с красивым дизайном, это еще не 100% успех в посетителях.

Вот поэтому я и создал пост под названием  "Seo-оптимизация WordPress".  Не буду забирать ваше драгоценное время, так как вы пришли на мой блог получить краткую и понятную информацию, а не читать длинное предисловие :). Приступаем к делу.

SEO-оптимизация.

Настройка постоянных ссылок.

Итак, с чего начать оптимизацию WordPress? Начнем с настроек постоянных ссылок. Если не изменять  настройки, то постоянные ссылки в WordPress будут иметь вот такой вод вид: "site.ru/?p=123" . Я вам рекомендую поменять их на те, которые более предпочитают поисковики, будут они выглядит вот так: "site.ru/category/postname.html" .

Для этого зайдите в админ панель WordPress:   Параметры > Постоянные ссылки .

В общих настройках выберите  пятый вариант отображение ссылок, под названием «Произвольно» и вставьте в него код:   /%category%/%postname%.html/ .

Теперь адреса страниц URL будут выглядеть более приятней для поисковых машин.

Далее, я вам рекомендую установить бесплатный   плагин RusToLat . Этот плагин поможет автоматически называть URL записи на латыни.

скачать плагин можно тут:    mywordpress.ru/plugins/rustolat

У вас сейчас ссылка на категорию смотрится вот так: "ваш сайт/ category/ имя категории/".   Давайте уберем из URL категорий слово «category» , оно нам ни к чему, абсолютно не нужная вещь и этим вы избавитесь от «шаблонности» движка.

Сделаем ссылку вот такую:   "ваш сайт/имя категории/" , как видите из URL категорий мы убрали слово «category». Как можно убрать из URL категорий слово «category»?

Можно воспользоваться бесплатным плагином mywordpress.ru/plugins/seo-without-category/ а можно это сделать и вручную без плагина.

Откройте файл functions.php  (админ WordPress > Внешний вид > Редактор >functions.php ). Между <?php  ?> впишите код, который находиться снизу.

/*решение проблемы с категориями*/ function seocategorydel($catlink1) { $catlink1 = str_replace('/category', '', $catlink1); return $catlink1; } add_filter('category_link', 'seocategorydel', 1, 1);

Оптимизируйте теги title, descriptions, keywords под ключевые слова.

Когда я создавал свой блог  bloggood.ru , я столкнулся со стандартной проблемой Wordpress. При добавлении статей на сайт не было полей ввода title, descriptions, keywords, их нужно было устанавливать самому. Проблема исчезла после добавления  плагина All In One SEO Pack , поля для ввода title, descriptions, keywords отобразились. Как грамотно составлять мета-теги я писал в посте тут .

Настройте файл robots.txt

При грамотном  настраивании файла robots.txt  вы избавляетесь от дублирующего контента  в WordPress.  Вот мой готовый код в файле 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: /wp-trackback

Disallow: /wp-feed

Disallow: /wp-comments

Disallow: /wp-login.php

Disallow: /wp-register.php

Disallow: /xmlrpc.php

Disallow: /tag

Disallow: /author

Disallow: /archive

Disallow: /2011

Disallow: /2012

Disallow: /2013

Disallow: /2014

Disallow: */trackback

Disallow: */feed

Disallow: */comments

Disallow: /?feed=

Disallow: /?s=

Disallow: /*?*

Disallow: /*?

Host: https://сайт.ru

Sitemap: https://сайт.ru/sitemap.xml

Sitemap: https://www.сайт.ru/sitemap.xml

Я в файле robots.txt запретил поисковым машинам индексировать метки (/tag), а категории оставил. Это нужно для того, чтобы одна и та же запись не дублировалась, поисковики одинаковых текстов не любят. Закрыл от индекса также архивы:

Disallow: /2011

Disallow: /2012

Рекомендую использовать плагин Robots Meta, он поможет справиться с  дублированным контентом.

Скачать плагин можно тут: wordpress.org/extend/plugins/robots-meta

Вот настройка плагина Robots Meta

Встройте «хлебные крошки».

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

Часто "хлебные крошки" используются для сайтов со сложной структурой.

Вот так будут выглядеть ваши "хлебные крошки" на блоге:

Главная страница –> Рубрика -> Категория -> Заголовок поста .

или вот так

Главная страница   –> Категория  ->   Заголовок поста.

Вот пример как смотрятся  "хлебные крошки"  на блоге, рисунок снизу.

Установка "хлебных крошек" без плагина.

Итак, "хлебные крошки" можно прописать вручную, для этого откройте файл functions.php ( админ WordPress > Внешний вид > Редактор >functions.php ). Между  <?php  ?>  впишите код, который находится снизу.

function dimox_breadcrumbs() { $showOnHome = 0; // 1 - показывать "хлебные крошки" на главной странице, 0 - не показывать $delimiter = '&raquo;'; // разделить между "крошками" $home = 'Home'; // текст ссылка "Главная" $showCurrent = 1; // 1 - показывать название текущей статьи/страницы, 0 - не показывать $before = '<span class="current">'; // тег перед текущей "крошкой" $after = '</span>'; // тег после текущей "крошки" global $post; $homeLink = get_bloginfo('url'); if (is_home() || is_front_page()) { if ($showOnHome == 1) echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a></div>'; } else { echo '<div id="crumbs"><a href="' . $homeLink . '">' . $home . '</a> ' . $delimiter . ' '; if ( is_category() ) { $thisCat = get_category(get_query_var('cat'), false); if ($thisCat->parent != 0) echo get_category_parents($thisCat->parent, TRUE, ' ' . $delimiter . ' '); echo $before . 'Архив рубрики "' . single_cat_title('', false) . '"' . $after; } elseif ( is_search() ) { echo $before . 'Результаты поиска по запросу "' . get_search_query() . '"' . $after; } elseif ( is_day() ) { echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' '; echo '<a href="' . get_month_link(get_the_time('Y'),get_the_time('m')) . '">' . get_the_time('F') . '</a> ' . $delimiter . ' '; echo $before . get_the_time('d') . $after; } elseif ( is_month() ) { echo '<a href="' . get_year_link(get_the_time('Y')) . '">' . get_the_time('Y') . '</a> ' . $delimiter . ' '; echo $before . get_the_time('F') . $after; } elseif ( is_year() ) { echo $before . get_the_time('Y') . $after; } elseif ( is_single() && !is_attachment() ) { if ( get_post_type() != 'post' ) { $post_type = get_post_type_object(get_post_type()); $slug = $post_type->rewrite; echo '<a href="' . $homeLink . '/' . $slug['slug'] . '/">' . $post_type->labels->singular_name . '</a>'; if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after; } else { $cat = get_the_category(); $cat = $cat[0]; $cats = get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); if ($showCurrent == 0) $cats = preg_replace("#^(.+)\s$delimiter\s$#", "$1", $cats); echo $cats; if ($showCurrent == 1) echo $before . get_the_title() . $after; } } elseif ( !is_single() && !is_page() && get_post_type() != 'post' && !is_404() ) { $post_type = get_post_type_object(get_post_type()); echo $before . $post_type->labels->singular_name . $after; } elseif ( is_attachment() ) { $parent = get_post($post->post_parent); $cat = get_the_category($parent->ID); $cat = $cat[0]; echo get_category_parents($cat, TRUE, ' ' . $delimiter . ' '); echo '<a href="' . get_permalink($parent) . '">' . $parent->post_title . '</a>'; if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after; } elseif ( is_page() && !$post->post_parent ) { if ($showCurrent == 1) echo $before . get_the_title() . $after; } elseif ( is_page() && $post->post_parent ) { $parent_id = $post->post_parent; $breadcrumbs = array(); while ($parent_id) { $page = get_page($parent_id); $breadcrumbs[] = '<a href="' . get_permalink($page->ID) . '">' . get_the_title($page->ID) . '</a>'; $parent_id = $page->post_parent; } $breadcrumbs = array_reverse($breadcrumbs); for ($i = 0; $i < count($breadcrumbs); $i++) { echo $breadcrumbs[$i]; if ($i != count($breadcrumbs)-1) echo ' ' . $delimiter . ' '; } if ($showCurrent == 1) echo ' ' . $delimiter . ' ' . $before . get_the_title() . $after; } elseif ( is_tag() ) { echo $before . 'Записи с тегом "' . single_tag_title('', false) . '"' . $after; } elseif ( is_author() ) { global $author; $userdata = get_userdata($author); echo $before . 'Статьи автора ' . $userdata->display_name . $after; } elseif ( is_404() ) { echo $before . 'Error 404' . $after; } if ( get_query_var('paged') ) { if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ' ('; echo __('Page') . ' ' . get_query_var('paged'); if ( is_category() || is_day() || is_month() || is_year() || is_search() || is_tag() || is_author() ) echo ')'; } echo '</div>'; } } // end dimox_breadcrumbs()

Сохраните файл.

Теперь в том месте шаблона, где вы хотите увидеть "хлебные крошки", установите следующий код. Обычно код вписывают в файлы single.php , page.php , category.php и в archive.php .

<?php if (function_exists('dimox_breadcrumbs')) dimox_breadcrumbs(); ?>

Сохраните файл.

Вам останется только улучшить внешний вид "хлебных крошек" в файле CSS. Добавте в файле CSS такие стили #crumbs и .current .

Установка "хлебных крошек" с плагином.

Можно, конечно, пойти простыми путями, установив плагин Breadcrumb NavXT

скачать плагин можно здесь:  wordpress.org/extend/plugins/breadcrumb-navxt/

После установки плагина, вставьте код (который снизу) в файлы single.php , page.php , category.php , archive.php .

<div id="breadcrumb_navx"> <?php if(function_exists('bcn_display')) { bcn_display(); } ?> </div><!-- #breadcrumb_navx -->

Выбирать вам, как устанавливать "хлебные крошки" -  вручную или плагином.

Доступ к старым записям для ПС.

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

Можно воспользоваться специальным плагином WP-PageNavi:  wordpress.org/extend/plugins/wp-pagenavi/

После установки плагина установите код (код снизу) там, где вы хотите видеть навигацию по блогу, обычно все ставят в файлах index.php, category.php, archive.php.

<?php wp_pagenavi(); ?>

Сохраните файлы.

Можно конечно создать страничную навигацию и без плагина. Вы можете посмотреть, как она выглядит в действии, перейдя на "Главную" страницу.

Устанавливается постраничная навигация в течении 2-3 мин. Я вам про код напишу в следующем посте. Итак, статейка получилась не маленькая.

Добавьте похожие записи.

Добавьте похожие записи внизу поста. Это даст блогу отличную перелинковку для поисковых систем и заинтересованность читателя.

Я использую для этого дела плагин Related Posts  wordpress.org/extend/plugins/wordpress-23-related-posts-plugin

Сделайте карту сайта.

Карта сайта необходима для быстрой и качественной индексации блога. Вы можете все сделать с помощью плагина Goggle XML Sitemaps и Sitemap Generator. Два этих плагина делают разные карты сайта.

Goggle XML Sitemaps
 создает карту только для поисковых систем в формате xml

скачать плагинwordpress.org/extend/plugins/rush-sitemap-generator/

Sitemap Generator  – создает карту для посетителей в формате html

скачать плагин  -  wordpress.org/extend/plugins/google-sitemap-generator

Кэшируйте страницы сайта.

Для ускорения работы сайта, вам нужен плагин кэширования WP Super Cache или Hyper Cache.  Скорость загрузки вашего сайта или блога влияет на ранжирование ПС, да и посетителю будет лень ждать загрузки.

скачать плагин Hyper Cache:    wordpress.org/extend/plugins/hyper-cache/

Отключите все неиспользуемые плагины.

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

Отключите ревизии (копии).

Копии создаются при изменении документа (посты, страницы, комментарии). Если их не уберете, то база данных вскоре засоряется и скорость сайта ухудшится, ужас.

Отключить создание копий можно в файле wp-config.php, пропишите в файле такую строчку:

define(‘WP_POST_REVISIONS’, 0);

Вот и все.

Понравился пост? Помоги другим узнать об этой статье, кликни на кнопку социальных сетей ↓↓↓

Последние новости категории:

Похожие статьи

Популярные статьи:

Добавить комментарий

Метки: seo-оптимизация , wordpress

rss