[SEO Domains] Добавление доп. доменов и поддоменов для сайта, с добавлением в вебмастер

SEO Domains — Это добавление дополнительных доменов и поддоменов для сайта, с возможностью импорта доменов из XLSX файла, а также автоматически добавлять их в Вебмастер Яндекса.

Возможности
  • Управление доп. доменами и поддоменами (site.ru, spb.site.ru, astana.site.kz, site.by, brest.site.by)
  • Быстрое копирование любого домена
  • Управление доп. полями для каждого домена
  • Импорт доменов и всех его доп. полей через XLSX-файл
  • Добавление и автоматическое подтверждение прав в Яндекс.Вебмастере
  • Автоматическое получение координатов адреса
  • Возможность выбора города пользователем



Пример использования
Для добавления домена перейдите в Приложения -> Города и домены, нажмите Добавить, и заполните необходимые поля


Для добавления дополнительного поля к выбранному домену, перейдите во вкладку Дополнительные поля, и нажмите добавить, введите ключ который будет доступен через вызов плейсхолдера (Пример: [[!+sd.price_1]]), а также остальные поля.


Доступные плейсхолдеры
[[!+sd.city]] — Город
[[!+sd.city_r]] — Город (склонение)
[[!+sd.phone]] — Телефон
[[!+sd.email]] — E-mail
[[!+sd.address]] — Адрес
[[!+sd.address_full]] — Полный адрес
[[!+sd.coordinats]] — Координаты

Выбор города на сайте
Вызовите сниппет SeoDomainsList в нужном вам месте
пример:
[[SeoDomainsList?
    &tplRow=`SeoDomains.City.row`
    &tplOuter=`SeoDomains.City.outer`    
]]


Добавление в Вебмастер
Для начала вам нужно зарегистрировать приложение в oauth.yandex.ru/, обязательно выберите в Доступах «Добавление сайтов в Яндекс.Вебмастер, получение информации о статусе индексирования». После получения ID, перейдите oauth.yandex.ru/authorize?response_type=token&client_id=ID, после скорируйте token, и сохраните его в Настройках приложения, ключ seodomains_token

Управление доменами через админку MODX
Для это достаточно в Алиасах к сайту прописать wildcart поддомен (Пример: *.seodomains.tyrsyna.ru). При обращении к несуществующему домену будет происходить редирект на основной домен который был введен в настройках (ключ seodomains_main_host)


Настройки компонента
seodomains_default_email — E-mail по умолчанию
seodomains_default_phone — Телефон по умолчанию
seodomains_html_parent — Родитель HTML ресурсов для подтверждения прав на домен
seodomains_main_host — Основной хост
seodomains_phx_prefix — Префикс для плейсхолдеров
seodomains_token — Token от Яндекс.OAuth

FAQ
Q: Где я могу найти пример xlsx-файла для импорта?
A: Пример находится в папке assets/components/seodomains/import

Q: Как добавлять доп. поля через XLSX-файл?
A: Откройте пример который находится тут — assets/components/seodomains/import, там вы найдете строчку Дополнительные поля, вставьте в неё JSON массив следующего содержания:
[
{"name":"Название вашего поля (необязательно)","key":"Ключ вашего доп поля","value":"Его значение"},
{"name":"Название вашего 2 поля (необязательно)","key":"Ключ вашего 2 доп поля","value":"Его значение"}
]

Демо — seodomains.tyrsyna.ru
Дополнение платное — 390 ₽
modstore.pro/packages/other/seodomains

Если вы купили компонент и у вас что-то не работает, либо нужна помощь в настройке и т.д. то пожалуйста, создайте тикет в поддержке.
Mikhail Tyrsyna
24 декабря 2018, 13:15
modx.pro
4
4 361
+11
Поблагодарить автора Отправить деньги

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

