Cara Membuat Riset Keyword Generator di Blogger
Pernah bingung nggak sih, keyword apa ya yang lagi dicari sama orang-orang? Atau, keyword apa yang paling tepat buat artikel kita biar makin banyak yang baca? Dulu, aku juga sering banget pusing mikirin ini.
Riset keyword itu emang penting, tapi kadang ribet juga ya kan? Nah, karena itu… aku punya kabar baik. Aku baru aja bikin tools keyword generator sederhana, dan pengen banget ngenalin ini ke kalian semua.
Yuk, kita bahas kenapa keyword generator ini bisa jadi sahabat terbaik buat kalian.
Kenapa Riset Keyword Itu Penting Banget?
![]() |
https://www.nichepursuits.com/best-keyword-research-tool/ |
Sebelum kita bahas lebih jauh tentang tools keyword generator ini, penting banget buat kita semua paham kenapa riset keyword itu krusial. Bayangin deh, kamu punya toko kue yang enak banget. Tapi, kalau nggak ada yang tahu toko kamu di mana, atau orang nggak nyari "kue ulang tahun enak di [nama kota]", ya susah juga kan? Nah, keyword itu kayak "peta" yang ngebantu orang nemuin toko kue kamu di dunia maya.
Dengan riset keyword yang tepat, kamu bisa:
- Naikin Ranking di Google: Keyword yang tepat ngebantu Google ngerti tentang apa website kamu, jadi Google bisa nunjukin website kamu ke orang yang lagi nyari informasi itu.
- Narik Lebih Banyak Pengunjung: Kalau website kamu muncul di halaman pertama Google, otomatis peluang dikunjungi orang juga makin besar.
- Ningkatin Penjualan (Buat Bisnis Online): Dengan tahu keyword apa yang orang cari saat mau beli produk atau jasa, kamu bisa optimalkan website kamu biar lebih relevan.
Berikut adalah beberapa cara membuat Keyword Generator Shitter sederhana:
1. Masukan Javascript di halaman Stastis atau Edit HTML Blogger
var keywordsToDisplay = new Array();
var hashMapResults = {};
var numOfInitialKeywords = 0;
var doWork = false;
var keywordsToQuery = new Array();
var keywordsToQueryIndex = 0;
var queryflag = false;
window.setInterval(DoJob, 750);
function StartJob()
{
if(doWork == false)
{
keywordsToDisplay = new Array();
hashMapResults = {};
keywordsToQuery = new Array();
keywordsToQueryIndex = 0;
hashMapResults[""] = 1;
hashMapResults[" "] = 1;
hashMapResults[" "] = 1;
var ks = $('#input').val().split("\n");
var i = 0;
for(i = 0; i < ks.length; i++)
{
keywordsToQuery[keywordsToQuery.length] = ks[i];
keywordsToDisplay[keywordsToDisplay.length] = ks[i];
var j = 0;
for(j = 0; j < 26; j++)
{
var chr = String.fromCharCode(97 + j);
var currentx = ks[i] + ' ' + chr;
keywordsToQuery[keywordsToQuery.length] = currentx;
hashMapResults[currentx] = 1;
}
}
numOfInitialKeywords = keywordsToDisplay.length;
FilterAndDisplay();
doWork = true;
$('#startjob').val('Stop Job');
}
else
{
doWork = false;
alert("Stopped");
$('#startjob').val('Start Job');
}
}
function DoJob()
{
if(doWork == true && queryflag == false)
{
if(keywordsToQueryIndex < keywordsToQuery.length)
{
var currentKw = keywordsToQuery[keywordsToQueryIndex];
QueryKeyword(currentKw);
keywordsToQueryIndex++;
}
else
{
if (numOfInitialKeywords != keywordsToDisplay.length)
{
alert("Done");
doWork = false;
$('#startjob').val('Start Job');
}
else
{
keywordsToQueryIndex = 0;
}
}
}
}
function QueryKeyword(keyword)
{
var querykeyword = keyword;
var queryresult = '';
queryflag = true;
$.ajax({
url: "//suggestqueries.google.com/complete/search",
jsonp: "jsonp",
dataType: "jsonp",
data: {
q: querykeyword,
client: "chrome"
},
success: function(res) {
var retList = res[1];
var i = 0;
for(i = 0; i < retList.length; i++)
{
var currents = CleanVal(retList[i]);
if(hashMapResults[currents] != 1)
{
hashMapResults[currents] = 1;
keywordsToDisplay[keywordsToDisplay.length] = CleanVal(retList[i]);
keywordsToQuery[keywordsToQuery.length] = currents;
var j = 0;
for(j = 0; j < 26; j++)
{
var chr = String.fromCharCode(97 + j);
var currentx = currents + ' ' + chr;
keywordsToQuery[keywordsToQuery.length] = currentx;
hashMapResults[currentx] = 1;
}
}
}
FilterAndDisplay();
var textarea = document.getElementById("input");
textarea.scrollTop = textarea.scrollHeight;
queryflag = false;
},
error: function(jqXHR, textStatus, errorThrown) {
console.error("AJAX Error: ", textStatus, errorThrown);
queryflag = false; // Pastikan flag direset bahkan jika ada kesalahan
}
});
}
function CleanVal(input)
{
var val = input;
val = val.replace(/\u003cb\u003e/g, "");
val = val.replace(/\u003c\/b\u003e/g, "");
val = val.replace(/\u0026amp;/g, "&");
val = val.replace(/\u0026/g, ""); // Ini mungkin terlalu agresif, sesuaikan jika perlu
val = val.replace(/\u0026#39;/g, "'");
val = val.replace(/#39;/g, "'");
val = val.replace(/\u2013/g, "2013"); // Mengganti en-dash dengan '2013'
if (val.length > 4 && val.substring(0, 4) == "http") val = "";
return val;
}
function Filter(listToFilter)
{
var retList = listToFilter;
if (document.getElementById("filter-positive").value.length > 0)
{
var filteredList = new Array();
var filterContains = document.getElementById("filter-positive").value.split("\n");
var i = 0;
for (i = 0; i < retList.length; i++)
{
var currentKeyword = retList[i];
var boolContainsKeyword = false;
var j = 0;
for (j = 0; j < filterContains.length; j++)
{
if (filterContains[j].length > 0)
{
if (currentKeyword.indexOf(filterContains[j]) != -1)
{
boolContainsKeyword = true;
break;
}
}
}
if (boolContainsKeyword)
{
filteredList[filteredList.length] = currentKeyword;
}
}
retList = filteredList;
}
if (document.getElementById("filter-negative").value.length > 0)
{
var filteredList = new Array();
var filterContains = document.getElementById("filter-negative").value.split("\n");
var i = 0;
for (i = 0; i < retList.length; i++)
{
var currentKeyword = retList[i];
var boolCleanKeyword = true;
var j = 0;
for (j = 0; j < filterContains.length; j++)
{
if (filterContains[j].length > 0)
{
if (currentKeyword.indexOf(filterContains[j]) >= 0)
{
boolCleanKeyword = false;
break;
}
}
}
if (boolCleanKeyword)
{
filteredList[filteredList.length] = currentKeyword;
}
}
retList = filteredList;
}
return retList;
}
function FilterAndDisplay()
{
var i = 0;
var sb = '';
var outputKeywords = Filter(keywordsToDisplay);
for (i = 0; i < outputKeywords.length; i++)
{
sb += outputKeywords[i];
sb += '\n';
}
document.getElementById("input").value = sb;
document.getElementById("numofkeywords").innerHTML = '' + outputKeywords.length + ' : ' + keywordsToDisplay.length;
}
function FilterIfNotWorking()
{
if (doWork == false)
{
FilterAndDisplay();
}
}
function post_to_url(path, params, method) {
method = method || "post";
var form = document.createElement("form");
form.setAttribute("method", method);
form.setAttribute("action", path);
for(var key in params) {
if(params.hasOwnProperty(key)) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", params[key]);
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
function Download() {
var inputText = document.getElementById("input").value;
var filename = "keywords.txt";
var blob = new Blob([inputText], { type: "text/plain" });
var link = document.createElement("a");
link.href = URL.createObjectURL(blob);
link.download = filename;
link.click();
URL.revokeObjectURL(link.href); // Bersihkan URL objek setelah diunduh
}
Pastikan jQuery sudah dimuat di blog Blogger sebelum scrip ini dijalankan. Jika tidak, maka perlu menambahkannya ke template Blogger.
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script>
2. Pastikan struktur HTML mencakup elemen-elemen ini agar skrip berfungsi.
Contoh struktur HTML:
<div class="grid">
<div class="grid__col grid__col--3-of-9">
<div id="numofkeywords"></div>
<textarea id="input" rows="15" cols="50" placeholder="Masukkan kata kunci awal, satu per baris"></textarea><br>
<button id="startjob" onclick="StartJob()">Start Job</button><br>
</div>
<div class="grid__col grid__col--1-of-9" align="left">
<h3>Filter Positif</h3>
<textarea id="filter-positive" rows="5" cols="50" onkeyup="FilterIfNotWorking()"></textarea><br>
<h3>Filter Negatif</h3>
<textarea id="filter-negative" rows="5" cols="50" onkeyup="FilterIfNotWorking()"></textarea><br>
<button onclick="Download()">Download Keywords</button>
</div>
</div>
3. Selesai.
Jika ingin alat ini berfungsi secara stabil, kamu mungkin perlu membuat API riset kata kunci yang sah sendiri. Namun, untuk eksperimen pribadi dan penggunaan sesekali, kode ini adalah titik awal yang menarik.
Referensi tools: Free Keyword Research Tool - https://keywordshitter.com/
Jadi gunakan tools ini secara bijak, jangan sampai blog saya down ya.
Post a Comment