Панель инструментов SEO: анализ логов с помощью R и таблиц

  1. введение
  2. Подготовка логов Apache
  3. Очистите и подготовьте данные Apache на языке R.
  4. Настройка информационной панели seo с помощью Tableau
  5. Загрузить базу данных
  6. Таблица тепловых карт
  7. Внедрение панели анализа SEO-логов
  8. Некоторые случаи анализа логов с приборной панели
  9. Идти дальше

В 2015 году у меня была возможность встретиться с Винсентом Терраси, который в то время был большим поклонником Data Science, а также SEO. Несколько месяцев спустя, когда я проводил конференцию по доменам с истекшим сроком действия на QueDuWeb 2016, и у него была большая конференция по R, мы разделили наш гостиничный номер в течение 3 дней мероприятия.

То, что произошло в течение этих трех дней с Винсентом, стало для меня открытием Data Science, его возможности, которая должна быть реализована, но особенно для того, чтобы иметь возможность получать пятна, откровенно говоря, очень глупо, когда кто-то обрабатывает большой пакет данных. Одним словом, 2016 год стал для меня откровением.

введение

Вы найдете в моем блоге 2 статьи довольно простые и простые для новичка на R баз и как установить R studio , Цель этого поста - показать вам, как обращаться с журналом вашего сервера Apache, выявлять различные типы ботов Google и классифицировать их. Если вы будете следовать всем правилам, у вас будет панель управления на вашем компьютере и SAAS, а также все интерактивное:

  • Тепловая карта масштабируется в часах и днях.
  • График, чтобы увидеть частоту прохождения ботов.
  • Различные типы бота Google и посмотрите, что он достигает на странице (статус 200, 301 и т. Д.)
  • Страницы по запросам с их статусом
  • Различные типы контента и их статус (js, css, xml ...)
  • Тепловая карта самых просканированных каталогов
  • Размер просканированных страниц

Если вы хорошо следите за моей статьей, вы получите этот результат

Если вы хорошо следите за моей статьей, вы получите этот результат

Приборная панель-сео-1

Как вы видите, я также на конкретном случае одного из моих клиентов с конкретными данными. Если, например, я хочу посмотреть, что происходит во всем мире, похоже, что Google любит приходить и говорить привет в понедельник в 10 утра. Если вы хотите увеличить сканирование Google для мобильных устройств (статус - 200, выделено синим цветом), просто нажмите, и все данные на панели обновятся в соответствии с выбранным выбором.

Приборная панель-сео-2

Подготовка логов Apache

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

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

журнал апач

Поле Описание 1 ip-адрес человека / машины, делающей запрос на нашем сервере 2 Симбола - всегда присутствует на этом уровне 3 Аутентификация удаленного клиента. Если у нас есть символ - это потому, что не было запрошено ни одной идентификации 4, а время запроса, заключенное между [] выполненным запросом (или страницей), составляет "" 6 Код ответа сервера 7 размером страница, возвращаемая сервером в байтах

В зависимости от конфигурации вашего сервера Apache журналы ботов Google уже обрабатываются в определенном файле и группируются, либо в ежемесячном файле, за неделю или за день. В зависимости от вашего случая, вам придется сгруппировать ваш журнал в один файл. Как только ваши основные данные будут готовы, мы можем перейти к следующему шагу

Советы: я чаще всего работаю над данными за 90 дней. После зависимости от размера сайта и того, что вы ищете (аномалия - я бы назвал это трендом сезона, если вы занимаетесь электронной коммерцией, обнаружением бесхозных страниц и т. Д. И т. Д. Короче говоря, для адаптации; ).

Очистите и подготовьте данные Apache на языке R.

Сначала мы загружаем наши данные в фрейм данных

библиотека (stringr) библиотека (tidyr) #def local systdate Sys.setlocale ("LC_TIME", "uk") raw <- read.table ("C: /qcd/outGGbot.txt") df <- raw

Советы: Я указал здесь свою локальную систему в режиме uk, потому что формат даты представлен в английском формате (например, апрель для апреля ... если я останусь во французском формате и хочу позже обработать свои данные, произойдет сбой 😉)

# общие объединенные столбцы журнала -> добавлять / удалять / переключать столбцы в зависимости от формата имен журналов (df) = c ("host", "ident", "authuser", "date", "time_zone", "request" "," status "," bytes "," referrer "," user_agent ") df <- df [str_detect (tolower (df $ user_agent), 'googlebot'),]

Мы переименовываем столбцы, а затем в нижний регистр user_agent, содержащий ключевое слово googlebot. Ничего волшебного на данный момент (я покажу вам другой способ переименования более базового ниже на уровне столбцов).

