SEO業務を劇的に楽にする「SEOらくらく君」

Share on reddit

プログラミング学習をして1年弱で、世に公開するサービスを作りました。

その名も、SEOらくらく君です。

SEOの業務を楽にするツールなのですが、なぜらくらく君を作ったのか、どうやって作ったのかなどについて書いてみます。

らくらく君をなぜ作ったのか?

僕はSEOの分析ツールを提供する会社で働いています。

うちの会社に限らず商売で最も大事なことは、お客さんの役に立つことです。多少の赤字で工数をかけてでも、お客さんに貢献するのが大事です。

だから、お客さんが、うちのプロダクト(SEOの分析ツール)を使いこなして、成果を出してもらうサポートを日夜がんばってやっています。

そんな日々のサポート業務を行う中で、あったら便利だと思う機能をまとめたのが、SEOらくらく君です。

らくらく君が必要な背景

SEOを普段あまりやらない人も多いと思いますので、SEOらくらく君が必要な背景を簡単に説明します。

SEOでは、検索ユーザーが喜ぶコンテンツを作ることが、順位を高める上で大事です。

検索ユーザーが喜ぶコンテンツを考える上で、検索上位ページにどんなコンテンツがあるか、他のサイトではどんなコンテンツがあるかを調べるとヒントが得られます。Googleは、検索ユーザーの喜ぶコンテンツを上位に出そうとしているからです。

しかし、想像に難くないと思いますが、大量のキーワードの上位ページを調べるのは大変です。それを効率化するのがらくらく君です。

SEOらくらく君には以下の4つの機能があります。

  • 記事一括チェック
  • 検索上位チェック
  • 検索ヒストリー(検索結果保存機能)
  • 単語数集計

それぞれについて紹介していきます。

記事一括チェック

うちの会社で提供するSEOツールには、たくさんのキーワードの上位ページのURLを集計してくれるコンペティターディスカバリーという機能があります。これはこれで非常に便利です。

一方で、大量のURLを目で見てチェックするのは死ぬほど大変です。

そこで、調べたいURLのリストをらくらく君に登録します。

URLリストをアップロード

そして、記事をチェックするボタンを押します。

記事チェックボタンを押す

しばらくすると、titleやh1タグなどの主要なHTMLタグの情報が収集されてきます!

記事データが収集される

記事一括チェック機能は、調べたいURLリストが多い時に使ってくださいね。

検索上位チェック

一方で、特定のキーワードの上位ページを手際よく調べたいこともあります。

そんなときのために、検索上位チェックという機能を用意しています。

ナビゲーション

らくらく君内で、調べたいキーワードで検索すると

キーワード検索

2〜3分で、上位ページのURLとtitleやh1タグなどの情報が収集されてきます!これまた便利!

上位ページの情報を収集する

検索上位チェック機能は、特定のキーワードの上位ページの情報をパッと調べたいときに便利です。

検索ヒストリー

Googleの検索結果は、日々変わっているので、上位サイトの移り変わりを把握しておくと、検索ユーザーのニーズのトレンドを汲み取ることができます。

とはいえ、検索結果の上位サイト一覧を覚えておくのは大変なので、検索結果を保存できる「検索ヒストリー」機能を追加しました。

使い方は簡単です。「検索上位チェック」で、検索結果を集計した後、「検索結果を保存」ボタンを押すだけです。

検索結果を保存する

保存をしたら、メニューの「検索上位チェック」=>「ヒストリー」に行くと、
メニューからヒストリーを選択する

保存した検索結果の一覧が表示されています。何月何日のどのキーワードの結果を見たいかが選べるようになっています。

保存した結果の一覧

過去の検索結果で、確認したい日付&キーワードの「結果」ボタンを押すと、その当時の検索上位ページ一覧を確認することができます。

過去の検索結果

「3ヶ月前の検索結果ってどうだったっけ?」みたいなときに活躍する機能です。

単語数集計

更に、どういう単語がよく使われているかを集計する機能もあります。

記事一括チェック機能、検索上位チェック機能ともに、ページごとの情報が収集された上で、単語数集計ボタンを押すと、

単語数集計ボタンを押す

title、h1、h2、description別に、どういった単語が何回使われているかが集計されてきます!

title,h1,h2,descriptionで使われている単語数が集計される

狙っているキーワードで上位にいるコンテンツがどういう内容かについて、要点をパッと把握するにはとても便利です。

らくらく君の作り方

らくらく君にかける情熱と、便利さを理解していただいたかと思います。

らくらく君は、Ruby on Railsで開発し、heroku上で動かしています。スクレイピングや形態素解析や非同期処理などをしていますが、初心者エンジニアの僕が、どうやってらくらく君を使ったかを紹介します。

スクレイピング

スクレイピングをしてtitle、h1、h2、description内のコンテンツを取得していますが、rubyのgemのMechanizeを使っています。

Rails スクレイピング手法 Mechanizeの使い方

mecab

取得したデータをmecabを使って形態素解析にかけています。mecabは日本語の辞書を持っていて、辞書と照らし合わせて単語を分解してくれます。

[Ruby]mecabを使ってみた(形態素解析)

