AnotherPages. Виртуальные страницы для СЕОшников и не только.

Компонент позволяет создавать неограниченное количество «виртуальных копий» ресурса, не создавая дубль самого ресурса. Бесплатно.


Т.е. берём ресурс, меняем некоторые ключевые поля и выводим на экран со всеми остальными данными. Можно подменять: основные поля ресурса, tv (указываем в настройках). TV-поля пока обрабатываются только текстовые, комбобокс и файл (например меняем ключевые слова и мета-описание, если храним их в TV).

В первую очередь актуально для товаров minishop2.
Например, на основании одного товара «Платье белое» можно (не создавая реальных ресурсов и не копируя данный) создать связанные с ним страницы товаров «Платье летнее белое с лампасами», «Праздничное платье» и т.п… Таким образом можно охватить дополнительную семантику.





Автоматически генерируется отдельный файл ap_sitemap.xml, добавьте его в robots при желании.
В комплекте сниппет, выводящий список ссылок на виртуальные копии данного ресурса.
Поиск и отдача виртуальной страницы производится на событие OnPageNotFound.

Недостатки: на данный момент «копии» ресурса не участвуют в поиске по сайту (а нужны ли они в поиске?); может ещё что-то, всё-таки это не ресурсы.

Если будет интерес к компоненту, попозже добавлю функционал загрузки по шаблону из csv.

Забрать можно тут.
Алексей Шумаев
07 ноября 2019, 16:38
modx.pro
11
888
+21
Поблагодарить автора Отправить деньги

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

Scorp Satex
07 ноября 2019, 19:10
0
Здравствуйте.

А можно документацию? Скрины как выглядит в админке? :)