# извлечение даты и времени в общем формате $ df $ date = as.POSIXct (strptime (df $ date, format = "[% d /% b /% Y:% H:% M:% S"), формат = "% Y-% m-% d% H:% M:% S ")

Мы конвертируем дату в формат, который мы хотим. Здесь, поскольку я собираюсь использовать Tableau, tool english, я помещаю себя в английском формате гггг-мм-дд чч: мм: сс в примере 2018-01-03 21:30:10

df $ time_zone <- as.factor (sub ("\\" "," ", df $ time_zone)) df $ bytes <- as.factor (sub (" - "," 0 ", df $ bytes)) df <- отдельный (df, request, request_type, request_url, http_header), "") #drop POST вызовы -> str_detect (tolower (df $ request_type), 'post'),]

Мы очищаем часовой пояс, затем, если мы получим страницу, возвращающую символ - в поле 7 (выше sic log apache) мы устанавливаем 0 по умолчанию для размера в байтах страницы. Две другие строки - это разделение на уровне запроса. Последнее необязательно при необходимости.

#extract googlebot type df $ googlebot <- as.character (df $ user_agent) df $ googlebot [str_detect (tolower (df $ googlebot), 'googlebot-image')] <- "G Image" df $ googlebot [str_detect ( tolower (df $ googlebot), 'mobile')] <- "G Mobile" df $ googlebot [str_detect (tolower (df $ googlebot), 'video')] <- "G Video" df $ googlebot [str_detect (tolower ( df $ googlebot), 'googlebot')] <- "Googlebot" # тип ресурса извлечения df $ content_type <- as.character (df $ request_url) df $ content_type [str_detect (tolower (df $ content_type), '\\. js) ')] <- "JS" df $ content_type [str_detect (tolower (df $ content_type),' \\. Css ')] <- "CSS" df $ content_type [str_detect (tolower (df $ content_type),' \\ .jpg $ | \\. png $ | \\. jpeg $ | \\. gif $ | \\. svg $ | \\. ico | \\. webp $ ')] <- "Изображение" df $ content_type [ str_detect (tolower (df $ content_type), '\\ woff | \\. woff2 $ | \\. ttf $ | \\. ttc $ | \\. otf $ | \\. eot $')] <- " Сделайте "#change следующее правило, чтобы получить структуру URL для страниц AMP (/ amp-, / amp / $,? Amp | & и т. Д.) Df $ content_type [str_detect (tolower (df $ content_type), '\\ / amp- ')] <- "A Страница MP "df $ content_type [str_detect (tolower (df $ content_type), '\\ .xml $')] <-" XML "df $ content_type [str_detect (tolower (df $ content_type), '\\ .php $' )] <- "PHP" df $ content_type [str_detect (tolower (df $ content_type), '\\ /')] <- "Веб-страница" #get корневых папок df $ folder <- df $ request_url df $ folder [str_count ( df $ folder, "/") <= 1] <- "/ Root" df $ folder <- sapply (strsplit (as.character (df $ folder), split = "/"), function (x) {length ( х) <- 3; х [2]})

Здесь мы нападаем на большую часть, первый блок, который вы понимаете, это квалификация нашего храброго бота Google (изображение, мобильный, рабочий стол ...). Второй блок - это извлечение типа страницы. Я ставлю самые распространенные, если вам нужно другое, чем просто копировать;). Третий блок, когда он заботится о части папки и, в частности, о корневой папке;). (опять же мы могли бы пойти дальше, но для моего использования я не вижу особого интереса).

## Папки с менее чем 0,01% обходов -> сгруппировать их в счетчик «Другие библиотеки» (ply) <- count (df $ folder) минимум_crawls <- max (длина 0.01 / 100 * (df $ date), 10) папка df $ [df $ folder% в% counter $ x [counter $ freq <минимальный_скролл]] <- "Другое"

Здесь мы сгруппируем все страницы, которые наименее сканируются в группе, которую мы назовем «Другое» (сканирование <0,01%).

#extract файл роботов сканирует df $ robots_txt <- as.character ($ df $ date) df $ robots_txt [! str_detect (tolower (df $ request_url), 'robots.txt $')] <- "" # имя строки, которое нам нужно names (df) [names (df) == 'date'] <- 'Date' names (df) [names (df) == 'time_zone'] <- 'TimeZone' names (df) [names (df) = = 'request_url'] <- 'RequestUrl' names (df) [names (df) == 'status'] <- 'Status' names (df) [names (df) == 'bytes'] <- 'Bytes' names (df) [names (df) == 'Referrer'] <- 'Referrer' names (df) [names (df) == 'googlebot'] <- 'Googlebot' names (df) [names (df) = = 'content_type'] <- 'ContentType' names (df) [names (df) == 'folder'] <- 'Folder' names (df) [names (df) == 'robots_txt'] <- 'RobotsTxt'

