MODX - Создание sitemap

Александр Мальцев
Александр Мальцев
22K
22
Содержание:
  1. Что такое файл sitemap.xml
  2. Создание файла sitemap.xml в MODX Revolution и его регистрация в поисковых системах
  3. Комментарии

Статья, в которой описывается процесс создания файла sitemap.xml, содержащего информацию о страницах веб-сайта, и его последующей регистрации в поисковых системах.

Что такое файл sitemap.xml

Файл sitemap.xml – это файл в формате XML, который составлен в соответствие с протоколом sitemap 0.9. Он предназначен для того, чтобы помочь поисковым системам (Яндекс, Google и Bing) проиндексировать страницы вашего сайта или блога. Данный файл, кроме адреса страницы (URL) содержит также ещё дополнительную информацию о каждой веб-странице: дату последней её модификации, насколько часто она изменяется и её приоритет перед другими страницами. Эту дополнительную информацию используют поисковые роботы, чтобы больше понять о каждой странице, а именно как часто надо ту или иную страницу заново индексировать, а также важность данной страницы перед другими страницами этого сайта или блога.

Создание файла sitemap.xml в MODX Revolution и его регистрация в поисковых системах

Для создания файла sitemap.xml будет использовать дополнение pdoTools, а точнее сниппет pdoSitemap. Данное дополнение (pdoTools) у нас уже установлено в MODX Revolution, так что можно сразу переходить к разработке карты сайта для поисковых систем.

1. Создать ресурс SiteMapXML и внести во вкладки "Документ" и "Настройки" следующие данные:

Вкладка "Документ":

  • Заголовок – SiteMapXML.
  • Шаблон – пустой.
  • Псевдоним – sitemap.
  • Не показывать в меню – Да.
  • Опубликован – Да.

MODX Revolution - Создание ресурса SiteMapXML. Вкладка - Документ.

Вкладка "Настройки":

  • Тип содержимого – XML.
  • Доступен для поиска – Нет.
  • Использовать HTML редактор – Нет.
  • Заморозить URI – Да.
  • URI – sitemap.xml.

MODX Revolution - Создание ресурса SiteMapXML. Вкладка - Настройки.

2. Сохранить ресурс SiteMapXML.

3. В поле содержимое ресурса SiteMapXML ввести следующее:

[[!pdoSitemap?
  &checkPermissions=`list`
]]

4. Проверяем результаты работы сниппета pdoSitemap. Для этого в адресной строке браузера вводим: http://www.mysite.ru/sitemap.xml.

MODX Revolution - Результаты работы сниппета pdoSitemap

5. Указать поисковым системам Яндекс, Google и Bing расположение карты сайта sitemap.xml.

Яндекс. В личном кабинете веб-мастера выбрать в левом меню пункт "Настройка индексирования" -> "Файлы Sitemap". В открывшейся форме ввести URL файла sitemap.xml и нажать на кнопку "Добавить".

Google. В личном кабинете веб-мастера в левом меню выбрать пункт "Сканирование" -> "Файлы Sitemap". В открывшейся странице нажать на кнопку "Добавление/Проверка файла sitemap".