Забрать можно тут < — ссылка битая.
Ilya Ev
07 ноября 2019, 22:09
0
Классный компонент, а хлебные крошки строит? И можно ли управлять вложенностью, т.е. делать урл как отдельная страница site.ru/dop.html так и подраздел страницы к которой виртуальная добавлена site.ru/page/dop.html?
    Алексей Шумаев
    07 ноября 2019, 22:15
    0
    Хлебные пока нет, это планировал на потом, если потребуется.
    URL любой можно указать. Если не указывать — сгенерит по настройкам системы.

    На самом деле — это заготовка, реализация хорошей идеи на скорую руку.
    Я его не очень использовал пока — сделал по просьбе товарища, пробует.
    Собственно, жду обратной связи от пользователей.
    Планировал развивать, насколько время позволит.
    Yar
    Yar
    08 ноября 2019, 12:14
    0
    Интересная разработка. А Гугл и Яндекс в индекс такие ресурсы пускают? Может есть какие-либо цифры по приросту трафика на конкретном проекте (без ссылок, просто: было-стало)? Спасибо.
      Алексей Шумаев
      08 ноября 2019, 13:08
      0
      А это все в процессе выяснения) Коллега-сеошник занимается. Но на некоторых взлетевших ресурсах такая штука замечена.
      Поэтому ожидаем результата. С т.з. поисковиков должно быть все нормально.
      Надо пробовать.
      Я и выложил пораньше, чтобы собрать какую-то обратную связь. Может кто-то что-то полезное подскажет — внедрим. Всем польза.
        Yar
        Yar
        11 ноября 2019, 11:59
        0
        Хорошо, пишите по мере поступления информации.
          Алексей Шумаев
          15 ноября 2019, 08:41
          +1
          «Тестовый» сайт сегодня занял первое место по ключевому запросу. До этого — что не делали — болтался на 2-5 странице (по объективным причинам). Но, повторюсь, для меня сео — тема мутная и что там в итоге повлияло на отдачу чёрного ящика — я не знаю ) Скорее всего все наши действия в куче.
            Yar
            Yar
            15 ноября 2019, 12:03
            0
            Ну что ж, офигенно) Добавил компонент в TODO. Спасибо!
          Алексей
          18 марта 2020, 13:24
          0
          Алексей, добрый день!
          Поставил дополнение, все работает как часы, спасибо! Но, при переходе на https, возникла проблема. На виртуальной странице не выводится контент (именно content) со страницы родителя. То-есть pagetitle, url, description, все меняется как надо и если ввести content в самой виртуальной странице, все ок, а вот если поле content не заполнено в виртуальной странице, а заполнено у родителя, то пусто. Причем проблема пришла после перехода на htts. Не пойму в чем дело?
            Алексей
            18 марта 2020, 13:53
            0
            А нет, сейчас стал проверять, по умолчанию со станице родителя ничего не берется. https не при чем. И еще заметил, если стоит CKEditor, то в виртуальной странице поле content не сохраняется. Вводишь текст, сохраняешь, открываешь по новой, а там пусто!
              Алексей Шумаев
              18 марта 2020, 14:18
              0
              Добрый день
              У нас вроде нормально. Если можете — напишите в личку доступы к админке + где смотреть, я посмотрю вечером.
                Алексей
                18 марта 2020, 14:52
                0
                Алексей, извини, сайт уже рабочий. Попробовал отключить CKEditor, все заработало. У меня там блоками MIGX сделано, возможно из-за этого. Сейчас буду еще на одном сайте ставить. Там посмотрю и отпишусь.
        DeHuCkA
        08 ноября 2019, 13:53
        0
        Полезно!
        Где он данные хранит? В своей табличке?
          Алексей Шумаев
          08 ноября 2019, 13:59
          0
          Да.
          На всякий случай: не стоит пускаться во все тяжкие и запускать компонент на боевом сайте прямо сходу.
          Как и любое действие, которые делается во имя сео, — тренироваться нужно на кошках.
          Используйте возможности fenom'а:
          // видит только авторизованный в админке
          {if $_modx->hasSessionContext('mgr')}
              {'!apList' | snippet : ['elinking' => 0]}
          {/if}
          
          // только для ресурса id=5
          {if 'id' | resource == 5}
              {'!apList' | snippet : ['elinking' => 0]}
          {/if}
          Роман
          11 ноября 2019, 11:51
          0
          Яндекс будет клеить такие страницы.
            Алексей Шумаев
            11 ноября 2019, 11:56
            +1
            Это проверено? На каком основании он их склеит?
            Таки это совсем разные страницы (если вы замените все ключевые поля).
            Однако для меня сео — нечто невнятное и нестабильное, поэтому я не спорю. Пробуйте.
            У нас пока нет чёткого результата (не запустили изменения в индекс в значимом объёме + время нужно).
              Николай
              11 ноября 2019, 12:30
              0
              Исходя из этой логики тогда он склеит и обычные страницы категорий… в одну)
                Роман
                12 ноября 2019, 12:53
                0
                Николай, а вы разве не знали. Для этого и есть canonical, чтобы определялась главная страница категории.
              Сергей Лим
              12 ноября 2019, 00:25
              0
              Задумка очень хорошая. А если речь идет не об одном товаре, а о выборке. Допустим есть 5 строительных магазинов: A,B,C,D,E и они допустим в категории «Строительные магазины». Можно ли их засунуть в виртуальную категорию «Обои», допустим только магазины A,D,E.
                Алексей Шумаев
                12 ноября 2019, 00:41
                0
                В текущем виде — нет, это не ресурсы, поэтому их нельзя просто взять и выбрать.
                Хотя вариант есть ) Об этом ниже.

                Вопрос с «родителем» для этих страниц нужно решить.
                Я думал сделать 2 варианта:
                1) можно их делать «потомками» исходной страницы или потомками родителя исходной страницы. Что логично, т.к. это по-сути синонимы этой страницы;
                2) назначать им нескольких «родителей» (как мультикатегории в ms2) — тогда теоретически их можно выводить в списках товаров. Самый простой вариант — заюзать preparesnippet. В нём проверять наличие «виртуальных» страниц у данного ресурса и передавать в чанк массив с их данными. В чанке проверить на пустоту этот массив — если не пуст — foreach / рендер. В общем, есть варианты.
                Dmitrii
                12 ноября 2019, 09:35
                0
                как быть с canonical URL? По умолчанию отдает урл основной страницы
                  Алексей Шумаев
                  12 ноября 2019, 09:45
                  0
                  Не знаю. Возможно, я не понял вопрос )
                  Вы можете вывести любой каноникал, какой вам нужен, это не имеет отношения к работе компонента.
                  Предложите, как и что нужно настроить.
                    Dmitrii
                    12 ноября 2019, 09:50
                    0
                    Как получить урл сгенерированной страницы, и сделать проверку на эту страницу в шаблоне?
                    <link rel="canonical" href="http://site.com/canonical-link.html"/>
                    С помощью этого атрибута можно довольно быстро устранить проблемы дублирующего контента.
                      Алексей Шумаев
                      12 ноября 2019, 09:58
                      0
                      Виртуальная страница имеет ресурс-источник. У вас есть его id в переменной $.get.id, наверное так:
                      {$.get.id | url : ['sheme' => 'full']}
                      Пишу на ходу, если не получится — уточню попозже.
                  Илья Александрович
                  25 марта 2020, 17:04
                  0
                  Ещё можно было бы это подружить с Localizator, тогда будет вообще огонь.
                    Алексей Шумаев
                    25 марта 2020, 23:00
                    0
                    В обозримом будущем точно не смогу этим заняться. Позднее загружу его на гит.
                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    27