Первый блок - это эффект стиля, когда один второй блок - это другой способ переименования столбцов. Для первого блока я позволю вам выкопать немного любопытства;).

CSV-файл write.csv (подмножество (df, select = c (Date, TimeZone, RequestUrl, Status, Bytes, Referrer, Googlebot, ContentType, Folder, RobotsTxt)), file = "C: / qcd /processed_log.csv «)

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

Настройка информационной панели seo с помощью Tableau

Прежде чем начать, вам нужно будет установить бесплатная версия Таблицы , Здесь я решил взять Tableau, чтобы представить вам инструмент BI, который я нахожу хорошим, но мы вполне можем сделать то же самое с Qlik Sense, чтобы увидеть его с Google Data Studio (кроме того, я бы вернулся к двум инструментам в другие билеты 😉).

Я не буду вдаваться в подробности, а просто выложу скриншоты с конфигурацией приборной панели, это позволит вам сделать то же самое дома 😉

Загрузить базу данных

Просто используйте наш CSV-файл в качестве источника данных! Один нажимает справа на источник данных (1), затем выбирает источник данных, который желает (2). Или, если он уже присутствует в ваших источниках данных, один из них скользит вниз по части (3). Оба метода укажут в (3) источник данных, который вы выбрали. В зеленом цвете у вас есть предварительный просмотр ваших данных.

В зеленом цвете у вас есть предварительный просмотр ваших данных

Таблица-лог-сео-1

Теперь мы можем создать нашу первую электронную таблицу. Как таковой он находится внизу справа

Таблица-лог-сео-2

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

Таблица тепловых карт

Когда вы создали свою электронную таблицу, вы получите красивую пустую страницу. Мы не паникуем, я буду вести вас шаг за шагом.

Мы не паникуем, я буду вести вас шаг за шагом

Таблица-лог-сео-3

На уровне столбца мы разместим дни недели. Для этого мы будем использовать функцию Datepart: DATEPART ('weekday', [Date]) (сделайте 2 щелчка по полю столбца и вставьте одну копию 😉).

Таблица-лог-сео-4

И когда мы щелкаем в любом месте экрана, наша формула становится синей и получает название «день недели». Таблица показывает нам «данные».

Таблица-лог-сео-5

На уровне линий мы будем использовать ту же формулу, за исключением того, что мы возьмем часы! Формула для копирования вставки DATEPART ('час', [Дата]) и скриншот того, что вы должны иметь.

Таблица-лог-сео-6

Пока вы видите, что инструмент действительно очень прост в использовании, но нам нужна тепловая карта. Не хватает цвета нет? А азбука милая, но это еще ничего не значит ... Внимание следующих событий жжет вам глаза;). Мы будем играть с оранжевым блоком маркеров на следующем снимке экрана.

Таблица-лог-сео-7

Розовая часть имеет двойной щелчок, и именно там мы добавим новую функцию подсчета в поле даты. Код для копирования вставки: COUNT ([Дата])

Таблица-лог-сео-8

Если вы нажмете где-нибудь на экране, у нас все равно не будет цвета. Чтобы получить раскрашивание, мы перетащим нашу функцию в поле цвета.

Таблица-лог-сео-9

И как только мы расслабимся, мы получим нашу красочную карту тепла, как мы хотим!

Таблица-лог-сео-10

Ну, я вернусь, мы могли бы сделать так, чтобы иметь цвет

Ну, я вернусь, мы могли бы сделать так, чтобы иметь цвет

Просто нет? Если вы хотите изменить синий цвет, мы нажимаем на кнопку Цвет> изменить цвета. Мы нажимаем на маленький квадрат (скриншот) и выбираем нужный нам цвет. Постарайтесь сохранить трезвый цвет. Необычные цвета могут сделать ваш рендеринг читабельным или понятным. (Я сделал экран такого цвета, чтобы его не использовать в моем случае 😉).

Таблица-лог-сео-12

Таблица-лог-сео-12

Таблица-лог-сео-13

Здесь для части тепловой карты, я оставляю вас заботиться, чтобы найти, как переименовать вкладку и заголовок листа, вы должны уйти. Для продолжения я поставил скриншоты того, что вы должны иметь.

Таблица-лог-сео-14

Таблица-лог-сео-14

Таблица-лог-сео-15

Таблица-лог-сео-15

Таблица-лог-сео-16

Таблица-лог-сео-16

Таблица-лог-сео-17

Таблица-лог-сео-17

Таблица-лог-сео-18

Таблица-лог-сео-18

Таблица-лог-сео-19

