Заказать SEO-услуги
Согласен с правилами обработки персональных данных
Скорость ответа - до 30 минут!

Анализ логов сайта с помощью Power BI: пошаговая инструкция

like 282
223
29
30

Анализ логов сайта – важная часть технического аудита, особенно если у сайта есть проблемы с индексацией.
В этой статье мы разберём, что такое логи, какую информацию из них можно получить, и научимся делать анализатор с помощью BI-системы Power BI.

Что такое лог сайта

Польза для SEO

Чем анализировать

Анализатор логов на Power BI

Шаг 1. Подготовка данных

Шаг 2. Загрузка данных в Power BI

Шаг 3. Форматирование загруженных данных

Шаг 4. Объединить наборы данных

Шаг 5. Визуализация данных

Заключение

Что такое лог сайта

По сути, журнал, в который записываются все обращения клиента к серверу:

  1. Пользователь вбивает в адресную строку URL https://site.ru/url.html.
  2. Браузер отправляет GET-запрос к серверу.
  3. Если запрос корректен сервер отправляет статус «200 ОК».
  4. Сервер начинает отправлять файлы сайта.

Так вот, сервер записывает в лог следующую информацию:

  • IP-адрес клиента;
  • дата, время запроса и часовой пояс;
  • тип запроса: GET или POST;
  • page/2 — к какой странице было обращение;
  • протокол;
  • код ответа сервера;
  • реферр — откуда было обращение;
  • User-Agent клиента;
  • количество байт полученных клиентом.

Клиентом также выступают различные боты, в том числе и боты Google и Яндекса.

Пример записи:

