Правильный sitemap.xml в Joomla!

в 7:49, , рубрики: Joomla, seo, sitemap, метки: , ,

Правильный sitemap.xml в Joomla!
У некоторых разработчиков, работающих с CMS Joomla! рано или поздно возникает проблема с созданием карты сайта. Начинаешь искать компоненты для генерации карты сайта и находишь несколько бесплатных вариантов. Большинство выбирают в качестве генератора карты сайта на Joomla! компонент Xmap, который действительно генерирует отличную карту сайта как в формате .html так и в .xml, которую с удовольствием съедает как Яндекс, так и Google. К тому же этот компонент имеет возможность, хоть и через плагины, составлять карту сайта с галерей и прочих расширений. Однако в этом компоненте есть существенный недостаток — генерирует он карту сайта, грубо говоря, черт знает куда. А именно по адресу mysite.com/index.php?option=com_xmap&sitemap=1&view=xml, что конечно совсем не придает плюсов. Например Я запрещаю индексацию дублей страниц в robots.txt таким образом: Disallow: /index.php. Соответственно, когда Я пытаюсь скормить карту сайта Яндексу или Гуглу они мне сообщают об ошибке, ведь Я запретил индексацию дальше /index.php и тут же подсовываю карту сайта, которая именно там и находится. В итоге нам приходится убирать запрет индексации дублей (к сожалению в Joomla! они присутствуют), или подыскивать другой компонент карты сайта для Joomla! Но если все таки карта сайта Xmap получается дружелюбной для поисковиков, можно попробовать решить ее недостаток...
А именно получим статичный файл карты сайта sitemap.xml из компонента Xmap:

  • Создаем в корне сайта файл sitemap.php со следующим содержимым:
    <?php 
    $url="http://".$_SERVER['HTTP_HOST']."/index.php?option=com_xmap&sitemap=1&view=xml"; /*Указываем путь до карты сайта, генерируемой компонентом Xmap*/
    $xml_code = file_get_contents($url);
    if (file_put_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml', $xml_code))
       {
          echo "<h1>XML sitemap successfully updated</h1>";
          $xml_code = file_get_contents($_SERVER['DOCUMENT_ROOT'].'/sitemap.xml'); /* файл, в который будет сохранена карта сайта*/
          $xml_code = str_replace ("</url>", "</url><br>", $xml_code);
          echo $xml_code;
       } 
          else echo "<h1>Error!</h1>";
    ?>
    
  • Выставляем права на файл sitemap.php 705
  • Создаем ежедневное задание в Cron'е
  • Указываем полученную карту сайта в robots.txt:
    Sitemap: mysite.ru/sitemap.xml

В итоге мы получили дружелюбный файл карты сайта sitemap.xml из компонента Xmap

Автор: Yazov

* - обязательные к заполнению поля