и последний, чтобы закончить серию 😉

Таблица-лог-сео-20

Вот и все Копай хорошо, не очень сложно воспроизвести разные экраны. Помните, что любой простой, тупой и дисциплинированный BI-инструмент также справится с этой задачей (Google Data Studio, Qlick Sense и т. Д.). Мы должны реализовать приборную панель!

Внедрение панели анализа SEO-логов

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

Игра здесь будет перетаскивать их просто выпадет

Таблица-лог-сео-21

Таблица-лог-сео-21

Таблица-лог-сео-22

В качестве примера этот маленький экран. Для последней панели инструментов я позволю вам увидеть первый экран в самом начале моего билета. Перетаскивая мышью, вы заметите, что Tableau сообщает вам, что элементы будут отображаться в соответствии с разрезом экрана. Наша бесплатная версия делает публикацию SAAS, поэтому дисплей будет отзывчивым, хорошо, нет? Если у вас есть настольная версия, вы можете просматривать свои данные с помощью Tableau Reader;).

Некоторые случаи анализа логов с приборной панели

Хорошо иметь приборную панель, но что вы можете с ней сделать?

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

Таблица-лог-сео-23

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

Мы также можем использовать эту панель, чтобы достаточно быстро увидеть объем страницы в 301/404 и т. Д. И быстро найти решение. На проходящем уровне 404 мы можем быстро обнаружить страницы, которых нет на вашем сайте, так что это может быть атака? Таким образом, мы также можем ввести средства противодействия 😉

Если в вашем отчете вы нашли путь с / - это значит, что у вас есть проблема с перенаправлением (скрипт выше делает то же самое). Опять же, мы можем быстро обнаружить страдающие от боли страницы и достаточно быстро найти решение.

Я мог бы долго говорить о полезности этого анализа логов, в общем, это зависит от того, что вы стремитесь сделать и какой результат хотите получить!

Идти дальше

В этом году 2018 будет богат на две формации, которые я настоятельно рекомендую для тех, кто хочет начать науку о данных:

И если вы хотите поработать со мной над анализом логов, просто свяжитесь со мной по электронной почте pro: [email protected] 😉

Amp-, / amp / $,?
Не хватает цвета нет?
Наша бесплатная версия делает публикацию SAAS, поэтому дисплей будет отзывчивым, хорошо, нет?
На проходящем уровне 404 мы можем быстро обнаружить страницы, которых нет на вашем сайте, так что это может быть атака?
О том, как смешивать свежевыжатые соки
Ни для кого не секрет, что стакан свежевыжатого овощного или фруктового сока, способен придать заряд энергии и бодрости, а также положительным образом отразиться на состоянии здоровья человека. При этом

Полный список кандидатов в президенты страны станет известен к концу января
9 января 2008, 15:53 Текст: editor На будущей неделе закончится срок приема документов для регистрации кандидатов в президенты. На принятие решения по документам у Центризбиркома будет десять дней. НОРИЛЬСК.

ЄДНІСТЬ : У Києві через високий рівень захворюваності на грип та ГРВІ закрили вже 75 шкіл
У Києві призупинено заняття у 75 школах (2127 класів), у яких рівень захворюваності на грип та ГРВІ перевищив 20%. Інформує  «Є!» , з посиланням на УНІАН. Про це наразі повідомив перший заступник

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

Березовый сок можно ли использовать при сахарном диабете
Березовый сок при сахарном диабете — сахарный диабет: все о заболевании и методах лечения Березовый сок с давних времен славится своими целебными свойствами. Дело в том, что в весенний период береза

Свежевыжатые соки. (кому не лень читать)
Вы видели фильм о , которую исследовал японский ученый Имоту Масара? Уникальные опыты показали, что структурированная жидкость может творить чудеса и оздоравливать наши клетки, омолаживая организм

Купажирование и подслащивание соков
Некоторые соки иногда бывают пресными, слишком кислыми или недостаточно сладкими. Чтобы такие соки были полноценными по вкусовым и питательным качествам, к ним добавляют соки из того же вида сырья, но

Лечение рака по Бройсу и др
Лечение Рака по Бройсу. (Рудольф Бройс) «Совсем недавно китайские медики обнаружили, что у онкобольных количество микроэлементов в печени, в волосах и некоторых других органах резко снижено. Возможно,

С каким соком пить водку?
Ответ: С каким соком пить водку? ВИНОВАТ АНТИАЛКОГОЛЬНЫЙ ФЕРМЕНТ - Владимир Георгиевич, главный вопрос

Сок добрый
Министерство общего и профессионального образования Российской Федерации Санкт-Петербургский Государственный Технологический институт (Технический университет) Факультет Экономики и