FENOM'енальный курс. Часть 18. Robots, Sitemap, Canonical.

Шаблон MAGAZINE вы можете скачать по ссылке.

Этот урок будет последним в нашем с вами курсе. В нем мы с вами рассмотрим, как создать robots.txt, sitemap.xml и как настроить канонические ссылки. Погнали!

Начнем мы с вами с простого – robots.txt. Для этого нам необходимо создать ресурс в корне сайта:

  • Заголовок – robots
  • Шаблон – пустой шаблон
  • Срыть из меню – Да
  • Опубликован – Да
  • Тип содержимого – text
  • Доступен для поиска – нет
  • Использовать HTML-редактор – нет

А в содержимое ресурса пишем:

User-agent: *

Allow: /

Host: {$_modx->config.site_url}

Sitemap: {$_modx->config.site_url}sitemap.xml
	

Теперь вы сможете управлять файлом robots с помощью панели администратора. Аналогично создаем ресурс sitemap:

  • Заголовок – sitemap
  • Шаблон – пустой шаблон
  • Срыть из меню – Да
  • Опубликован – Да
  • Тип содержимого – XML
  • Доступен для поиска – нет
  • Использовать HTML-редактор – нет

Но sitemap у нас будет хитрый и состоять из нескольких кусков. Поэтому в содержимое ресурса пишем вызов pdoResources:

<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    {$_modx->runSnippet("pdoResources",[
        "parents" => $_modx->resource.id,
        "limit" => 0,
        "tpl" => "@FILE chunks/sitemap.tpl"
    ])}
</sitemapindex>
	

Как вы уже догадались, данный файл у нас будет иметь дочерние ресурсы. Чанк sitemap.tpl:

<sitemap>
	<loc>{$id | url : ['scheme' => 'full']}</loc>
</sitemap>
	

И создаем дочение подресурсы, аналогичные родителю. Содержимое ресрурса sitemap1:

{$_modx->runSnippet("pdositemap",[
    "showHidden" => 1,
    "sortby" => "uri"
])}
	

Содержимое ресурса sitemap2:

{$_modx->runSnippet("sfSitemap",[
    "fast" => 1,
    "mincount" => 1
])}
	

В первом ресурсе мы выводим все страницы сайта в сайимап, а во втором виртуальные страницы SEOFilter. Я бы еще поправил последнюю строку в robots.txt:

Sitemap: {71 | url : ["scheme" => "full"]}
	

Теперь нам нужно настроить канонические ссылки, для того, чтобы склеить все дубли страниц в поисковой системе. Реализуется это с помощью простой конструкции, которую нужно вставить в чанк meta.tpl:

{if $_modx->getPlaceholder('sf.url')}
	<link rel="canonical" href='{$_modx->resource.id | url : ["scheme"=>"full"]}{$_modx->getPlaceholder("sf.url")}'>
{else}
	<link rel="canonical" href='{$_modx->resource.id | url : ["scheme"=>"full"]}'>
{/if}
	

Good work, everyone! Мы с вами справились с нашим большим курсом! Поздравляю всех, кто дошел до этой части.

FENOM'енальный курс. Часть 18. Robots, Sitemap, Canonical.

0 Число голосов: 6
5
5
1
6

Комментарии ()

  1. Василий 27 марта 2019, 14:58 # 0
    Артём, у меня почему-то не получилось вывести в
    <head> ...{$id | url : ['scheme' => 'full']}" rel="canonical" />
    Разумеется по средствам phx [[~[[*id]]? &scheme=`full`]] всё работает, но на феномен почему-то, когда я его включаю или же пусто или же в viewsource этот же кусок фенома, как решить феноменально?
    1. Петропавловский Артем 27 марта 2019, 15:13 # 0
      Попробуйте указать так:
      {$_modx->resource.id | url : ["scheme"=>"full"]}
      1. Василий 01 апреля 2019, 17:48 # 0
        Попробовал, но, не получилось. А в системных настройках включено только: pdotools_fenom_default — Да.
        1. Василий 08 апреля 2019, 10:01(Комментарий был изменён) # 0
          Артём, получилось включить Fenom настройки:
          — pdotools_fenom_default — Да
          — pdotools_fenom_modx — Да
          — pdotools_fenom_php — Да
          Остальные в Нет, но в view-source: страницы $head по прежнему, почему-то выводит не адрес страницы, а fenom код. Если включить ещё и «Использовать Fenom на страницах — Да», то вообще ничего не выводит (белый экран/пусто).
          1. Василий 08 апреля 2019, 14:15(Комментарий был изменён) # 0
            Решено.
            — pdotools_fenom_default — Да
            — pdotools_fenom_modx — Да
            — pdotools_fenom_php — Да
            — pdotools_fenom_parser — Да

            Ошибка синтаксиса в html-страницы, pdoParser (pdotools_fenom_parser) ломался когда доходил до скриптов.! Внимательно смотрите, чтобы после всех фигурных скобок — "{" стоял пробел. Либо обернуть style в тег {ignore}{/ignore}
        2. Анатолий 04 сентября 2020, 10:33 # 0
          Артем, интересно было бы получить бекап и базу окончательного варианта FENOM'енального магазина.Если не затруднит, дайте ссылочку
          1. Петропавловский Артем 04 сентября 2020, 12:11(Комментарий был изменён) # 0
            Полная сборка есть в нашем магазине дополнений. Стоимость 8200 руб.
            1. Петропавловский Артем 04 сентября 2020, 12:13 # 0
            2. Влад 17 апреля 2023, 11:57(Комментарий был изменён) # 0
              Добрый день! Хм, создавал sitemap по Вашему уроку, но не могу разобраться, почему яндекс не хочет проходить по файлам вложенным внутри. Буду благодарен за направление) В robots указан основной файл-контейнер, в файле ссылки на мапыВ вебмастере яндекса вот такаяibb.co/WKpHDpp

              Наши клиенты

              Многие компании уже доверяют нам. Будьте в их числе!

              Хотите реализовать проект?

              Контакты

              Напишите нам - мы расскажем вам много интересного!


              Пермь, шоссе Космонавтов 252, офис 218