Bing. В личном кабинете веб-мастера в левом меню выбрать пункт "Панель мониторинга" -> "Настройка сайта" -> "Sitemaps". В открывшейся странице указать URL файла sitemap.xml и нажать на кнопку "Отправить".

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

  1. martFormS
    28 мая 2021, 16:58
    все сделал как в статье но не пашет
    Есть сайт на modx 2.7.3, делал карту на pdoSitemap pdo 2.12.6 gk-grad.ru/sitemap.xml
    не делает карту никаким генератором

    .htaccess может виновать хм,
    вот он, может кто знает?

    # MODX supports Friendly URLs via this .htaccess file. You must serve web
    # pages via Apache with mod_rewrite to use this functionality, and you must
    # change the file name from ht.access to .htaccess.
    #
    # Make sure RewriteBase points to the directory where you installed MODX.
    # E.g., "/modx" if your installation is in a «modx» subdirectory.
    #
    # You may choose to make your URLs non-case-sensitive by adding a NC directive
    # to your rule: RewriteRule ^(.*)$ index.php?q=$1 [L,QSA,NC]

    RewriteEngine On
    RewriteBase /

    Header always edit Set-Cookie (.*) "$1; SameSite=Lax"

    # Prevent dot directories (hidden directories like .git) to be exposed to the public
    # Except for the .well-known directory used by LetsEncrypt a.o
    RewriteRule "/\.|^\.(?!well-known/)" — [F]

    # Rewrite www.example.com -> example.com — used with SEO Strict URLs plugin
    #RewriteCond %{HTTP_HOST}.
    #RewriteCond %{HTTP_HOST} ^www.(.*)$ [NC]
    #RewriteRule ^(.*)$ %1/$1 [R=301,L]
    #
    # or for the opposite example.com -> www.example.com use the following
    # DO NOT USE BOTH
    #
    #RewriteCond %{HTTP_HOST} !^$
    #RewriteCond %{HTTP_HOST} !^www\. [NC]
    #RewriteCond %{HTTP_HOST} (.+)$
    #RewriteRule ^(.*)$ www.%1/$1 [R=301,L].

    # Rewrite secure requests properly to prevent SSL cert warnings, e.g. prevent
    # www.example.com when your cert only allows secure.example.com
    RewriteCond %{SERVER_PORT} !^443$
    RewriteRule .* %{SERVER_NAME}%{REQUEST_URI} [R=301,L]

    # Redirect the manager to a specific domain — don't rename the ht.access file
    # in the manager folder to use this this rule
    #RewriteCond %{HTTP_HOST} !^example\.com$ [NC]
    #RewriteCond %{REQUEST_URI} ^/manager [NC]
    #RewriteRule ^(.*)$ example.com/$1 [R=301,L]

    # The Friendly URLs part
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

    # Make sure .htc files are served with the proper MIME type, which is critical
    # for XP SP2. Un-comment if your host allows htaccess MIME type overrides.

    #AddType text/x-component .htc

    # If your server is not already configured as such, the following directive
    # should be uncommented in order to set PHP's register_globals option to OFF.
    # This closes a major security hole that is abused by most XSS (cross-site
    # scripting) attacks. For more information: php.net/register_globals
    #
    # To verify that this option has been set to OFF, open the Manager and choose
    # Reports -> System Info and then click the phpinfo() link. Do a Find on Page
    # for «register_globals». The Local Value should be OFF. If the Master Value
    # is OFF then you do not need this directive here.
    #
    # IF REGISTER_GLOBALS DIRECTIVE CAUSES 500 INTERNAL SERVER ERRORS:
    #
    # Your server does not allow PHP directives to be set via .htaccess. In that
    # case you must make this change in your php.ini file instead. If you are
    # using a commercial web host, contact the administrators for assistance in
    # doing this. Not all servers allow local php.ini files, and they should
    # include all PHP configurations (not just this one), or you will effectively
    # reset everything to PHP defaults. Consult www.php.net for more detailed
    # information about setting PHP directives.

    #php_flag register_globals Off

    # For servers that support output compression, you should pick up a bit of
    # speed by un-commenting the following lines.

    #php_flag zlib.output_compression On
    #php_value zlib.output_compression_level 5

    Header set Access-Control-Allow-Origin *

    # The following directives stop screen flicker in IE on CSS rollovers. If
    # needed, un-comment the following rules. When they're in place, you may have
    # to do a force-refresh in order to see changes in your designs.

    ExpiresActive On

    <IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault «access 7 days»
    ExpiresByType application/javascript «access plus 1 year»
    ExpiresByType text/javascript «access plus 1 year»
    ExpiresByType text/html «access plus 7 day»
    ExpiresByType text/x-javascript «access 1 year»
    ExpiresByType image/gif «access plus 1 year»
    ExpiresByType image/jpeg «access plus 1 year»
    ExpiresByType image/png «access plus 1 year»
    ExpiresByType image/jpg «access plus 1 year»
    ExpiresByType image/x-icon «access 1 year»
    ExpiresByType application/x-shockwave-flash «access 1 year»


    # Cache-Control
    <ifModule mod_headers.c>
    # 30 ����
    <filesMatch "\.(ico|pdf|flv|jpg|svg|webp|jpeg|png|gif|swf)$">
    Header set Cache-Control «max-age=2592000, public»

    # 30 ����
    <filesMatch "\.(css|js)$">
    #Header set Cache-Control «max-age=2592000, public»

    # 2 ���
    <filesMatch "\.(xml|txt)$">
    #Header set Cache-Control «max-age=172800, public, must-revalidate»

    # 1 ����
    <filesMatch "\.(html|htm|php)$">
    #Header set Cache-Control «max-age=172800, private, must-revalidate»



    #������ ������ HTTP-���������� Vary ��������� ��������� MSIE
    <IfModule mod_setenvif.c>
    BrowserMatch «MSIE» force-no-vary
    BrowserMatch «Mozilla/4.[0-9]{2}» force-no-vary


    1. Вячеслав
      09 февраля 2020, 04:47
      Александр, нужна ваша помощь в sitemap добавляется вот это:
      <script type="text/javascript" charset="utf-8" id="zm-extension"/><code>
      В консоле гугла пишет что он не может распознать данный тег. Что делать ?
      1. Александр Мальцев
        10 февраля 2020, 06:45
        У вас ресурс должен быть без шаблона и иметь тип содержимого XML.
      2. Алексей
        26 февраля 2018, 12:13
        Столкнулся с проблемой:
        По адресу: «мой сайт/sitemap.xml »
        Выводиться одна строчка: «мой сайт/ 2018-02-25T16:46:31+03:00 daily 1.0»
        А если присмотреться — то перед ее показом — мгновенно мелькает XML-карты сайта, а затем мгновенно перекрывается этой строчкой,

        Вот скрин Мгновенного появления XML: storage7.static.itmages.ru/i/18/0225/h_1519569944_7135288_60f75494ba.png

        и скрин строки: storage2.static.itmages.ru/i/18/0225/h_1519570320_8895391_7e8f91dfe6.png

        Нажимал одновременно «Посмотреть» и заскриншотил — действительно мелькает карта сайта — Но почему она потом переписывается строкой:
        «мой сайт/ 2018-02-25T16:46:31+03:00 daily 1.0»?

        Кто сталкивался и что посоветуете?

        Что предпринимал:

        Использовал разное «Содержимое» для Sitemap:

        1-й Вариант:

        [[!pdoSitemap?
          &checkPermissions=`list`
        ]]
        2-й Вариант:
        [[pdoSitemap]]
        P.S.: MODX Revolution 2.6.1-pl / pdoTools / Реальный хостинг
        1. Никита
          12 января 2018, 14:10
          Добрый день, Александр

          Имею следующую проблему.

          Настроил ЧПУ по этому мануалу web-revenue.ru/nastroyka-chpu-modx (не рекамма, для ясности)
          А так же убрал префикс html с документов MODX в ЧПУ
          Пытаюсь вывести Sitemap.xml по вашему мануалу.
          .
          Все сделал, как написано. Шаблон — пустой, но почему то переходя по ссылке mysite/sitemap.xml у меня за место xml файла выводиться шаблон сайта.

          Так же и с файлом robots.txt

          OC:macOS, LocalServer: Laravel Valet (Nginx + PHP 7.1, MariaDB)
          1. Александр Мальцев
            14 января 2018, 06:52
            Уберите шаблон, сохраните ресурс, очистите кэш сайта и попробуйте открыть заново ресурс sitemap.xml.
            1. Никита
              12 января 2018, 17:38
              Видимо проблема была в среде разработки…

              Пробовал переносить на OpenServer выдавались ошибки.

              При создании заново на OpenServer все отрабатывает хорошо. По этому видимо драйвек для modx не подходит
            2. Evgenij
              27 ноября 2017, 23:41
              Александр, доброго времени суток!

              Подскажите пожалуйста ответ на глупый вопрос: как внести вновь созданную страницу в карту сайта?? У меня чот ничего не получается… Создал новую страницу, в ней есть вкладки где отмечается видимость в карте сайта, оставляю там «Да», обновляю там все, кэш чищу… и нифига!!! блин! КАК?
              1. Александр Мальцев
                28 ноября 2017, 15:55
                Здравствуйте! Проверьте, вызываете ли вы ресурс pdoSitemap не кэшированным, а также попробуйте убрать у ресурса галочку «Кэшируемый».
                Второй момент, может вы просто не опубликовали ресурс, и он у вас не попадает в sitemap.
                Если нужно включить в sitemap все скрытые и не опубликованные ресурсы то так:
                [[!pdoSitemap?
                  &checkPermissions=`list`
                  &showUnpublished=`1`
                  &showHidden=`1`
                  &parents =`0`
                ]]
                
                1. Evgenij
                  28 ноября 2017, 18:15
                  Вечер добрый!
                  Первый вариант! И "!" в вызове не стоял и галочка «Кэшируемый» не была снята.
                  Ресурс был опубликован. А все ресурсы в карту сайта запиховывать не хочется, да и не нужно.
                  Ну как всегда СПАСИБО!
                  На счет кэша нюанс видать изначально не принял во внимание, вот и закешировался файл. Но успел уже сделать, выпустил сайтмап заново… Не знаю конечно какие последствия будут, но по крайней мере его адрес тот же. Но ваш вариант менее масштабный, от того и правильней, конечно же ))
              2. Max
                19 августа 2017, 11:16
                sitemap стал выдавать ошибку:

                This page contains the following errors:
                error on line 22 at column 10: Opening and ending tag mismatch: link line 0 and head
                Below is a rendering of the page up to the first error.

                Что делать??
                1. Max
                  19 августа 2017, 11:25
                  Проблема решилась! Был указан шаблон, хотя изначально стоял пустой и карта работала и как то сбился на другой шаблон.
                2. Александр
                  21 марта 2017, 21:49
                  Здравствуйте. А подскажите такой момент: при использовании Collections есть возможность сгенерировать карту сайта? Как я понял pdoSitemap с этой задачей не справляется. Может Вам доводилось с такой проблемой встречаться?
                  1. Александр
                    22 марта 2017, 10:41
                    Что-то я под вечер затупил. Достаточно было использовать &showHidden=`1`
                  2. Юрий
                    15 марта 2017, 10:04
                    Здравствуйте, Александр!

                    Не могу понять как регулировать , у меня по умолчанию везде 1, и этот параметр changefreq>daily — каждый день это слишком много, так же не отображаются статьи в которых стоит галочка не показывать в меню. Это как-то можно регулировать?
                    1. Александр Мальцев
                      15 марта 2017, 16:39
                      Здравствуйте, Юрий.
                      По умолчанию данные параметры (changefreq и priority) задаются в зависимости от того, сколько времени прошло от даты его последнего изменения. Если документ новый, то устанавливаются более высокие значения. А если он изменялся давно, то более указываются более низкие.
                      Если вас это не устраивает, то можете их задать вручную с помощью параметра tpl. Для того чтобы убрать скрытые для меню ресурсы необходимо написать условие where.
                      [[!pdoSitemap?
                        &tpl=`@INLINE <url><loc>[[+url]]</loc><lastmod>[[+date]]</lastmod><changefreq>monthly</changefreq><priority>0.25</priority></url>`
                        &where=`{"hidemenu":"0"}`
                      ]]
                      
                      1. Юрий
                        15 марта 2017, 17:04
                        Спасибо)
                    2. Игорь Денисов
                      01 августа 2016, 17:44
                      Здравствуйте, Александр!
                      Возникла проблема с sitemap.xml. Сделал все так же, как вы описали. Но формируется лишь только карта с единственным тегом:
                      <urlset></urlset>
                      Даже Search Console при сканировании файла sitemap.xml выдает ошибку, что нет обязательного тега XML.
                      С чем это может быть связано? И как можно исправить?
                      1. Александр Мальцев
                        05 августа 2016, 11:48
                        Игорь, здравствуйте.
                        Проверьте, установлен ли pdoTools. Попробуйте обновить его на новую версию.
                        Обратите внимание на то, что этот ресурс кроме вызова этого сниппета не должен больше ничего содержать.
                        [[!pdoSitemap?
                          &checkPermissions=`list`
                        ]]
                        
                        1. Евгений
                          06 марта 2017, 20:44
                          Работает именно как в комментарии, как в приведенном примере не работает.
                      2. Анна
                        13 октября 2015, 15:10
                        Александр, возник вопрос.
                        Например, есть сайт, хорошо продвинутый в поисковиках, с высокой посещаемостью.
                        Сайт на wordpress, если я его перенесу на modx, он не упадет в поисковиках?
                        Слышала, такое бывает при смене cms
                        1. Александр Мальцев
                          14 октября 2015, 12:46
                          Анна, если Вы сохраните такую же структуру какая и была, то ничего страшного не произойдёт.
                        Войдите, пожалуйста, в аккаунт, чтобы оставить комментарий.