46.229.168.151 — — [11/Jun/2019:06:25:21 +0300] «GET /kovry/klassicheskie-kovry/ovalnyj-kover-elite-472-61659-floare-carpet HTTP/1.1» 200 16250 «-» «Mozilla/5.0 (compatible; SemrushBot/3~bl; +http://www.semrush.com/bot.html)»

Тут мы видим, что 11 июня был сделан запрос /kovry/klassicheskie-kovry/ovalnyj-kover-elite-472-61659-floare-carpet с IP-адреса 46.229.168.151, судя по User-Agent эту страницу запрашивал бот сервиса Semrush.com. Статус ответа 200, успешно!

Хранятся логи на сервере в текстовом файле и выглядят следующим образом:

Пример лога

Польза для SEO

Благодаря тому, что в логе есть информация о IP-адресе и User-Agent клиента, мы можем видеть, как боты ходят по нашему сайту, что, в свою очередь, позволяет узнать массу интересного:

  • На какие страницы бот ходит чаще. Поняв это, мы можем на этих страницах размещать ссылки на новые страницы или на те, что не индексируются.
  • На какие страницы расходуется краулинговый бюджет.
  • Заходит ли бот на нужные страницы. Особенно важно, когда есть проблемы с индексацией.
  • Выявить мусорные страницы, которые не выявляются при парсинге сайта.
  • Своевременно увидеть ошибки редиректов, ошибки 404 и т. д. Особенно актуально при переезде или смене протокола.
  • Частота захода ботов по датам.

И много ещё чего, всё зависит от задач и интерпретации данных.

Чем анализировать

В связи с тем, что логи хранятся в текстовом формате, вариантов для анализа достаточно много. Рассмотрим несколько программ:

Excel — самый простой вариант. Если нужно быстро проанализировать небольшой лог, подойдёт, но в весьма неудобном виде.

Лог в Excel

Screaming Frog Log Analyzer — хороший инструмент от разработчиков культовой программы Screaming Frog SEO Spider. Бесплатный до 1000 строк, более 1000 – стоимость 99 фунтов в год.

Из плюсов — простой, есть базовые отчёты.

Минус — платный и нет возможности настраивать кастомные отчёты.

Screaming Frog Log Analyzer

JetOctopus — отличное облачное решение. Система платная, от 20 евро, есть семидневный триал. Если нужен анализ сайта с количеством страниц более 100к — это лучшее решение.

Из плюсов — позволяет сканировать большие сайты, много фильтров для составления отчётов.

Из минусов — только цена.

JetOctopus

Есть ещё различные варианты анализаторов, но сегодня я хочу подробно остановиться на Power BI.

Power BI — бесплатный инструмент от Microsoft для бизнес-аналитики, позволяющий получать, обрабатывать и визуализировать данные из различных источников: файлов, баз данных, различных API. Это мощнейший инструмент, который можно применять для различных задач аналитики.

Из плюсов — можно склеивать несколько логов в один, объединить данные парсера и логи, удобная визуализация и гибкая система настройки дашбордов, широкие возможности по работе с типами данных, можно моделировать данные.

Из минусов — нужно самому подготавливать данные, на больших объёмах может тормозить.

Теперь давайте сами сделаем анализатор на Power BI.

Анализатор логов на Power BI

Процесс создания дашборда для анализа логов состоит из нескольких этапов: подготовка данных → загрузка → форматирование → визуализация.

Шаг 1. Подготовка данных

Для формирования отчёта понадобятся следующие данные:

  • Папка с файлами логов за период.

Папка с логами

У меня тут собраны логи за несколько недель.

  • Список URL сайта, полученные с помощью парсера. У меня немного обработанный файл – экспорт Screaming Frog.

Данные парсера

Ну и, конечно, скачать Power BI.

Шаг 2. Загрузка данных в Power BI

Прежде чем перейти к загрузке данных в Power BI, необходимо отключить политику конфиденциальности:

Файл → Параметры и настройки → Параметры → Конфиденциальность → Игнорировать уровни конфиденциальности

Политика конфиденциальности

2.1. Загружаем логи из папки
2.1.1. Подключаем источник

Нажимаем на ленте навигации Получить данные → Из Папки.

Подключение папки

В открывшемся окне указываем путь к папке, где лежат файлы с логами.

2.1.2. Объединяем файлы

У нас в папке лежит несколько файлов, и для работы их нужно объединить в один. В Power BI это делается в три клика. Примечательно ещё то, что добавив новый файл в папку, он автоматически объединится с остальными.

Итак, в открывшемся окне нажимаем кнопку Редактировать.

Загрузка данных

Далее выделяем первый столбец → нажимаем правой кнопкой мыши → нажимаем Удалить другие столбцы.

Удаление лишних столбцов

У оставшегося столбца нажимаем на стрелки, которые находятся справа на заголовке.

Объединение логов

Все файлы объединились в единый набор данных.

Загруженные логи

2.2. Загружаем файл с URL

На ленте навигации выбираем Получить данныеExcel.

Загрузка из Excel

Указываем путь к нашему файлу.

Готово.

Готовая сводная таблица логов

Теперь у нас есть два набора данных:

  • log_1 — таблица логов;
  • url — таблица с URL.

Шаг 3. Форматирование загруженных данных

Теперь нам нужно подготовить данные для дальнейшей работы: разделить нужные столбцы, назвать их, выбрать нужный формат данных.

3.1. Форматирование набора данных с логами
3.1.1. Удалим ненужные столбцы

В нашем наборе есть два пустых столбца, их нужно удалить:

Правая кнопка мыши → Удалить столбец

Удаление пустых столбцов

3.1.2. Форматируем столбец с датой

Дата начинается с ненужного символа «[», удалим его:

Правая кнопка мыши → Заменить значение

Замена значений

Ищем значение, заменяем на пустоту.

Пример замены значений

Сейчас у нас дата и время находятся в одном столбце, для корректного отображения даты их нужно разделить:
Правой кнопкой мыши → Разделить столбецПо разделителю

Разделение столбца

Разделить нужно по самому левому разделителю «:».

Меню разделение столбца

Дата и время должны встать в разные столбцы.

Вид даты

3.1.3. Форматируем столбец URL

Точно таким же образом, как мы разделили даты, нам нужно отделить тип метода и протокол от URL.

Сейчас:

Вид столбца методов, до

Используем разделитель «Пробел».

Стало:

Вид столбца методов, после

3.1.4. Пропишем заголовки

Дадим название каждому столбцу. Для этого кликните по заголовку два раза.

Пример заголовков

3.1.5. Выделим ботов

Теперь нам нужно выделить основных ботов. Для этого создадим отдельный столбец. В Power BI есть возможность создать условный столбец, ячейки будут заполняться, если выполняется условие.

В нашем случае мы создадим столбец, ячейки которого будут заполняться по следующей логике: если столбец User-Agent содержит название бота, то ячейка называется «Название бота».

На ленте навигации переходим в «Добавить столбец»«Условный столбец».

Условный столбец

В открывшемся окне прописываем условия:

  • если содержит «Googlebot-Image/1.0» → Googlebot-Image/1.0
  • если содержит «Mobile Safari/537.36 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)» → Mobile Googlebot
  • если содержит «Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)» → Googlebot
  • если содержит «Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)» → YandexBot

