Как массово удалить в интернет-магазине страницы товаров, которые не приносят трафик

Идея написать статью появилась после обучения на курсе Алексея Селезнева «R для интернет-маркетинга». Я решил поделиться опытом удаления в полуавтоматическом режиме большого количества непосещаемых страниц на сайте.
Статья будет полезна веб-аналитикам, которые работают с крупными интернет-магазинами. Например, на сайте еженедельно появляется примерно 1000 новых наименований и такое же количество позиций переходит в статус «нет в наличии».
К тому же, непонятно, когда товар появится снова в наличии. Приходится скрывать товары с витрины либо сохранять карточки с URL, чтобы страницы недоступных к заказу наменований не выпадали из индексации и факторы ранжирования не сказывались на позициях всего сайта.
В итоге трафик не растет, количество страниц увеличивается в геометрической прогрессии, место на сервере заканчивается и в структуре сайта множится хаос. Для решения подобных сложностей подходит удаление в полуавтоматическом режиме страниц, не приносящих трафика за последние 3-4 месяца.
Язык R в интернет-маркетинге — дайджест полезных публикаций Чтобы выяснить, какие страницы сайта получают трафик, понадобится API Яндекс Метрики. Для решения задачи подойдет любой язык программирования, который поддерживает работу с HTTP-запросами, — я пользуюсь
Для подключения его нужно скачать и установить. Также для комфортной работы с R рекомендую использовать бесплатную среду разработки RStudio.
Для решения вышеописанной задачи нам потребуется установить пакеты для:
- загрузки данных из кабинетов Яндекс Метрики — \" rym\"
- работы со временем и временными периодами — \"lubridate\"
- работы с таблицами и агрегации данных — \"data.table\" и \"dplyr\"
Чтобы установить пакеты из основного репозитория CRAN примените базовую функцию install.packages:
install.packages(\"rym\", dependencies = TRUE)install.packages(\"lubridate\", dependencies = TRUE)install.packages(\"data.table \", dependencies = TRUE)install.packages(\"dplyr\", dependencies = TRUE)Пакет достаточно установить однажды, но подключать нужно каждый раз при запуске нового сеанса работы с R. Для подключения используйте функцию library.
library(google***yticsR)library(lubridate)library(data.table)library(dplyr)1. Предварительно необходимо скачать все страницы вашего сайта в формате файла .csv или .excel (сделать это можно через Netpeak Spider или просто выгрузив все страницы через CMS вашего сайта).
2. Определитесь, какие страницы не получали трафик более 4 месяцев (если брать меньший период, то можно вычистить страницы, которые недавно только были переведены в инактив и, возможно, еще могут принести трафик).
Задайте период отсчета 4 месяца:
date_end<- round_date(today() - months(3), unit = \"month\")Подключитесь к предварительно загруженному файлу со всеми страницами сайта:
setwd(\"C:\********\")Вместо * укажите путь к папке, в которой находится файл со всеми страницами сайта (который вы создали на шаге 1). Задавая путь к файлу, обязательно используйте разделители \ или одинарный /.
При первичном обращении к API Яндекс.Метрики, вам потребуется создать и сохранить токен доступа. При следующих обращениях вы сможете проходить идентификацию без ввода пароля. Для авторизации используйте функцию rym_auth(). Задайте период отсчета 4 месяца:
rym_auth(login = \"*****\", token.path = \"metrica_token\")
Вместо * укажите ваш логин в Яндекс.Метрике. После запуска этой функции откроется окно запроса доступов.
После подтверждения прав вы попадете на страницу выдачи ключей.
Это техническая страница, созданная автором пакета \"rym\" Алексеем Селезневым, для получения токена. Токен появится в папке, которую вы задали во втором шаге. Данные вашего аккаунта защищены, потому что:
- доступ к аккаунту через R возможен только при наличии на вашем компьютере файла с токеном;
- обращения ведутся только через папку, созданную на втором шаге нашей инструкции.
zaprosi <- rym_get_data(counters = \"*****\",date.from = date_end,date.to = \"yesterday\",dimensions = \"ym:s:startURL\",metrics = \"ym:s:pageviews\",accuracy = \"full\",login = \"*****\",token.path = \"metrica_token\",lang = \"ru\")В поле counters = \"*****\", вместо * укажите номер вашего счетчика в Яндекс.Метрике.
в поле login = \"*****\", вместо * введите логин, который вы указали на этапе авторизации токена.
\"ym:s:startURL\" – показывает URL страницы\"ym:s:pageviews\" – количество просмотров этой страницыИзучите подробную инструкцию по API Яндекс.Метрики.
Затем загрузите в среду разработки RStudio файл с таблицей URL вашего сайта. Обратитесь к папке, где находится файл.
setwd(\"C:\********\")Загрузите его.
site <- fread(\"********.csv\", header=\"auto\", encoding=\"UTF-8\")
Вместо * укажите название файла со всеми страницами сайта.
В исходном файле, который вы получили на третьем этапе, есть столбец со списком всех URL. Он может называться по-разному, но для удобной обработки данных в выгружаемой статистике Яндекс.Метрики назовите столбцы одинаково.
Для этого переименуйте название столбца в файле Яндекс.Метрики:
setnames(zaprosi, \"Страница входа\", \"*******\")zaprosi – таблица с выгруженной статистикой из Яндекс.Метрики.\"Страница входа\" – Название столбца с URL в таблице zaprosi.
\"******\" – это название заголовка столбца с URL в файле с сайта.
Установите связь между таблицами.
view_url <- left_join(site,zaprosi, by=\"*****\")Вместо * укажите название столбца с URl, который вы задали. Далее доработайте полученный файл. Выберите страницы с числом просмотров = 0.
view_url <- replace_na(view_url,0)view_url <- view_url %>% filter(`Просмотры` == 0)Агрегируйте первые 5000 страниц. Не стоит удалять сразу большими «пачками» страницы: берите не более 15-20% от общего количества и смотрите, как поведет себя алгоритм поиска. Роботы поисковиков в любом случае не смогут просканировать за раз все страницы, но резкий спад в числе отдаваемых сайтом страниц может привести к неоднозначным выводам со стороны поиска. Удаляйте страницы планомерно, детально оценивая уровень позиций и трафика на ваш сайт.
view_url <- view_url[1:5000,] Запишите полученный результат в файл.
write.csv(view_url,\"del_stranici.csv\",fileEncoding = \"UTF-8\")Вы получили список страниц, которые не приносят трафик. Удалите их одним из способов:
- если позволяет CMS, загрузите их самостоятельно на сайт и задайте параметры на удаления;
- передайте список вашему программисту и попросите удалить.
Вывод
Данное решение относительно просто реализовать и без применения языка R. Нужно просто вручную скачать страницы из Яндекс.Метрики, затем найти все пустые страницы через функцию ВПР и удалить их по схеме, применимой для вашей CMS. Но главное преимущество использования языка программирования в решении подобных задач состоит в экономии времени.
Сохраните код в отдельный файл и настройте цикличное выполнение аналогичной задачи, например, раз в месяц. Дальше повторное выполнение всей описанной выше рутины займет всего несколько секунд или вовсе выполнится автоматически.
Учите языки программирования, прокачивайте скил и упрощайте рутинные задачи в интернет-маркетинге. Если остались вопросы, задавате в комментариях — я с радостью отвечу.
Комментарии:
Директ Коммaндер от Яндекса позволяет легко работать с большими кампаниями...
17 07 2026 5:57:32
Оставить заявку на горячей линии МОЗ — это только вершина айсберга. Необходимо провести опрос среди сотрудников компании. И не один. А ещё подготовить несколько помещений для вакцинации и отдыха. Узнать больше!...
16 07 2026 13:32:25
Информация для SEO- и PPC-специалистов, маркетологов и предпринимателей малого бизнеса...
15 07 2026 20:31:34
Как подготовиться и сделать из интервью полноценную историю, которая будет интересна аудитории...
14 07 2026 11:18:14
Инструкция для новичков по одновременной работе с кампаниями, а также объявлениями и группами в Яндекс.Директ...
13 07 2026 10:21:54
В мае прошлого года Google анонсировал выход нового Core Web Vitals. Что это и как будет работать рассмотрим в статье...
12 07 2026 7:58:42
Что делать, если вы специально или нет попали под фильтр: руководство от выявления до спасения...
11 07 2026 19:32:41
За что, по мнению рекламодателей, готовы платить пользователи в России и Украине? Рейтинг самых дорогих ключевых слов Google Рекламы по версии Serpstat....
10 07 2026 1:13:11
В помощь контент-маркетологам, редакторам, авторам и бизнесу: идеи, которые учитывают фактор SEO. Переупакуйте статьи, заметки, любые другие посты — угодите читателям и поисковикам. Узнать больше!...
09 07 2026 23:20:53
Проверенные лайфхаки по платному трафику от спикеров и участников конференции 8P 2018...
08 07 2026 2:56:17
На скорость и полноту результатов продвижения влияют конкретные риски. И некоторые из них можно выделить еще до начала сотрудничества. Рассказываем, какие именно....
07 07 2026 3:52:36
Инструменты веб-мастера: что может заменить Google ***ytics?...
06 07 2026 18:22:50
Пожар в дата-центре, неудачные обновления и то самое падение Facebook....
05 07 2026 21:32:53
Когда на сайт добавляют новый контент, он тут же трaнcлируется в RSS-ленту и отображается в специальных программах для чтения, либо в email подписчиков. Как это работает?...
04 07 2026 10:28:24
В статье коротко о способах объединения данных из разных источников для создания отчётов...
03 07 2026 18:17:58
Три способа парсинга данных с помощью Owox BI Pipeline, Mix Data BI Import, Owox BI Power Upload....
02 07 2026 11:29:33
Gif для стрима. Пост пятничного веселья — гифки о буднях специалистов по контекстной рекламе....
01 07 2026 18:21:14
Происходит все большая автоматизация рекламы от Google. И это хорошо....
30 06 2026 5:30:40
Как мы с помощью Call Tracking узнали настоящую рентабельность контекстной рекламы для магазина мебели...
29 06 2026 20:22:16
Пpaктика: где искать шаблоны скриптов, как их редактировать и какие есть меры предосторожности при работе со скриптами....
28 06 2026 2:20:53
Сравнительная хаpaктеристика B2B и B2C. Как строятся отношения с клиентом, какой объем рынка, особенности сервиса, на чем делать акцент при создании контента. Подробнее....
27 06 2026 11:54:28
Примеры странной, классной и непонятной рекламы в соцсетях из моей ленты за февраль 2021 года...
26 06 2026 11:55:11
О списках исключенных мест размещения будет интересно узнать тем, кто хочет облегчить себе работу с контекстно-медийными сетями....
25 06 2026 2:41:21
Онлайн-корпоративы стали трендом 2020 года, но останутся с нами надолго если не в чистом, то в гибридном формате. Делимся опытом организации дня рождения компании в Zoom....
24 06 2026 15:37:12
Список минус-слов для Google Рекламы для B2B сайтов....
23 06 2026 20:22:21
Баннерная реклама в фейсбуке. Обзор семи новых рекламных инструментов...
22 06 2026 2:16:15
В статье рассказываем, какие бывают push-уведомления, когда их используют, даем чек-лист и пошаговую инструкцию по созданию успешной push-рассылки....
21 06 2026 7:36:43
Изучаем на примере тестирования товарных кампаний в момент смены логотипа и ренейминга...
20 06 2026 15:35:25
Правила Facebook позволяют пользоваться автоматизированным контролем над эффективностью рекламы. Читайте, как уменьшить количество ручной работы с помощью автоматических правил...
19 06 2026 1:42:37
Что поможет написать объявление без грамматических ошибок? В недрах агентства Netpeak рождается новый полезный сервис...
18 06 2026 7:36:31
Сегодня именно тот день, когда пора решиться и отправить своё резюме в нашу компанию....
17 06 2026 0:23:55
Подробнейшая статья об эффективном использовании ремаркетинга. Мотаем на ус!...
16 06 2026 7:56:32
О работе внутреннего и внешнего контент-маркетолога: необходимые знания и навыки для старта, плюшки и головная боль. Все здесь....
15 06 2026 1:26:57
Казахстанские реалии: данные по более 1 млн кликов в 23 тематиках и 15 городах....
14 06 2026 7:36:17
Менеджмент и лидерство: 4 разных типа руководства организацией и нескучные иллюстрации в стиле South park....
13 06 2026 18:28:43
На отклонение исходящих ссылок после загрузки файла может уйти достаточно много времени: от нескольких недель до нескольких месяцев...
12 06 2026 8:47:16
Кейс: новинки в продвижении рекламы интернет-магазина в контекстно-медийной сети Google...
11 06 2026 12:58:20
Четкая структура полноценного письма с примерами из рассылок крупных компаний: Aviasales, LinguaLeo, Rozetka, Yves Rocher, Pich Shop, Эльдорадо и другие....
10 06 2026 5:28:23
Работ по оптимизации всегда много, а выделить приоритеты при продвижении онлайн — непросто. Что стоит проверять и исправлять в первую очередь?...
09 06 2026 21:27:39
Какие рассылки можно отправить покупателю, если у вас есть только данные из карточки товара...
08 06 2026 0:14:39
Здесь не нужно часами собирать семантику, прописывать уйму расширений и создавать максимально релевантные объявления под каждый товар, а потому вам нужен этот понятный и короткий мануал! Читайте дальше!...
07 06 2026 9:41:29
Девять свежих советов для продвижения интернет-магазинов...
06 06 2026 3:46:33
Каким правилам нужно следовать, чтобы создать эффективный рекламный ролик?...
05 06 2026 6:32:59
Сначала учитесь, а потом идите в бизнес и предпринимательство. Бизнес — это игра, в которую играют пару тысяч лет, и здесь не нужно придумывать велосипеды. Научитесь сначала просто ездить, потом уже будете думать про кастомы....
04 06 2026 13:16:56
Как сделать склейку и сохранить трафик, распространенные ошибки при склеивании. Узнать больше!...
03 06 2026 0:21:19
Как прокачать свои знания и навыки использования GA, чтобы оптимизировать сайт и получать больше (намного больше, чем сейчас) трафика, конверсий, вовлечения. Больше!...
02 06 2026 16:29:54
Look-alike аудитории, таргетинг на участников групп, ограничение стоимости установки и другие вкусные фишки myTarget...
01 06 2026 23:29:40
Что такое App Store optimization и как раскручивать мобильные приложения...
31 05 2026 7:44:40
Можно ли повысить оценку качества целевой страницы , если проставить конечные URL на уровне ключевого слова? Результаты исследования....
30 05 2026 5:18:33
Как автоматизировать рутину в Google Таблицах с помощью Google Apps Script...
29 05 2026 23:48:38
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::