Как известно, правильная карта сайта играет существенную роль при поисковом продвижении сайта. Долгие годы лучшим беслатным и универсальным компонентом для генерации карты сайта на Joomla является Xmap. Однако в базовом варианте он отдает ссылку вроде:
index.php?option=com_xmap&view=xml&tmpl=component&id=1

В то время, как в большинстве случаев рекомендуется короткая ссылка yoursite.ru/sitemap.xml - просто и лаконично и вкусно для поисковых роботов. Как же добиться такого результата?

Переопределение при помощи mod_rewrite

Если на вашем сервере используется Apache, достаточно добавить несколько строк в файл .htaccess, которые позволяют сэмулировать нужные URL. Тепрь добавьте следующие две строки:

RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&id=1&view=xml

 

После этого карта сайта будет иметь короткий и лаконичный вид:
http://www.yoursite.ru/sitemap.xml

Делаем sitemap.xml для многоязычных сайтов

Рассмотрим пример с двуязычным сайтом на русском и английском языках:

# Sitemap для русской версии
RewriteCond %{REQUEST_URI} ^/sitemap.xml
RewriteRule .* /index.php?option=com_xmap&view=xml&tmpl=component&id=1
# Sitemap для английской версии
RewriteCond %{REQUEST_URI} ^/en/sitemap.xml
RewriteRule .* /en/index.php?option=com_xmap&view=xml&tmpl=component&id=2

 

В первом случае у сайта русский идет язык по умолчанию без префикса, английская версия имеет префикс /en/ и ведет на карту сайта с другим языком. В соответствии с примером можно добавить дополнительные карты сайта для других языков.

Индекс для карты сайта

Если вы не хотите использовать переопределение файла, существует альтернативный способ без использования mod_rewrite. Можно создать индекс (оглавление) карты сайта в корневой папке сайта. Достаточно создать файл sitemap.xml в корне сайта и добавить в него следующее содержимое:

<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <sitemap>
      <loc><a href="http://www.yourdomain.ru/index.php?option=com_xmap&view=xml&id=1&lang=ru</loc>" rel="nofollow" target="_blank" >http://www.yourdomain.ru/index.php?option=com_xmap&view=xml&id=1&lang=ru</loc></a>
   </sitemap>
   <sitemap>
      <loc><a href="http://www.yourdomain.ru/index.php?option=com_xmap&view=xml&id=1&lang=en</loc>" rel="nofollow" target="_blank" >http://www.yourdomain.ru/index.php?option=com_xmap&view=xml&id=1&lang=en</loc></a>
   </sitemap>
</sitemapindex>

 

Где yourdomain.ru - ваш домен. Возможно добавить столько разделов sitemap, сколько потребуется (не превышая порог в 50.000). Не забывайте обновлять URL'ы с корректным ID карты сайта и языковым префиксом. Если на сайте один язык, то можно удалить префикс &lang=xx.

Добавляем sitemap в robots.txt

Последний штрих: подсказываем поисковым роботам как найти путь к карте сайта. Для этого нужно открыть файл robots.txt и в конце добавить / заменить следующую строку:

Sitemap: http://www.yoursite.ru/sitemap.xml

 

Изменения для OSMap

Добавлено в статью 29.03.2016: поскольку Xmap более не поддерживается, наиболее актуальным форком на данный момент является OSmap. Для этого компонента рецепт тот же, только нужно изменить URL вместо:

/index.php?option=com_xmap&view=xml&tmpl=component&id=1 на:
/index.php?option=com_osmap&view=xml&tmpl=component&id=1