AnotherPages. Виртуальные страницы для СЕОшников и не только.
Компонент позволяет создавать неограниченное количество «виртуальных копий» ресурса, не создавая дубль самого ресурса. Бесплатно.
Т.е. берём ресурс, меняем некоторые ключевые поля и выводим на экран со всеми остальными данными. Можно подменять: основные поля ресурса, tv (указываем в настройках). TV-поля пока обрабатываются только текстовые, комбобокс и файл (например меняем ключевые слова и мета-описание, если храним их в TV).
В первую очередь актуально для товаров minishop2.
Например, на основании одного товара «Платье белое» можно (не создавая реальных ресурсов и не копируя данный) создать связанные с ним страницы товаров «Платье летнее белое с лампасами», «Праздничное платье» и т.п… Таким образом можно охватить дополнительную семантику.
Автоматически генерируется отдельный файл ap_sitemap.xml, добавьте его в robots при желании.
В комплекте сниппет, выводящий список ссылок на виртуальные копии данного ресурса.
Поиск и отдача виртуальной страницы производится на событие OnPageNotFound.
Недостатки: на данный момент «копии» ресурса не участвуют в поиске по сайту (а нужны ли они в поиске?); может ещё что-то, всё-таки это не ресурсы.
Если будет интерес к компоненту, попозже добавлю функционал загрузки по шаблону из csv.
Забрать можно тут.
В первую очередь актуально для товаров minishop2.
Например, на основании одного товара «Платье белое» можно (не создавая реальных ресурсов и не копируя данный) создать связанные с ним страницы товаров «Платье летнее белое с лампасами», «Праздничное платье» и т.п… Таким образом можно охватить дополнительную семантику.
Автоматически генерируется отдельный файл ap_sitemap.xml, добавьте его в robots при желании.
В комплекте сниппет, выводящий список ссылок на виртуальные копии данного ресурса.
Поиск и отдача виртуальной страницы производится на событие OnPageNotFound.
Недостатки: на данный момент «копии» ресурса не участвуют в поиске по сайту (а нужны ли они в поиске?); может ещё что-то, всё-таки это не ресурсы.
Если будет интерес к компоненту, попозже добавлю функционал загрузки по шаблону из csv.
Забрать можно тут.
Поблагодарить автора
Отправить деньги
Комментарии: 33
Здравствуйте.
А можно документацию? Скрины как выглядит в админке? :)
Забрать можно тут < — ссылка битая.
А можно документацию? Скрины как выглядит в админке? :)
Забрать можно тут < — ссылка битая.
Добавил / поправил. Спасибо.
Классный компонент, а хлебные крошки строит? И можно ли управлять вложенностью, т.е. делать урл как отдельная страница site.ru/dop.html так и подраздел страницы к которой виртуальная добавлена site.ru/page/dop.html?
Хлебные пока нет, это планировал на потом, если потребуется.
URL любой можно указать. Если не указывать — сгенерит по настройкам системы.
На самом деле — это заготовка, реализация хорошей идеи на скорую руку.
Я его не очень использовал пока — сделал по просьбе товарища, пробует.
Собственно, жду обратной связи от пользователей.
Планировал развивать, насколько время позволит.
URL любой можно указать. Если не указывать — сгенерит по настройкам системы.
На самом деле — это заготовка, реализация хорошей идеи на скорую руку.
Я его не очень использовал пока — сделал по просьбе товарища, пробует.
Собственно, жду обратной связи от пользователей.
Планировал развивать, насколько время позволит.
Интересная разработка. А Гугл и Яндекс в индекс такие ресурсы пускают? Может есть какие-либо цифры по приросту трафика на конкретном проекте (без ссылок, просто: было-стало)? Спасибо.
А это все в процессе выяснения) Коллега-сеошник занимается. Но на некоторых взлетевших ресурсах такая штука замечена.
Поэтому ожидаем результата. С т.з. поисковиков должно быть все нормально.
Надо пробовать.
Я и выложил пораньше, чтобы собрать какую-то обратную связь. Может кто-то что-то полезное подскажет — внедрим. Всем польза.
Поэтому ожидаем результата. С т.з. поисковиков должно быть все нормально.
Надо пробовать.
Я и выложил пораньше, чтобы собрать какую-то обратную связь. Может кто-то что-то полезное подскажет — внедрим. Всем польза.
Хорошо, пишите по мере поступления информации.
«Тестовый» сайт сегодня занял первое место по ключевому запросу. До этого — что не делали — болтался на 2-5 странице (по объективным причинам). Но, повторюсь, для меня сео — тема мутная и что там в итоге повлияло на отдачу чёрного ящика — я не знаю ) Скорее всего все наши действия в куче.
Ну что ж, офигенно) Добавил компонент в TODO. Спасибо!
Алексей, добрый день!
Поставил дополнение, все работает как часы, спасибо! Но, при переходе на https, возникла проблема. На виртуальной странице не выводится контент (именно content) со страницы родителя. То-есть pagetitle, url, description, все меняется как надо и если ввести content в самой виртуальной странице, все ок, а вот если поле content не заполнено в виртуальной странице, а заполнено у родителя, то пусто. Причем проблема пришла после перехода на htts. Не пойму в чем дело?
Поставил дополнение, все работает как часы, спасибо! Но, при переходе на https, возникла проблема. На виртуальной странице не выводится контент (именно content) со страницы родителя. То-есть pagetitle, url, description, все меняется как надо и если ввести content в самой виртуальной странице, все ок, а вот если поле content не заполнено в виртуальной странице, а заполнено у родителя, то пусто. Причем проблема пришла после перехода на htts. Не пойму в чем дело?
А нет, сейчас стал проверять, по умолчанию со станице родителя ничего не берется. https не при чем. И еще заметил, если стоит CKEditor, то в виртуальной странице поле content не сохраняется. Вводишь текст, сохраняешь, открываешь по новой, а там пусто!
Добрый день
У нас вроде нормально. Если можете — напишите в личку доступы к админке + где смотреть, я посмотрю вечером.
У нас вроде нормально. Если можете — напишите в личку доступы к админке + где смотреть, я посмотрю вечером.
Алексей, извини, сайт уже рабочий. Попробовал отключить CKEditor, все заработало. У меня там блоками MIGX сделано, возможно из-за этого. Сейчас буду еще на одном сайте ставить. Там посмотрю и отпишусь.
Полезно!
Где он данные хранит? В своей табличке?
Где он данные хранит? В своей табличке?
Да.
На всякий случай: не стоит пускаться во все тяжкие и запускать компонент на боевом сайте прямо сходу.
Как и любое действие, которые делается во имя сео, — тренироваться нужно на кошках.
Используйте возможности fenom'а:
На всякий случай: не стоит пускаться во все тяжкие и запускать компонент на боевом сайте прямо сходу.
Как и любое действие, которые делается во имя сео, — тренироваться нужно на кошках.
Используйте возможности fenom'а:
// видит только авторизованный в админке
{if $_modx->hasSessionContext('mgr')}
{'!apList' | snippet : ['elinking' => 0]}
{/if}
// только для ресурса id=5
{if 'id' | resource == 5}
{'!apList' | snippet : ['elinking' => 0]}
{/if}
Яндекс будет клеить такие страницы.
Это проверено? На каком основании он их склеит?
Таки это совсем разные страницы (если вы замените все ключевые поля).
Однако для меня сео — нечто невнятное и нестабильное, поэтому я не спорю. Пробуйте.
У нас пока нет чёткого результата (не запустили изменения в индекс в значимом объёме + время нужно).
Таки это совсем разные страницы (если вы замените все ключевые поля).
Однако для меня сео — нечто невнятное и нестабильное, поэтому я не спорю. Пробуйте.
У нас пока нет чёткого результата (не запустили изменения в индекс в значимом объёме + время нужно).
Исходя из этой логики тогда он склеит и обычные страницы категорий… в одну)
Николай, а вы разве не знали. Для этого и есть canonical, чтобы определялась главная страница категории.
Задумка очень хорошая. А если речь идет не об одном товаре, а о выборке. Допустим есть 5 строительных магазинов: A,B,C,D,E и они допустим в категории «Строительные магазины». Можно ли их засунуть в виртуальную категорию «Обои», допустим только магазины A,D,E.
В текущем виде — нет, это не ресурсы, поэтому их нельзя просто взять и выбрать.
Хотя вариант есть ) Об этом ниже.
Вопрос с «родителем» для этих страниц нужно решить.
Я думал сделать 2 варианта:
1) можно их делать «потомками» исходной страницы или потомками родителя исходной страницы. Что логично, т.к. это по-сути синонимы этой страницы;
2) назначать им нескольких «родителей» (как мультикатегории в ms2) — тогда теоретически их можно выводить в списках товаров. Самый простой вариант — заюзать preparesnippet. В нём проверять наличие «виртуальных» страниц у данного ресурса и передавать в чанк массив с их данными. В чанке проверить на пустоту этот массив — если не пуст — foreach / рендер. В общем, есть варианты.
Хотя вариант есть ) Об этом ниже.
Вопрос с «родителем» для этих страниц нужно решить.
Я думал сделать 2 варианта:
1) можно их делать «потомками» исходной страницы или потомками родителя исходной страницы. Что логично, т.к. это по-сути синонимы этой страницы;
2) назначать им нескольких «родителей» (как мультикатегории в ms2) — тогда теоретически их можно выводить в списках товаров. Самый простой вариант — заюзать preparesnippet. В нём проверять наличие «виртуальных» страниц у данного ресурса и передавать в чанк массив с их данными. В чанке проверить на пустоту этот массив — если не пуст — foreach / рендер. В общем, есть варианты.
как быть с canonical URL? По умолчанию отдает урл основной страницы
Не знаю. Возможно, я не понял вопрос )
Вы можете вывести любой каноникал, какой вам нужен, это не имеет отношения к работе компонента.
Предложите, как и что нужно настроить.
Вы можете вывести любой каноникал, какой вам нужен, это не имеет отношения к работе компонента.
Предложите, как и что нужно настроить.
Как получить урл сгенерированной страницы, и сделать проверку на эту страницу в шаблоне?
<link rel="canonical" href="http://site.com/canonical-link.html"/>
С помощью этого атрибута можно довольно быстро устранить проблемы дублирующего контента.
Виртуальная страница имеет ресурс-источник. У вас есть его id в переменной $.get.id, наверное так:
{$.get.id | url : ['sheme' => 'full']}
Пишу на ходу, если не получится — уточню попозже.
Ещё можно было бы это подружить с Localizator, тогда будет вообще огонь.
В обозримом будущем точно не смогу этим заняться. Позднее загружу его на гит.
Всем привет. Не совсем понимаю один момент.
После того как я создал дополнительные страницы и вывел их сниппетом, пытаюсь кликнуть на ссылку по любой из них и получаю редирект на главную. Так и должно быть?
После того как я создал дополнительные страницы и вывел их сниппетом, пытаюсь кликнуть на ссылку по любой из них и получаю редирект на главную. Так и должно быть?
Нет. Что-то не так. Возможно, виновата (не)настройка ЧПУ или целевой ресурс удалён или не опубликован (при просмотре без авторизации в админке). Если проблема не решится — напишите в личку доступы к админке, посмотрю.
У меня ресурс скрыт из меню и опубликован, но сниппет не выводит ни одной ссылки на варианты страниц ресурса!
По ссылке ap_sitemap.xml все работает. где находится генерация xml? напишу свой сниппет.
ap_sitemap.xml выводит все ссылки по всем контекстам и доменным именам, есть необходимость сделать как в pdoSitemap только для активного $_SERVER['HTTP_HOST']
Дополнительные поля TV не подтягиваются из шаблона
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.