Keyword Gap Analysis Tool

Keyword Gap Analysis Tool

Discover keyword opportunities by comparing your list against a competitor's.

${results.yourTotal}

Competitor Keywords

${results.competitorTotal}

Keyword Gap

${results.gap.length}

Shared Keywords

${results.shared.length}

`; // Render lists const renderList = (elementId, keywords) => { const listEl = document.getElementById(elementId); listEl.innerHTML = keywords.length > 0 ? keywords.map(k => `
  • ${k}
  • `).join('') : '
  • None found.
  • '; }; renderList('gap-keywords', results.gap); renderList('your-keywords-only', results.yourOnly); renderList('shared-keywords', results.shared); // Chart if (overlapChart) overlapChart.destroy(); overlapChart = new Chart(document.getElementById('overlap-chart').getContext('2d'), { type: 'doughnut', data: { labels: ['Keywords You\'re Missing', 'Keywords Only You Have', 'Shared Keywords'], datasets: [{ data: [results.gap.length, results.yourOnly.length, results.shared.length], backgroundColor: ['#ef4444', '#22c55e', '#3b82f6'] }] }, options: { responsive: true, plugins: { legend: { position: 'top' } } } }); }; // --- EVENT HANDLERS --- const handleNavClick = () => { if(currentTab === 'config') { runAnalysis(); } else { showTab('config'); } }; const generatePDF = () => { const pdfContent = document.getElementById('pdf-content'); const pdfBtnContainer = document.getElementById('pdf-button-container'); if (!pdfContent || !pdfBtnContainer) return; pdfBtnContainer.style.display = 'none'; html2canvas(pdfContent, { scale: 2, useCORS: true }).then(canvas => { const imgData = canvas.toDataURL('image/png'); const pdf = new jsPDF({ orientation: 'p', unit: 'mm', format: 'a4' }); const pdfWidth = pdf.internal.pageSize.getWidth(); const imgWidth = pdfWidth - 20; const imgHeight = (canvas.height * imgWidth) / canvas.width; pdf.setFontSize(22); pdf.setFont('helvetica', 'bold'); pdf.text('Keyword Gap Analysis Report', pdfWidth / 2, 15, { align: 'center' }); pdf.addImage(imgData, 'PNG', 10, 25, imgWidth, imgHeight); pdf.save('keyword-gap-report.pdf'); pdfBtnContainer.style.display = 'block'; }); }; // Sample Data document.getElementById('your-keywords').value = "digital marketing agency\nseo services\nlocal seo company\nppc management\ncontent marketing services\nsocial media marketing"; document.getElementById('competitor-keywords').value = "seo services\nppc agency\nsocial media advertising\nemail marketing platform\nwhat is digital marketing\nlocal seo company\ncontent marketing strategy"; // --- ATTACH LISTENERS --- prevBtn.addEventListener('click', () => showTab('config')); nextBtn.addEventListener('click', handleNavClick); tabButtons.config.addEventListener('click', () => showTab('config')); tabButtons.dashboard.addEventListener('click', () => showTab('dashboard')); downloadPdfBtn.addEventListener('click', generatePDF); });
    Scroll to Top