Карта сайта. Полное руководство для WordPress

18.06.2012

Карта сайта

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

Сразу оговорюсь — техническую часть, которая касается создания карты, я рассматриваю на примере WordPress. Если вы используете что-то другое, вроде Джумлы или Друпала — я уверен, что и для них есть решения, не уступающие по функциональности.

Что такое карта сайта?

Карта сайта — одна из страниц сайта, информация на которой аналогична разделу «Содержание» обычной книги.

Википедия

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

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

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

Различные виды карт

Карты бывают двух видов — XML и HTML, различаются они способом построения и своим назначением.

HTML

Такой тип карты сайта появился раньше и предназначался для навигации посетителей. Сейчас его роль значительно снизилась, поскольку появились новые типы навигации, однако для перелинковки и ускорения этот тип очень даже хорош.

Выглядит он примерно так. То есть обычная страница со списком ссылок на записи сайта.

В моем случае карта сайта содержит только по 5 ссылок на записи из каждой категории. Почему так? Потому, что есть неписаное правило у оптимизаторов — не больше 100 ссылок со страницы. Я стараюсь его придерживаться.

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

XML

Этот вид карты сайта предназначен исключительно для поисковых систем и обычно находится по адресу . Например, моя лежит тут — http://gering111.com/sitemap.xml.

Выглядит очень похожей на HTML версию, но показывать такую картину посетителю — некрасиво. Именно поэтому рекомендуется иметь обе версии — XML для роботов и HTML для живых посетителей.

Как сделать карту сайта?

Как сделать карту сайта?

Я расскажу о трех вариантах создания карты сайта. Два варианта HTML и один — XML.

Google XML Sitemaps

На мой взгляд — это лучший плагин для создания XML варианта. Имеет в своем активе огромное количество настроек и русский интерфейс. Что он умеет:

  • формировать карту сайта в формате XML и сжатую версию, в формате sitemap.xml.gz
  • строить в ручном или автоматическом режиме
  • ограничивать количество записей в карте
  • добавлять сторонние страницы в карту (например, поддомены вашего сайта)
  • распределять приоритет записей в карте
  • регулировать отдачу в карту страниц с категориями, тегами, авторами и пр.
  • менять рекомендованную частоту индексации для каждого типа записей и страниц

Скачать можно из официального репозитория — тут

WP DS Blog Map

Это тоже лучший плагин, но для карты сайта в формате HTML. Работает по принципу вставки шорткодов в нужное место на странице. То есть — вы создаете страницу, с названием типа «Карта» или «Карта сайта», в визуальном редакторе WordPress вставляете шорткоды из плагина, публикуете и на этом все. Остальное за вас сделает этот плагин.

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

blogmap-settings

Как видно на иллюстрации — плагин умеет выводить облако тегов, с настройкой количества и список записей с аналогичной настройкой (помните про 100 ссылок со страницы?)

Настройки карты сайта

Вот и все настройки, очень просто и функционально.

Скачать плагин можно из официального репозитория — тут

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

Создание HTML карты сайта без плагинов

Я недавно писал про анатомию шаблона WordPress, мы будем использовать знания, полученные в той статье. Кто не в курсе, о чем речь, почитайте про иерархию файлов шаблона — тут.

Итак, создаем файл с именем sitemap.php и прописываем туда такой код:

<h2 id="pages">Страницы</h2>
<ul>
<?php
wp_list_pages(
  array(
    'exclude' => '', // укажите ID страниц для исключения
    'title_li' => '',
  )
);
?>
</ul>

<h2 id="posts">Записи</h2>
<ul>
<?php
$cats = get_categories('exclude='); // укажите ID категорий для исключения
foreach ($cats as $cat) {
  echo "<li><h3>".$cat->cat_name."</h3>";
  echo "<ul>";
  query_posts('posts_per_page=-1&cat='.$cat->cat_ID);
  while(have_posts()) {
    the_post();
    $category = get_the_category();
    if ($category[0]->cat_ID == $cat->cat_ID) {
      echo '<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
    }
  }
  echo "</ul>";
  echo "</li>";
}
?>
</ul>

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


Идем дальше. В папке с вашим шаблоном можно создать подпапку с неким названием, пусть это будет includes. Туда мы и положим наш файл sitemap.php, чтобы потом его использовать где нам понадобится.

Например, это можно делать так — в любом месте вашего шаблона можно включить вывод карты, просто добавив такой код:

<?php get_template_part('/includes/sitemap'); ?>

Но, мы идем дальше и сделаем шаблон страницы. Скопируем из шаблона файл page.php и переименуем его в page-sitemap.php.

Теперь откроем его, отредактируем вывод (тут я рассказывать не буду, потому как шаблонов миллион и каждый выводит страницу по разному) и вставим наш код с функцией get_template_part, чуть ниже вывода content(). Это делается для того, чтобы вы могли добавить некий текст на страницу с картой сайта, используя редактор. При этом он будет выводиться перед картой сайта, что дает некоторые гарантии того, что посетитель, для которого вы этот текст написали — увидит его.

Затем добавим вот такой код в начало файла page-sitemap.php:

/*
Template Name: Sitemap
*/

Вставлять необходимо между открытием php и вызовом шапки get_header(). Этот код позволит движку использовать наш файл как пользовательский шаблон вывода. Проще говоря, вы сможете выбрать тип страницы в редакторе.

Именно таким способом я вывожу свою карту сайта. Чем удобен именно такой способ?

  • нет зависимости от разработчиков плагинов
  • скорость работы
  • самая гибкая настройка
  • возможность внешнего оформления под ваши потребности
  • радость от созданного своими руками

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

Этим мы займемся в следующий раз, а на сегодня достаточно. Удачного вам дня и отличной погоды

, , ,

Комментариев: 16

  1. Nazyrov

    Информация уже устарела. Первый описанный плагин работает некорректно, редко обновляет информацию. На мой взгляд сейчас лучший плагин для этой цели-All In One Seo Pack

    Ответить
  2. mark

    Бразерс и систерс, подскажите как сделать название категория активной ссылкой? Не могу сообразить ))
    «».$cat->cat_name.»»

    Ответить
  3. Dima

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

    Ответить
  4. Viktor

    Google XML Sitemaps считаю лучшим иснтрументом для генерации sitemap, он у меня входит в стандартный пакет плагинов для установки на новый блог, настроек достаточно и работает без глюков

    Ответить
  5. Щукин Алексей

    Карту сайта с удовольствием скушает поисковик, для WordPress достаточно поставить специализированный плагин и настроить его, в более изощренных случаях придется использовать самосформированные sitemap, например с помощью скрипта php, который делает выборку из базы MySQL.

    Ответить
  6. GerinG

    Александра — да, для начинающих вариант с плагинами будет лучше. Поставил раз и забыл

    Ответить
  7. Александра

    Спасибо за информацию. Для меня лучше с плагинами карту делать, иначе напутаю что-нибудь, а потом придётся весь сайт менять.

    Ответить
  8. GerinG

    Привет, Русфет
    Замечание резонное, однако я на WP специализируюсь, поэтому и пишу про него. Наверное, нужно добавить об этом в текст статьи.

    Ответить
  9. Rusfetische

    Ну я просто исходил из заголовка. Если было бы «полное руководство для WP», то да…

    Ответить