Подготовка ботов

У нас появится столбец с юзерагентами бота*:

Столбец с ботами

*Важно — название юзерагента не подтверждает, что это бот. Нужно делать обратный DNS-запрос IP-адреса для подтверждения принадлежности бота поисковой системе, подробнее тут. Если вы видите аномальные всплески ботов, обязательно проверяйте по IP.

3.1.6. Изменим тип данных у столбца Status

Чтобы правильно обрабатывать статусы ответа сервера, нужно поменять тип данных с числового на текстовый.

Замена типа данных

Шаг 4. Объединить наборы данных

Теперь нужно подтянуть данные из таблицы с URL в таблицу логов:

  1. В ленте навигации выбираем Главная Слияние запросов.
  2. В появившемся окне в нижнем выпадающем списке выбрать таблицу, из которой нужно получить данные.
  3. Объединяем по URL.

Объединение данных

Получим столбец со свёрнутой таблицей.

Обединение данных 2

Нажав на стрелки, мы можем выбрать, какие столбцы хотим подтянуть.

Подтянем данные об индексации и URL:

Объединение данных 3

После того как мы загрузили все данные и произвели нужные манипуляции, можно загружать их в рабочую область:

В навигационной ленте нужно нажать «Закрыть и применить».

Загрузка в рабочую область

Шаг 5. Визуализация данных

Отчёт в Power BI может состоять из визуализаций, основанных на полученных наборах данных. Данные могут быть обработаны и отфильтрованы по-разному.

Основными полями для работы являются:

  • Страница — на ней формируется отчёт.
  • Визуализации — различные графики и таблицы.
  • Поля — данные, на основе которых формируются визуализации.
  • Фильтры — удобная фильтрация данных на различных уровнях.

Подробнее об отчётах можно узнать в инструкции от Microsoft.

Итак, давайте сформируем небольшой дашборд.

5.1. Добавим фильтр по ботам

Выберем в панели «Визуализации» иконку с фильтром, а в панели «Поля» — поле «Bot».

Настройка фильтров

5.2. Добавим таблицу с количеством посещений бота по страницам

Подготовка таблица

И отфильтруем ботов.

Подготовка таблицы

5.3. Построим график посещения ботов по датам

Подготовка графика

Получаем вот такую красоту:

Подготовка графика

5.4. Узнаём, какие страницы не нашёл парсер, но посетил бот

Помните, на четвёртом шаге мы объединили данные? Данные подтянулись по столбцам URL: если есть общий URL, столбец заполняется, если нет — остаётся пустое значение.

Пустые строки в столбце

Отфильтровав пустые значения по столбцу, мы поймём, каких URL не нашёл парсер.

Сделаем фильтр:

Фильтр по URL

Отфильтруем.

Созданная нами ранее таблица отфильтруется, и в ней будут URL-фантомы.

Результат фильтра

Надо проверить, что за статусы у этих URL. Добавим в таблицу столбец Status.

Результат со статусами

301 редирект, так и думал 🙂

Простой дашборд может выглядеть так:

Пример дашборда

Файл с примером можно скачать по ссылке.

Заключение

Таким образом, можно проверять различные гипотезы и анализировать лог. Возможностей очень много: URL можно разбить на подкатегории и анализировать сканирование по разделам; можно строить свои счётчики посещения; смотреть, с каких URL чаще заходят боты; в какое время наибольшая нагрузка и т. д.

Кажется, что сформировать такой отчёт в Power BI сложно и муторно, но это обманчиво – всё делается за 10 минут.

Важно! Сформировав отчёт единожды, вам не нужно будет его формировать каждый раз, достаточно обновить файлы логов!
Всем хороших логов!

Полезные ссылки:

Если у Вас возникли проблемы с индексацией страниц, обращайтесь к нам!

Заказать технический аудит

Подписаться на рассылку

Еще по теме:


Евгений Аралов

SEO-аналитик SiteClinic.ru

Продвигаю сайты с 2009 года.

Выступал на конференциях AllInTop, Optimization

Публикую полезные статьи на различных блогах: siteclinic.ru, optimizatorsha.ru, searchengines.ru и веду Telegram-канал.

Сейчас руковожу SEO-отделом в компании SiteClinic: строю и координирую команду, обучаю специалистов.

Девиз: вперёд!

Оцените мою статью: 