らくらく君では、単語の内、名詞だけを単語数の集計対象にしています。

非同期処理

ページから情報を取得してきたり、単語数の集計をすると時間がかかりすぎるので、非同期処理を入れています。非同期処理を入れないと、ブラウザがタイムアウトしてしまうぐらい時間がかかることがあるためです。

非同期処理には、sidekiqとredisを使っています。

sidekiqというのは、Ruby on Railsで非同期処理を行うときに使うライブラリの一つで、sidekiqの他にrescueやdelayed_jobなどがあります。

Railsは便利ですね。非同期処理のような難しいことが、簡単にできるようになっていて。初心者の味方です。
Railsで非同期処理を行える「Sidekiq」

sidekiqは、redisというインメモリ型のデータベースを使って動くようなので、redisのインストールも必要です。heroku上でredisを動かすのも簡単で、herokuのアドオンを追加するだけです。

Redisサーバのアドオンはherokuの公式のHeroku Redisというのもありましたが、redis cloudというアドオンを使いました。どちらでも良いと思いますが、両者を比較したウェブ上の記事をいくつか読んで決めました。
Redis Cloud

ファイルインポート/エクスポート

らくらく君は、調査対象のURLを一括で調べられるように、CSVやエクセルのインポート/エクスポートができるようになっています。

CSVやエクセルのインポート/エクスポートはRailsを使えば簡単でした。CSVはRubyのライブラリのcsvというのを使い、エクセルはrooというgemを使いました。

ユーザー管理/認証

らくらく君はログインして使うツールです。Railsにはdeviseというログイン認証のgemがあります。今回は、deviseを使いました。

[*Rails*] deviseの使い方(rails4版)

前に勉強のためにgemを使わずにログイン認証を作ったことありますが、0から自分で作ると色々と面倒でした。そんな手間を解消してくれるdeviseはクソ便利です。

Bootstrap

らくらく君はbootstrapを使ってデザインをしています。一部、javascriptを直接書いたりしていますが、大半はbootstrapのcssとjavascriptの設定をベースにしています。

僕のようにデザイン未経験者からしたら、bootstrapは神ですね。

ナビゲーションのリンクはDBにデータが入っているかどうかをチェックしてクリックの可否制御をしています。また、カラム内の情報が多い場合は、表示制限をして、more readリンクで見れるようにしています。

お客さんからのフィードバック

技術的な話ではないですが、らくらく君は、お客さんからの要望やフィードバックを受けて開発してます。

らくらく君は、冒頭書いたように、もともと僕がSEOツールのサポートでやっていたことの一部を効率化するためのツールです。らくらく君を作る前は、自分のローカルのPCで、らくらく君と同じような処理をプログラムを書いて走らせていました。

そんな折、セレベビーという写真撮影サービスをされている会社さんが、今のらくらく君と同じようなアプリケーションを、自分たちで作ろうとしていると伺ったので、ウェブアプリケーション化して提供することにしました。

セレベビーさん以外にも、色んな人から、ご要望やフィードバックをいただきました。ありがとうございます。

開発の師匠からのアドバイス

Ruby on Railsの開発を得意とするスタートアップテクノロジーさんには、度々もくもく会に参加させてもらって、色々アドバイスをいただきました。

独学の初心者プログラマーの僕にとって、プロのアドバイスはとても参考になりました。

ちなみにバグなどは、全部僕のスパゲッティコードが責任なので、バグを見つけたら、お知らせくださいませ。

今後のバージョンアップ予定

らくらく君はまだα版で、知り合いやお客さんに使ってもらいながらフィードバックを集めて改善しています。すでにいくつか改善したい点をまとめています。

単語集計の精度向上

mecabを使って形態素解析をしていますが、新しい言葉などにまだ対応できていません。てか、なぜか辞書がうまく読み込めてませんwローカルではちゃんと辞書が読み込まれてるのに。。。

まずは、辞書をちゃんと処理させつつ、新語辞書のNeologd対応にする予定です。
RubyでMeCabを使う方法と新語辞書NEologd対応

その上で、辞書の精度を高めていきたいと思っています。ウィキペディアやはてなキーワードを使う方法もあるようなので、調査をしています。
形態素解析のために Wikipedia とはてなキーワードからユーザー辞書を生成し利用する

ロゴ画像

ロゴ画像を改善したいです。今のらくらく君のロゴは僕が無料のロゴ作成ツールで作ったものですが、もっとかっこよくしたいです。

ただ、僕はデザイン力が低いことはよくわかっているので、これを読んでいる方でデザインに自信のある方がいれば、ロゴを考えてもらえませんか?(笑)

お礼に無料のSEOコンサルとか、何らか役に立つことをしますので、お願いします!

より業務で役に立つツールへ

お客さんからのフィードバックをもらいながら、どんどん改善していこうと思っています。

もし、フィードバックをくれるSEOをしている方がいれば、ぜひツイッターアカウントまでお声がけください。フィードバックをもらえるなら、無料で提供します!

らくらく君のロゴ画像のデザインをしてみたい方と、らくらく君を使ってフィードバックしてみたい方は、このツイッターアカウントへご連絡ください!

Share on reddit