Skip to content

Research and classify search engine queries in R

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md
Notifications You must be signed in to change notification settings

MarekProkop/keywordr

Repository files navigation

The keywordr SEO package for R

The keywordr package provides an efficient and user-friendly framework for keyword research. The results are typically used to optimize websites for search engines, create content strategy, design information architecture for websites, etc.

Installation

You can install the development version of keywordr from GitHub with:

# install.packages("devtools")
devtools::install_github("MarekProkop/keywordr", build_vignettes = TRUE)

Note: You must have R version 4.1.0 because the package makes use of the native R pipe and the new syntax for anonymous functions.

Example

This is a basic example which shows you how to use the package:

Attache packages

library(tidyverse)
library(keywordr)

Create a kwresearch object and import queries

input_data <- tribble(
  ~query,             ~volume,
  "seo",                96000,
  "seo ye-ji",          22000,
  "seo meaning",         6700,
  "seo services",        6400,
  "what is a seo",       5300,
  "seo london",          5000,
  "what is seo",         4800,
  "seo agency",          4300,
)

kwr <- kwresearch(input_data)

Browse imported queries

kwr_queries(kwr)
#> # A tibble: 8 × 7
#>   query_normalized n_queries volume   cpc query_original input source
#>   <chr>                <int>  <dbl> <dbl> <chr>          <chr> <chr> 
#> 1 seo                      1  96000    NA seo            <NA>  <NA>  
#> 2 seo ye-ji                1  22000    NA seo ye-ji      <NA>  <NA>  
#> 3 seo meaning              1   6700    NA seo meaning    <NA>  <NA>  
#> 4 seo services             1   6400    NA seo services   <NA>  <NA>  
#> 5 what is a seo            1   5300    NA what is a seo  <NA>  <NA>  
#> 6 seo london               1   5000    NA seo london     <NA>  <NA>  
#> 7 what is seo              1   4800    NA what is seo    <NA>  <NA>  
#> 8 seo agency               1   4300    NA seo agency     <NA>  <NA>

Prune unwanted queries

recipe_file <- file.path(tempdir(), "recipes.yml")

kwr_add_pattern("ye-ji", recipe_file, recipe_type = "remove")

kwr <- kwr |> 
  kwr_prune(recipe_file)
#> Removing queries...
#> Removed 1 queries out of 8. Duration: 0.006s

Check pruned queries

kwr_queries(kwr)
#> # A tibble: 7 × 7
#>   query_normalized n_queries volume   cpc query_original input source
#>   <chr>                <int>  <dbl> <dbl> <chr>          <chr> <chr> 
#> 1 seo                      1  96000    NA seo            <NA>  <NA>  
#> 2 seo meaning              1   6700    NA seo meaning    <NA>  <NA>  
#> 3 seo services             1   6400    NA seo services   <NA>  <NA>  
#> 4 what is a seo            1   5300    NA what is a seo  <NA>  <NA>  
#> 5 seo london               1   5000    NA seo london     <NA>  <NA>  
#> 6 what is seo              1   4800    NA what is seo    <NA>  <NA>  
#> 7 seo agency               1   4300    NA seo agency     <NA>  <NA>

Explore queries

kwr |> kwr_ngrams()
#> # A tibble: 8 × 3
#>   token             n volume
#>   <chr>         <int>  <dbl>
#> 1 seo               7 128500
#> 2 what is           2  10100
#> 3 seo meaning       1   6700
#> 4 seo services      1   6400
#> 5 what is a seo     1   5300
#> 6 seo london        1   5000
#> 7 what is seo       1   4800
#> 8 seo agency        1   4300

Classify queries

kwr_add_pattern(
  pattern = "agenc",
  recipe_file = recipe_file,
  recipe_type = "label",
  dim_name = "bussiness_type",
  value = "agency"
)
kwr_add_pattern(
  pattern = "meaning",
  recipe_file = recipe_file,
  recipe_type = "label",
  dim_name = "info"
)
kwr_add_pattern(
  pattern = "what is",
  recipe_file = recipe_file,
  recipe_type = "label",
  dim_name = "info"
)

kwr <- kwr |> 
  kwr_classify(recipe_file)
#> Label:bussiness_type
#>   Value: agency
#> Label:info

Check classified queries

kwr_queries(kwr) |> 
  select(1:5)
#> # A tibble: 7 × 5
#>   query_normalized bussiness_type info    n_queries volume
#>   <chr>            <chr>          <chr>       <int>  <dbl>
#> 1 seo              <NA>           <NA>            1  96000
#> 2 seo meaning      <NA>           meaning         1   6700
#> 3 seo services     <NA>           <NA>            1   6400
#> 4 what is a seo    <NA>           what is         1   5300
#> 5 seo london       <NA>           <NA>            1   5000
#> 6 what is seo      <NA>           what is         1   4800
#> 7 seo agency       agency         <NA>            1   4300

Please see vignette("workflow") for a more detailed example.

About

Research and classify search engine queries in R

Topics

Resources

License

Unknown, MIT licenses found

Licenses found

Unknown
LICENSE
MIT
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published