Михаил
25 декабря 2018, 06:42
0
Как похож компонент на changeDomain
    Mikhail Tyrsyna
    25 декабря 2018, 09:11
    0
    Не совсем, в changeDomain используется только поддомен, у меня же весь домен целиком, ну и плюс то что написано в возможностях
    Никита
    25 декабря 2018, 09:56
    0
    Компонент хорош, но…
    Вопрос, раз уж компонент называется SEODomains: возможно ли добавления отдельных robots.txt и sitemap.xml?
      Mikhail Tyrsyna
      25 декабря 2018, 10:09
      1
      0
      Извините, возможно я не понял вашего вопроса.

      Вот пример как это работает сейчас
      seodomains.tyrsyna.ru/robots.txt
      msk.seodomains.tyrsyna.ru/robots.txt
      seodomains.tyrsyna.ru/sitemap.xml
      msk.seodomains.tyrsyna.ru/sitemap.xml
        Димыч
        25 декабря 2018, 16:33
        0
        Allow: /assets/cache_image/
        Если папка assets не закрыта от индексирования, то смысла вроде нет в этой конструкции.
        Disallow: /&
        ИМХО, лишнее.
        Host: https://msk.seodomains.tyrsyna.ru/
        Host без протокола и закрывающего слэша пишется, так: Host: msk.seodomains.tyrsyna.ru
        Crawl-delay: 10
        Тоже весьма сомнительный параметр.
          Mikhail Tyrsyna
          25 декабря 2018, 16:49
          0
          Это же просто пример.
            Руслан Сафин
            25 декабря 2018, 17:21
            0
            Я для поддоменов снипет написал для генерации robots.txt на лету, если есть знания php, то делов на 10 минут
              Димыч
              25 декабря 2018, 17:25
              0
              Дык, тоже писал, вопрос не в этом. Просто, если пример дается, то почему бы его не сделать корректным? )
        Дмитрий
        26 декабря 2018, 13:11
        0
        Затестил – компонент отличный!
          Mikhail Tyrsyna
          26 декабря 2018, 13:17
          0
          Спасибо за фидбэк :>
          pr-light
          01 марта 2019, 15:01
          0
          а как выводить дополнительные поля?
          joxi.ru/D2PBvYWHpQJVZr
          это же данные основного домена?
            Mikhail Tyrsyna
            01 марта 2019, 15:05
            +1
            [[!+sd.тут_ключ_вашего_доп_поля]]
              pr-light
              06 марта 2019, 13:08
              0
              Очень крутой плагин) спасибо)

              Я бы две вещи очень хотел видеть:
              — возможность копировать город со всеми настройками
              — возможность при загрузке из xlsx загружать свои поля

              в остальном все круто
                Mikhail Tyrsyna
                06 марта 2019, 13:29
                0
                Видел ваше письмо, уже отметил себе, постараюсь добавить в следующих обновлениях.

                Спасибо за фидбэк :>
                  Mikhail Tyrsyna
                  17 мая 2019, 20:46
                  0
                  Добавил данную возможность, обновите компонент.
              pr-light
              31 марта 2019, 18:13
              0
              привет, а есть какой-то вариант подставлять активному городу класс active в меню выбора города?
              типа в
              [[SeoDomainsList?
              &tplRow=`SeoDomains.City.row`
              &tplOuter=`SeoDomains.City.outer`
              ]]

              в &tplRow доп класс активности?
                Mikhail Tyrsyna
                31 марта 2019, 20:02
                0
                Обновите компонент.
                В последней версии доступен плейсхолдер active

                Пример вызова:
                [[!SeoDomainsList?
                    &activeClass=`active`
                ]]

                Чанк SeoDomains.City.row
                <li><a href="//[[+domain]]" rel="nofollow" class="[[+active]]">[[+city]]</a></li>
                  pr-light
                  02 апреля 2019, 12:37
                  +1
                  Спасибо ) Жаль в документации не пишете )
                    Андрей
                    02 апреля 2019, 12:41
                    +1
                    Всё есть в changelog — https://modstore.pro/packages/other/seodomains#tab/changelog, его тоже стоит читать =)
                      Mikhail Tyrsyna
                      02 апреля 2019, 12:46
                      0
                      Написал :>
                        Noll
                        23 апреля 2019, 17:08
                        0
                        Скажите пожалуйста, а где находятся настройка «Синонимы (алиасы)»? Не могу найти в админке.
                          Mikhail Tyrsyna
                          23 апреля 2019, 17:21
                          +1
                          Вы имеете ввиду это?
                          Для это достаточно в Алиасах к сайту прописать wildcart поддомен (Пример: *.seodomains.tyrsyna.ru)
                          Если да, то это задается у вас в хостинге, в документации приведем пример (хостинг NetAngels)

                          И если что пишите мне в Тех. поддержку :>
                            Noll
                            23 апреля 2019, 20:27
                            0
                            Да, я как раз это и имел в виду. Спасибо
                  pr-light
                  08 мая 2019, 16:55
                  0
                  привет, подскажи, а совсем разные домены я могу использовать?
                  то бишь хочу клонов сайта наделат ь на разных доменах

                  siate1.ru
                  site2.ru

                  и как при этом еще выводить sitemap?
                  е есть какой-то вариант борьбы с редиректами? типа как работать с .htaccess
                    Mikhail Tyrsyna
                    08 мая 2019, 18:57
                    0
                    привет, подскажи, а совсем разные домены я могу использовать?
                    то бишь хочу клонов сайта наделат ь на разных доменах

                    siate1.ru
                    site2.ru

                    Привет!
                    Да, можно, нужно лишь добавить псевдоним site2.ru к сайту siate1.ru. Ну и потом добавить в компоненте тоже

                    и как при этом еще выводить sitemap?
                    А в чем проблема? Тут просто главное выводить не кэшированным, и все:
                    [[!pdoSitemap?
                    	&cache=`0`
                    	&showHidden=`0`
                    	&parents=`0`
                    	&scheme=`full`
                    ]]

                    е есть какой-то вариант борьбы с редиректами? типа как работать с .htaccess
                    Что за редиректы?
                      pr-light
                      24 июля 2019, 11:07
                      0
                      Что за редиректы?
                      -а уже разобрался) спасибо)
                    pr-light
                    24 июля 2019, 11:06
                    0
                    Подскажи плз, как можно победить:

                    У меня 18 доменов приклеено через этот плагин, а тут сеошник выдает, то у нас есть раздел, который на каждом домене должен выводить свое. — адреса точек по районам в каждом городе…

                    как можно реализовать это без особых танцев с бубном? пробовал фильтровать, но чот не выходит (

                    Дерево пока получилось такое:

                    -магазины по районам (страница видимая юзеру):

                    --Екатеринбург (вводим дочерние если в sd выбран екат)
                    ---точка 1
                    ---точка 2

                    --Самара
                    ---точка 1
                    ---точка 2

                    --Саратов
                    ---точка 1
                    ---точка 2
                      Mikhail Tyrsyna
                      28 июля 2019, 09:54
                      0
                      Через доп. поля для домена не получается?
                      pr-light
                      05 сентября 2019, 11:23
                      0
                      Привет. Компонент начал вызывать ошибку 500 при попытке редактировать ресурс((

                      ошибка в логах сервера:

                      [Thu Sep 05 11:16:14 2019] [error] [client 2.58.194.141:34474] PHP Fatal error: Uncaught Error: Call to undefined method Seodomains::loadJsCss() in /home/p/prligh/kbtrus.ru/public_html/core/cache/includes/elements/modplugin/7.include.cache.php:36\nStack trace:\n#0 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modscript.class.php(76): include()\n#1 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modx.class.php(1668): modScript->process(NULL)\n#2 /home/p/prligh/kbtrus.ru/public_html/manager/controllers/default/resource/resource.class.php(186): modX->invokeEvent('OnDocFormRender', Array)\n#3 /home/p/prligh/kbtrus.ru/public_html/manager/controllers/default/resource/update.class.php(109): ResourceManagerController->fireOnRenderEvent()\n#4 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagercontroller.class.php(155): ResourceUpdateManagerController->process(Array)\n#5 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagerresponse.class.php(79): modManagerController->render()\n#6 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagerrequest.class.php(187): modMa in /home/p/prligh/kbtrus.ru/public_html/core/cache/includes/elements/modplugin/7.include.cache.php on line 36, referer kbtrus.ru/manager/?a=system/event
                      [Thu Sep 05 11:17:17 2019] [error] [client 2.58.194.141:44838] PHP Fatal error: Uncaught Error: Call to undefined method Seodomains::loadJsCss() in /home/p/prligh/kbtrus.ru/public_html/core/cache/includes/elements/modplugin/7.include.cache.php:36\nStack trace:\n#0 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modscript.class.php(76): include()\n#1 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modx.class.php(1668): modScript->process(NULL)\n#2 /home/p/prligh/kbtrus.ru/public_html/manager/controllers/default/resource/resource.class.php(186): modX->invokeEvent('OnDocFormRender', Array)\n#3 /home/p/prligh/kbtrus.ru/public_html/manager/controllers/default/resource/update.class.php(109): ResourceManagerController->fireOnRenderEvent()\n#4 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagercontroller.class.php(155): ResourceUpdateManagerController->process(Array)\n#5 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagerresponse.class.php(79): modManagerController->render()\n#6 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagerrequest.class.php(187): modMa in /home/p/prligh/kbtrus.ru/public_html/core/cache/includes/elements/modplugin/7.include.cache.php on line 36, referer kbtrus.ru/manager/
                      [Thu Sep 05 11:17:37 2019] [error] [client 2.58.194.141:47648] PHP Fatal error: Uncaught Error: Call to undefined method Seodomains::loadJsCss() in /home/p/prligh/kbtrus.ru/public_html/core/cache/includes/elements/modplugin/7.include.cache.php:36\nStack trace:\n#0 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modscript.class.php(76): include()\n#1 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modx.class.php(1668): modScript->process(NULL)\n#2 /home/p/prligh/kbtrus.ru/public_html/manager/controllers/default/resource/resource.class.php(186): modX->invokeEvent('OnDocFormRender', Array)\n#3 /home/p/prligh/kbtrus.ru/public_html/manager/controllers/default/resource/update.class.php(109): ResourceManagerController->fireOnRenderEvent()\n#4 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagercontroller.class.php(155): ResourceUpdateManagerController->process(Array)\n#5 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagerresponse.class.php(79): modManagerController->render()\n#6 /home/p/prligh/kbtrus.ru/public_html/core/model/modx/modmanagerrequest.class.php(187): modMa in /home/p/prligh/kbtrus.ru/public_html/core/cache/includes/elements/modplugin/7.include.cache.php on line 36, referer kbtrus.ru/manager/?a=element/template/update&id=9

                      помоги плз…

                      при отключении плагина все работает.

                      Это после обновления плагина вылезло
                        Mikhail Tyrsyna
                        05 сентября 2019, 11:28
                        0
                        Напиши в тех. поддержку разберемся
                          pr-light
                          05 сентября 2019, 14:30
                          0
                          в техподержку modstore? или у плагина своя?
                          . написал в модстор
                        pr-light
                        05 сентября 2019, 14:43
                        0
                        подскажи еще пожалуйста — мне как-то нужно с кешированием разобраться — я там выше писал…
                        реально ли сделать так, чтобы вызывать кешируемый pdoresource с рандомной сортировкой, но, чтобы генерировалось в каждом горроде по своему?

                        задача у меня такая — нужно, чтобы в блоке отзывы у каждого города вывелись отзывы на разных страницах разные один раз, но потом не менялись (не мелькали для поисковых ботов)… я вот сначала голову сломал как делать, а потом еще и плагин сломал)
                          topmarka
                          09 января 2020, 10:43
                          0
                          Михаил привет, пишу по модулю SEODomains,
                          А есть вариант в нем менять для региона не только одно поле Контент, а любое доп поле c контентом, чтобы если например у нас несколько полей контент на сайте.
                          Например: [[*content]] [[*dop-content1]] [[*dop-content2]]
                          Типо такого
                            Sergey
                            30 июня 2020, 14:39
                            0
                            Добрый день, Михаил! Подскажите пожалуйста, как поддомены добавляются и верифицируются в вебмастере? Токен получен, но ничего не происходит.
                              Oleg Pimanov
                              09 июля 2020, 23:13
                              0
                              Добрый вечер! Я добавил 2 поддомена, пытаюсь просто вызвать в определённом месте, но ничего не происходит. Что я не так делаю?

                              [[SeoDomainsList?
                              &tpl=`SeoDomains.City.tpl`
                              &sortby=`city`
                              &sortdir=`ASC`
                              &activeClass=`active`
                              &limit=`10`
                              &showLog=`0`
                              ]]
                                Mikhail Tyrsyna
                                10 июля 2020, 17:55
                                0
                                Ответил в поддержке
                                Алексей
                                21 февраля 2022, 13:15
                                0
                                Добрый день!
                                Подскажите, пожалуйста. Геолокация пользователя определяется автоматически или нет, т.е. если пользователь из Москвы, то подставляется Москва? Или только по определенным городам (которые задашь) работает?
                                  Игорь
                                  10 ноября 2022, 14:39
                                  0
                                  Здравствуйте.
                                  Подскажите, как выводить поля через fenom?
                                  Весь сайт на fenom сделан и как-то не хочется мешать со стандартным синтаксисом modx
                                    Игорь
                                    10 ноября 2022, 15:06
                                    0
                                    сообразил
                                    {var $phone1 = $_modx->getPlaceholder('sd.phone')}
                                    {if $phone1}
                                    <a class="phones__number" href="tel:{$phone1 | preg_replace : '/[^0-9+]/' : ''}">{$phone1}</a>
                                    {/if}
                                    Iskander
                                    27 января 2023, 21:23
                                    0
                                    Здравствуйте!
                                    Подскажите пожалуйста, использую SeoDomains и есть пара вопросов.

                                    1. Как бороться с дублями страниц статей и раздела статей на поддоменах, если на сайте не стоят вложенные URL?
                                    2. Есть ли возможность, чтобы при клике на статью или раздел статей на поддоменах, они открывался в новом окне (target="_blank") и на основном домене?
                                      Iskander
                                      31 января 2023, 12:59
                                      0
                                      Вот решение, спасибо за помощь Степану Гончарову
                                      <?php
                                      switch ($modx->event->name) {
                                      	case 'OnHandleRequest':
                                      		if ($_SERVER['HTTP_HOST'] != 'site.ru' && $modx->context->key === 'web') {
                                      			$_res = $modx->getObject('modResource', ['alias' => explode('.', basename($_REQUEST['q']))['0']]);
                                      			if (is_object($_res) && $_res != 'null') {
                                      				$_ids = $modx->getParentIds($_res->get('id'));
                                      				$_ids = array_reverse($_ids);
                                      				if(isset($_ids['1']) && intval($_ids['1']) == 54) {
                                      					$modx->sendRedirect($modx->getOption('seodomains_main_host').$modx->makeUrl($_res->get('id')), array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
                                      				}
                                      
                                      			}
                                      		}
                                      	break;
                                      }
                                      — Где в строке if ($_SERVER['HTTP_HOST'] != 'site.ru' && $modx->context->key === 'web') {
                                      site.ru ваш основной домен ставьте

                                      — В строке if(isset($_ids['1']) && intval($_ids['1']) == 54) {
                                      54 — ID раздела со статьями.

                                      OnHandleRequest — событие нужно включить для плагина
                                      иван
                                      01 августа 2023, 18:48
                                      0
                                      Доброго дня!
                                      Отличный компонент. Ему цены нет.
                                      Вот только один вопрос, как можно привязать определенные ресурсы к определенным поддоменам. Что бы не все ресурсы на всех поддоменах были, а выборочные. Голову уже сломал.(
                                      Заранее благодарен Вам. Хорошего настроения.
                                        Андрей
                                        12 февраля 2024, 14:56
                                        0
                                        Добрый день! Подскажите, а данный модуль не совместим с modx 3? Приобрели модуль, а в поиске его не находит (ключ апи подключен)

                                          Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                                          43