SEO対策において、キーワード選定は非常に重要です。私もブログ運営において苦戦しているところであります!
無料で使える便利なツールとして「ラッコキーワード」が人気ですが、無料プランでは1日の利用回数に制限があります。
もっと手軽にキーワード調査をしたいと感じている方もいるのではないでしょうか?
ラッコキーワードの機能をGASで実装
今回は、Google Apps Script(GAS)で自作した無料のサジェストキーワードリサーチツールを紹介します。
ラッコキーワードの無料版と同じような機能を持ちながら、利用回数無制限でサジェストキーワードを収集できる優れものです。
GASと聞くと難しそうに感じるかもしれませんが、ご安心ください。簡単な操作で、誰でも手軽に利用できます。
サジェストキーワードを自動で抽出&整理
Googleのサジェスト機能を活用し、指定したキーワードに関連するサジェストキーワードを自動で収集します。ラッコキーワードのように、関連性の高いキーワードを一覧で表示し、SEO対策に役立つ情報を整理できます。
強力な50音・A-Zの組み合わせ機能
キーワードに50音を組み合わせることで、ユーザーの検索意図に合致する「ずらしキーワード」を生成します。例えば、「東京観光」というキーワードに対して、「東京観光 穴場」や「東京観光 格安」といったキーワードを提案します。
この機能は、ラッコキーワードにも搭載されていましたが、GASツールではさらに多くの組み合わせを網羅的に調査できます。SEOで上位表示を狙うためには、競合が少ないニッチなキーワードを見つけることが重要です。
このツールを使えば、ラッコキーワードよりもさらに深くキーワードを掘り下げ、SEO戦略を強化できます。
サジェストキーワードツール導入方法
GASの知識がなくても、これらの手順に従えば簡単にツールを導入できます。紹介するスクリプトをコピーしてもらいスクリプトの実行をしてもらうだけです。
実行すれば、ラッコキーワードのような検索ツールを利用回数を気にせず、利用できます。
導入スクリプト
使用するのはこちらのスクリプトです。
const BASE_URL = "http://www.google.com/complete/search?hl=en&output=toolbar&q=";
function onEdit(e) {
const sheet = SpreadsheetApp.getActiveSheet();
const cell = sheet.getActiveCell();
if (
(cell.getColumn() == 1 && cell.getRow() == 2) ||
(cell.getColumn() == 2 && cell.getRow() == 18)
) {
fetchKeywordSuggestions();
}
}
function fetchKeywordSuggestions() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheetByName("サジェスト簡易検索");
const keyword = sheet.getRange(2, 1).getValue();
const keywordCounter = {};
let suggestionList = [];
// 最初のキーワードのサジェストを取得
suggestionList.push(fetchSuggestions(keyword));
// サジェストから更にサジェストを取得
for (const suggestion of suggestionList[0]) {
suggestionList.push(fetchSuggestions(suggestion));
}
// 出力
sheet.getRange(5, 1, 10, 11).clearContent();
let outputColumn = 0;
for (const suggestions of suggestionList) {
if (suggestions.length > 0) {
sheet
.getRange(5, 1 + outputColumn, suggestions.length, 1)
.setValues(transposeList(suggestions));
outputColumn++;
} else {
outputColumn++;
}
}
// カウント
countKeywords(suggestionList, keywordCounter);
// 50音かけ合わせ
const hiraganas = sheet.getRange(19, 2, 1, 5).getValues()[0];
suggestionList = [];
for (const hiragana of hiraganas) {
suggestionList.push(fetchSuggestions(keyword + " " + hiragana));
}
// カウント
countKeywords(suggestionList, keywordCounter);
// 50音掛け合わせの出力
outputColumn = 0;
sheet.getRange(21, 2, 10, 5).clearContent();
for (const suggestions of suggestionList) {
if (suggestions.length > 0) {
sheet
.getRange(21, 2 + outputColumn, suggestions.length, 1)
.setValues(transposeList(suggestions));
outputColumn++;
} else {
outputColumn++;
}
}
}
function fetchSuggestions(keyword) {
const requestUrl = BASE_URL + keyword;
const options = {
contentType: "application/xml; charset=utf-8",
};
const xml = UrlFetchApp.fetch(requestUrl, options).getContentText("UTF-8");
const suggestions = XmlService.parse(xml)
.getRootElement()
.getChildren("CompleteSuggestion");
return suggestions.map((suggestion) =>
suggestion.getChild("suggestion").getAttribute("data").getValue()
);
}
function transposeList(list) {
return list.map((item) => [item]);
}
function countKeywords(suggestionList, keywordCounter) {
for (const suggestions of suggestionList) {
for (const suggestion of suggestions) {
suggestion.split(" ").forEach((kw) => {
keywordCounter[kw] = (keywordCounter[kw] || 0) + 1;
});
}
}
}
導入/利用までのステップ
- Googleスプレッドシートの準備
Googleスプレッドシートを開き、「サジェスト簡易検索」という名前のシートを作成 - GASコードのコピー&ペースト
コードをコピーし、スプレッドシートの「拡張機能」→「Apps Script」からスクリプトエディタを開き、貼り付け - キーワード入力
「サジェスト簡易検索」シートの指定されたセル(A2)に、調べたいキーワードを入力 - スクリプト実行
スクリプトエディタの「実行」ボタンをクリックすると、関連キーワードやずらしキーワードが自動でシートに出力
トリガー設定でさらに便利に
GASについて、ご存じの方はトリガー設定をおこなえば、キーワード入力の編集をキーにスクリプトの実行をさせることが可能です。
GASツールでSEO対策
ラッコキーワードは便利なツールですが、無料版では利用回数に制限があります。自分で設定するのは面倒だなぁ、という方はこちらからコピーしてお使いください。
GASで自作した無料のサジェストキーワードリサーチツールを使えば、その制限を気にせず、好きなだけキーワード調査を行うことができます。
キーワード選定に悩んでいる方は、ぜひこのツールを活用して、SEOの成功を目指しましょう!