1 Star2 Stars3 Stars4 Stars5 Stars (14 оценок, среднее: 4,86 из 5)

Есть вопросы?

Задайте их прямо сейчас, и мы ответим в течение 8 рабочих часов.

Siteclinic logo
Наверх

18 комментариев к статье “Анализ логов сайта с помощью Power BI: пошаговая инструкция

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

  2. Здравствуйте.
    Не получается загрузить данные в рабочую область. После нажатия кнопки «Закрыть и применить» появляется всплывающее окно с ошибкой: «Не удалось сохранить изменения на сервере. Возвращена ошибка «Ошибка OLE DB или ODBC : [DataFormat.Error] Результат содержит больше столбцов, чем ожидалось..
    «.». Скрин http://prntscr.com/p5kok0
    Сталкивались с таким? В чём может быть проблема?

  3. Добрый день, Евгений! Благодарна за ваш метод работы с логами,очень помогло, единственно, вопрос:
    Вы пишите:»Список URL сайта, полученные с помощью парсера. У меня немного обработанный файл – экспорт Screaming Frog.»
    Немного,это что именно? или достаточно URL?

    P.S Да, не по теме, у вас есть материал в блоге по API Яндекс.Вебмастер, не могу понять, что дальше делать с токеном, понятно, что надо авторезироваться, но как, в документации ничего не написано.

    1. Вы пишите:»Список URL сайта, полученные с помощью парсера. У меня немного обработанный файл – экспорт Screaming Frog.»
      Немного,это что именно? или достаточно URL?

      Если Вы делали основной экспорт из Screaming Frog, то обратили внимание, что там 46 столбцов с данными. Все они зачастую не нужны во время анализа логов. Какие оставлять — дело индивидуальное. Мы чаще всего оставляем следующие столбцы:
      — Address
      — Status Code
      — Indexability
      — Indexability Status
      — Redirect URI

      — Inlinks

      P.S Да, не по теме, у вас есть материал в блоге по API Яндекс.Вебмастер, не могу понять, что дальше делать с токеном, понятно, что надо авторезироваться, но как, в документации ничего не написано.

      В документации есть всё, что нужно.
      Ссылка: https://yandex.ru/dev/webmaster/doc/dg/tasks/how-to-get-oauth-docpage/
      Зарегистрируйте для начала приложение, в котором будете использовать свой токен.
      Пример: https://take.ms/Tot3P, https://take.ms/Iel1h

  4. Чтобы правильно обрабатывать статусы ответа сервера, нужно поменять тип данных с числового на текстовый.

    Поясните, зачем это нужно?
    Ведь код ответа — это априори число, не текст.

    1. Если останется числовой формат, то Power BI будет суммировать эти значения. Это как минимум. Если будет тестовый никаких вычислительных операций проводить не будет.

        1. Нужно смотреть более детально источники и как Вы объединяете таблицы. Так как вариантов может быть много. Первое, что пришло в голову — абсолютные ссылки после парса, которые не обрезаны в относительные.

          1. это я сделал, исключил также лишние пробелы.
            проверил и кодировку — все нормально.
            Может, объединяемые столбцы должны быть первыми в каждой таблице.

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

            2. Уже разобрались. в данном случае была проблема с пробелами.
              Спасибо за помощь и за статью!

          2. потерялся ответ.
            проверял это, ошибок нет.
            пробелов тоже нет, с кодировкой все в порядке.
            В чем еще может быть проблема?

            При попытке также объединить их с помощью ВПР в Экселе все работает. То есть значения совпадают.
            Проблема в чем-то другом. Но в чем? Помогите разобраться.

  5. И еще появился вопрос :
    задача такая — нужно подсчитать количество каждого повторяемого значения в столбце.

    Пример — как в PowerBi подсчитать количество посещений каждого урла — http://joxi.ru/EA44V9tOZGnqAb

    В Excel я добавлял доп. столбец со значением 1 и с помощью сводной таблицы суммировал все это.

    Как это сделать аналогично в PowerBi?

    1. Абсолютно также, как и в Excel. При обработке в PowerQuery данных, нужно добавить индексный столбец. При добавлении индексного столбца нужно будет указать: start: 1, increment:0.

  6. Как построить график по урлам, который соответствуют определенной регулярке?

  7. Здравствуйте! К сожалению статья для опытных, кто между строк может понять! А для новичков, у кого есть файлы логов и Power BI , по шагам ничего не стыкуется, много скрытых непоказанных действий!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


Мы продвигаем: