Неправильное расположение файла Sitemap?

#
Неправильное расположение файла Sitemap?
В HostCMS файл Sitemap располагается не в корне сайта, а только в определенной директории – например http://mysite.ru/sitemap/. XML-формат может быть правильным и Google его скушает, но включенные в него URL будут недопустимыми и исключатся из дальнейшего рассмотрения. Google конкретно говорит о местоположении файлов Sitemap - https://www.google.com/webmasters/tools/docs/ru/protocol.html в разделе «Местоположение файлов Sitemap».

Цитирую:
Местоположение файла Sitemap определяет набор URL, которые можно включать в этот Sitemap. Файл Sitemap, расположенный в каталоге http://example.com/catalog/sitemap.xml может включать любые URL, начинающиеся с http://example.com/catalog/, но не должен включать URL, начинающиеся с http://example.com/images/.

И еще оттуда же:
Настоятельно рекомендуется поместить Sitemap в корневой каталог Вашего веб-сервера. Например, если адрес Вашего сервера — example.com, то Ваш файл Sitemap должен находиться в http://example.com/sitemap.xml.

Если учесть все вышесказанное, то URL включенные в файл Sitemap HostCMS будут игнорироваться Google, т.к. они находятся вне /sitemap/!!!

Пожелание разработчикам HostCMS.
Подобно robots.txt и favicon.ico, необходимо чтобы файл Sitemap был доступен по адресу например http://mysite.ru/sitemap.xml а не http://mysite.ru/sitemap/.
Или если учесть что сайт может содержать более 50000 URL`ов, то наилучшим решением было бы использовать файл индекса Sitemap (для группирования нескольких файлов Sitemap).

Например:
Файл индекса - http://mysite.ru/sitemapindex.xml включающий в себя пути к Sitemap -
Статических страниц и документов:
http://mysite.ru/sitemap.xml
Информационных систем:
http://mysite.ru/news/sitemap.xml
http://mysite.ru/articles/sitemap.xml
http://mysite.ru/info/glossary/sitemap.xml

#
Re: Неправильное расположение файла Sitemap?
Wong, функционал генерации карты сайта для Гугла уже был нами изменен ранее. Вам необходимо поместить в корень сайта файл sitemap.php. Его код:
<?
// Подключаем основные классы
require_once('main_classes.php');

$kernel = & singleton('kernel');

// Загрузка модулей
$kernel->LoadModules();

$site = new site();

// Получаем ID текущего сайта по алиасу(HTTP_HOST)
$alias_row = $site->GetAlias($domain);

if ($alias_row)
{
   $current_alias = $site->GetCurrentAlias($alias_row['site_id']);

   header("Content-Type: text/xml" );
   $content = $kernel->GetUrl("http://{$current_alias}/sitemap/" );
   $content = str_replace(">", ">\n", $content);
   $content = str_replace("</", "\n</", $content);
   echo $content;
}
?>

А также обновите XSL-шаблон "GoogleSiteMap". Вот его код:
<?xml version="1.0" encoding="windows-1251"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
targetNamespace="http://www.sitemaps.org/schemas/sitemap/0.9"
xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
   <xsl:output encoding="UTF-8" method="xml" indent="yes" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>

   <!-- GoogleSiteMap -->

   <xsl:template match="/document">
      <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
         <!-- Выбираем узлы структуры -->
         <xsl:apply-templates select="structure"/>
      </urlset>
   </xsl:template>

   <xsl:template match="structure">

      <!-- Показывать ссылку и ссылка не внешняя -->
      <xsl:if test="show_link = 1 and is_external_link = 0">
         <url>
            <loc>http://<xsl:value-of select="/document/site/alias[@alias_current = 1]/alias_name"/><xsl:value-of select="link"/></loc>
            <changefreq>
               <xsl:choose>
                  <xsl:when test="structure_change_frequency = 0">always</xsl:when>
                  <xsl:when test="structure_change_frequency = 1">hourly</xsl:when>
                  <xsl:when test="structure_change_frequency = 2">daily</xsl:when>
                  <xsl:when test="structure_change_frequency = 3">weekly</xsl:when>
                  <xsl:when test="structure_change_frequency = 4">monthly</xsl:when>
                  <xsl:when test="structure_change_frequency = 5">yearly</xsl:when>
                  <xsl:when test="structure_change_frequency = 6">never</xsl:when>
                  <xsl:otherwise>daily</xsl:otherwise>
               </xsl:choose>
            </changefreq>
            <priority>
               <xsl:choose>
                  <xsl:when test="structure_priority/node()"><xsl:value-of select="structure_priority"/></xsl:when>
                  <xsl:otherwise>0</xsl:otherwise>
               </xsl:choose>
            </priority>
         </url>

         <!-- Выбираем подузлы структуры -->
         <xsl:apply-templates select="structure"/>
         
      </xsl:if>
   </xsl:template>
</xsl:stylesheet>
Модератор
#
Re: Неправильное расположение файла Sitemap?
natalya,
в обновлении 5.1.0 ./sitemap.php уже был включен.
#
Re: Неправильное расположение файла Sitemap?
Большое спасибо за ответ!
А возможно ли в будущем решение с файлом индекса Sitemap?
Модератор
#
Re: Неправильное расположение файла Sitemap?
Wong,
Не могу сказать, мы не рассматривали этот вопрос.
#
Re: Неправильное расположение файла Sitemap?
Да, как раз, тоже это заметил, что sitemap.xml работает лишь частично. Хотел написать в поддержку, но нашёл эту тему в форуме.

sitemap.xml позволяет более качественно отиндексировать сайт, потому что все документы сайта получаются в одном месте и в одном клике от главной страницы. Этот протокол используют уже Google, Yandex, Yahoo и Microsoft. Исходя из чего можно сделать вывод, что sitemap.xml - хорошее средство для наиболее полной индексации сайта.

Поэтому, хочу ещё раз поднять эту тему и присоединиться к Wong'у с его просьбой. Иначе, просто нет смысла загружать сервер генерацией, в общем, не работающего в такой конфигурации файла...

PS: Информация о правильном расположении файла sitemap.xml находится на официальном сайте протокола: http://www.sitemaps.org/ru/protocol.php#location
#
Re: Неправильное расположение файла Sitemap?
Снова поднимаю этот вопрос. Уважаемые специалисты, ответьте, пожалуйста.

PS: Это не просто вопрос. Что мне делать, если заказчик в ТЗ на сайт укажет необходимость (а я его понимаю, она реально есть) наличия файла sitemap.xml в корне сайта?

Спасибо.
Модератор
#
Re: Неправильное расположение файла Sitemap?
Уже давно вместе с системой поставляется файл sitemap.php в корне системы.
#
Re: Неправильное расположение файла Sitemap?
Тааак, хорошо, я его видел. Я и не говорил, что sitemap.xml не генерируется. Но подскажите мне пожалуйста, как сделать так, чтобы он был виден по конкретному, определённому СТАНДАРТОМ адресу: www.site.ru/sitemap.xml , а не адресу, по которому он виден в текущих версиях ХостЦМС: www.site.ru/sitemap/ . Согласитесь, что это СОВЕРШЕННО разные вещи!

Спасибо за ответ.
Модератор
#
Re: Неправильное расположение файла Sitemap?
www.site.ru/sitemap.php не менее стандартен и вполне подходит.
Авторизация