Как известно, правильная карта сайта играет существенную роль при поисковом продвижении сайта. Долгие годы лучшим беслатным и универсальным компонентом для генерации карты сайта на Joomla является Xmap. Однако в базовом варианте он отдает ссылку вроде:index.php?option=com_xmap&view=xml&tmpl=component&id=1
В то время, как в большинстве случаев рекомендуется короткая ссылка http://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://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>">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>">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
Удачной поисковой оптимизации сайта на Joomla!