Keyword Generator
Keyword Generator
```
```css
body {
font-family: Arial, sans-serif;
}
h1 {
font-size: 24px;
margin-bottom: 10px;
}
form {
width: 500px;
}
label {
display: block;
margin-bottom: 5px;
}
input[type="text"] {
width: 100%;
padding: 5px;
margin-bottom: 10px;
}
select {
width: 100%;
padding: 5px;
margin-bottom: 10px;
}
input[type="submit"] {
width: 100%;
padding: 5px;
background-color: #008CBA;
color: #fff;
border: none;
cursor: pointer;
}
#results {
margin-top: 20px;
}
h2 {
font-size: 18px;
margin-bottom: 10px;
}
ul {
list-style-type: none;
padding: 0;
}
li {
margin-bottom: 5px;
}
```
```javascript
const form = document.getElementById('keyword-form');
const results = document.getElementById('results');
const keywordList = document.getElementById('keyword-list');
form.addEventListener('submit', (e) => {
e.preventDefault();
const seedKeyword = document.getElementById('seed-keyword').value;
const category = document.getElementById('category').value;
// Generate keywords
const keywords = generateKeywords(seedKeyword, category);
// Display results
keywordList.innerHTML = '';
keywords.forEach((keyword) => {
const li = document.createElement('li');
li.textContent = keyword;
keywordList.appendChild(li);
});
results.style.display = 'block';
});
function generateKeywords(seedKeyword, category) {
const keywords = [];
// Add seed keyword
keywords.push(seedKeyword);
// Add related keywords
const relatedKeywords = getRelatedKeywords(seedKeyword, category);
keywords.push(...relatedKeywords);
// Add long-tail keywords
const longTailKeywords = getLongTailKeywords(seedKeyword, category);
keywords.push(...longTailKeywords);
// Remove duplicate keywords
const uniqueKeywords = [...new Set(keywords)];
return uniqueKeywords;
}
function getRelatedKeywords(seedKeyword, category) {
const relatedKeywords = [];
// Get keywords from Google Suggest
const googleSuggestUrl = `https://suggestqueries.google.com/complete/search?client=firefox&q=${seedKeyword}`;
fetch(googleSuggestUrl)
.then((response) => response.json())
.then((data) => {
const suggestions = data[1];
suggestions.forEach((suggestion) => {
if (suggestion.includes(seedKeyword)) {
relatedKeywords.push(suggestion);
}
});
});
// Get keywords from Ubersuggest
const ubersuggestUrl = `https://app.neilpatel.com/api/v1/keyword_suggestions/{}/related?limit=10`;
fetch(ubersuggestUrl)
.then((response) => response.json())
.then((data) => {
const suggestions = data.suggestions;
suggestions.forEach((suggestion) => {
if (suggestion.includes(seedKeyword)) {
relatedKeywords.push(suggestion);
}
});
});
// Filter keywords by category
if (category !== 'all') {
relatedKeywords = relatedKeywords.filter((keyword) => {
return keyword.includes(category);
});
}
return relatedKeywords;
}
function getLongTailKeywords(seedKeyword, category) {
const longTailKeywords = [];
// Get keywords from Google Keyword Planner
const googleKeywordPlannerUrl = `https://ads.google.com/api/keywordplanner/keywordideas?keywordText=${seedKeyword}&site_url=&includeIdeaStats=false&adGroupId=0&device=c&geoid=1027849&language=en&keywordMatchType=BROAD&locationInterest=1027849&excludeAdult=true&network=google_search&targetingOptions.TargetingOption=COMPETITION`;
fetch(googleKeywordPlannerUrl)
.then((response) => response.json())
.then((data) => {
const keywords = data.keywordIdeas;
keywords.forEach((keyword) => {
if (keyword.text.includes(seedKeyword) && keyword.text.includes(' ')) {
longTailKeywords.push(keyword.text);
}
});
});
// Get keywords from SEMrush
const semrushUrl = `https://api.semrush.com/tasks/multitask/v1.0/start?api_key={API_KEY}&task_id=4&tasks=[{\"site_url\":\"\",\"location_name\":\"United States\",\"database\":\"us\",\"keywords\":[\"${seedKeyword}\"],\"options\":{\"result_options\":{\"limit\":10,\"type\":\"phrase_match\",\"sort_order\":\"phrase_match_score_desc\"}}}}]`;
fetch(semrushUrl)
.then((response) => response.json())
.then((data) => {
const keywords = data.tasks[0].result[0].data;
keywords.forEach((keyword) => {
if (keyword.text.includes(seedKeyword) && keyword.text.includes(' ')) {
longTailKeywords.push(keyword.text);
}
});
});
// Filter keywords by category
if (category !== 'all') {
longTailKeywords = longTailKeywords.filter((keywordA
No comments: