Как удалить ненужные ссылки из sitemap Есть решение

Собственно сабж

Ну и для более полного ответа, еще напишите какие есть плагины для работы с sitemap, я искал ничего не нашел нужно мне под эту задачу. Возможно я просто не знаю где это можно сделать стандартными средствами webasyst. Спасибо всем откликнувшимся на мой вопрос!

1 ответ

  • 1
    replicant 6 июня 2018 14:51 # Решение

    Можно скрыть товар или категорию и тогда она не будет выводиться в sitemap. Если скрывать нет желания, а из sitemap надо убрать (сама по себе ситуация лично для меня непонятная ну да и ладно), то для товаров и/или категорий надо идти в /wa-apps/shop/lib/config/shopSitemapConfig.class.php и модифицировать sql запросы под ваши задачи, включив в них исключения по какому-нибудь полю. Для приложения сайт конфиг аналогичный, но путь и название вместо shop содержат site.

    • +1
      Юзверь Юзверь 6 июня 2018 15:18 #

      У меня попадают в sitemap страницы, а не товары. Это страницы оплаты, гарантии и т.д. Данные страницы я создавал в Витрина->Страницы

      Вот собственно их мне и нужно убрать их из sitemap, ибо у меня robots.txt эти странички закрыты от индексации. А гугл ругается на это, мол ты че товарищ в роботс закрываешь от индексации, а в сайтмеп пихаешь, не логично дружочек.

      • +1
        replicant replicant 6 июня 2018 18:18 #

        Да без разницы. В вышеупомянутом файле /wa-apps/shop/lib/config/shopSitemapConfig.class.php есть запрос к выборке страниц для sitemap. В него надо ввести исключения по ID страниц. Допустим у вас есть страницы с ID = 11 и 12, которые надо убрать из карты сайта.

        Добавим в запрос id и условие по исключению ненужных страниц AND id !=11 и AND id !=12 и все. Страницы на сайте есть, но в сайтмап их теперь нет. В robots.txt вы уже заранее их закрыли.

        // pages
        $sql "SELECT id, full_url, url, create_datetime, update_datetime FROM ".$page_model->getTableName().'
        WHERE status = 1 AND id != 11 AND id !=12 AND domain = s:domain AND route = s:route';

        Если страниц, которые надо спрятать, много, то надо подумать как оптимизировать запрос, но зная признаки по id это сделать не сложно. Или можно вообще всю секцию pages исключить разом, если вообще ничего не надо выдавать в сайтмап. Там просто надо ключик status = 1 заменить на скажем 0, если скрытых нет, то мы все инвертируем и точка. Короче вариантов всяких полно. См. пример выше и фантазируйте по ходу по ситуации.

        При обновлении движка файлик надо заново модифицировать. Но имея модифицированный код делаем тупо копипаст и 5 сек все готово. Не так часто эти обновления выходят, чтобы напрягаться сверх меры.


        • +1
          Юзверь Юзверь 6 июня 2018 21:00 #

          Да, это как вариант. Но меня просто удивляет, почему столь нужную штуку еще никто не запилил в виде плагина.

          Спасибо Вам за подробный отчет, обязательно сделаю

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите