function runSeoAudit() {
var text = document.getElementById('seoContentBody').value;
var kw = document.getElementById('targetKeyword').value.toLowerCase();
var report = document.getElementById('seoAuditReport');
var list = document.getElementById('seoChecklist');
if (!text || text.length 0; }).length;
var avgSentLength = wordCount / (sentences || 1);
document.getElementById('resWords').innerText = wordCount;
var kwCount = 0;
if (kw) {
var regex = new RegExp('\\b' + kw + '\\b', 'gi');
var matches = text.match(regex);
kwCount = matches ? matches.length : 0;
var density = ((kwCount / wordCount) * 100).toFixed(2);
document.getElementById('resDensity').innerText = density + '%';
} else {
document.getElementById('resDensity').innerText = 'N/A';
}
function addCheck(passed, message) {
var li = document.createElement('li');
li.style.padding = '8px 0′;
li.style.fontSize = '14px';
li.style.borderBottom = '1px solid #edf2f7';
li.style.color = passed ? '#2f855a' : '#c53030';
li.innerHTML = (passed ? '✓ ' : '✕ ') + message;
list.appendChild(li);
}
addCheck(wordCount >= 600, 'Word count: ' + wordCount + ' (Recommended: 600+)');
if (kw) {
var dens = (kwCount / wordCount) * 100;
addCheck(dens >= 0.5 && dens <= 2.5, 'Keyword Density: ' + dens.toFixed(2) + '% (Ideal: 0.5% – 2.5%)');
}
addCheck(avgSentLength <= 20, 'Readability: Average ' + avgSentLength.toFixed(1) + ' words per sentence (Target: 0, 'Structure: Subheadings detected (H2/H3 markers recommended)');
}