廿TT

譬如水怙牛過窓櫺 頭角四蹄都過了 因甚麼尾巴過不得

[searchConsoleR]検索クエリとページタイトルのマッチングをはかる

検索結果画面に表示されるページタイトルが検索クエリとマッチしていない場合、そのページはあまりクリックしてもらえない。

では検索クエリとページタイトルのマッチさせるにはどうするか。これはむずかしい。

考えられるもっともシンプルな方法は、検索クエリと同じキーワードをページタイトルに入れるということだろう。

[searchConsoleR]要対策キーワードをあぶり出す回帰分析 - 廿TT で紹介したような方法で、改善対象ページはしぼり込まれているとする。

そのページに対応する検索クエリには頻出するが、ページタイトルには含まれていないワードを見れば、タイトルの改善案などが浮かんでくるかもしれない。これを R でやってみる。

手順は、

  1. searchConsoleR でサーチコンソールのデータを取得
  2. RMeCab で形態素解析
  3. rvest でタイトル要素を取得
  4. RMeCab で形態素解析
  5. 検索クエリに登場し、ページタイトルには含まれていないワードを抽出

改善対象ページは http://abrahamcow.hatenablog.com/entry/2015/01/17/064522 にした。

先に結果を見るとこんな感じ。

検索クエリに登場し、ページタイトルには含まれていないワードについて、キーワードの出現頻度を表にできる。

人                67
花                49
合わせ            38
ルール            35
点数              33
枚数              25
役                22
4                 17
遊び方            16

下のコードは url のところだけ変えればあなたのサイト相手でも動くはず。

###サーチコンソールのデータを取得###
library("googleAuthR")
library("searchConsoleR")
gar_auth()
sc_websites <- list_websites()
#デフォルトだとstartDateは93日前に設定されている
query <- search_analytics(siteURL = sc_websites[1,1],
                            dimensions = c("query","page"),
                            searchType = "web", rowLimit = 5000)
url1 <- "http://abrahamcow.hatenablog.com/entry/2015/01/17/064522"
sub1 <- dplyr::filter(query,page==url1)

###形態素解析###
library(RMeCab)
mecabres <- sapply(sub1$query,RMeCabC)
mecabres <-unname(unlist(sapply(mecabres,unlist)))
mecabres_table <- table(mecabres)

###ページタイトルを取得###
library(rvest)
library(pipeR)
html1 <-read_html(url1)
title1 <-html_node(html1,"title") %>>%
  html_text()
mecabres_title <- RMeCabC(title1) %>>%
  unlist() %>>% unname()

###検索クエリに登場し、ページタイトルには含まれていないワードを抽出###
KWtable <-mecabres_table[!names(mecabres_table) %in% mecabres_title] %>>%
  sort(decreasing=TRUE)

KWtable[1:10] #表の出力(上から10件)

「合わせ」を含むクエリで検索するユーザーが多そうなので、改善対象ページのページタイトルは「よい子とよい大人のための花札入門 - 廿TT 」から「花合わせの遊び方:よい子とよい大人のための花札入門 - 廿TT」に変えた。