Commercial Window Cleaning Cost Calculator

SEO Content & Meta Analyzer

Characters
0
Words
0
Keyword Density
0%
Start typing to see SEO recommendations.
function analyzeSEO() { var content = document.getElementById('seoContent').value; var keyword = document.getElementById('targetKeyword').value.toLowerCase(); var charCount = content.length; var words = content.trim().split(/\s+/).filter(function(w) { return w.length > 0; }); var wordCount = words.length; document.getElementById('charCount').innerText = charCount; document.getElementById('wordCount').innerText = wordCount; var density = 0; if (wordCount > 0 && keyword.length > 0) { var regex = new RegExp(keyword, 'gi'); var matches = content.match(regex); var count = matches ? matches.length : 0; density = (count / wordCount) * 100; } document.getElementById('densityVal').innerText = density.toFixed(2) + '%'; var feedback = document.getElementById('seoFeedback'); var messages = []; if (charCount > 0 && charCount < 120) messages.push("• Meta Tip: Content is a bit short for a Meta Description (Aim for 120-160)."); if (charCount > 160) messages.push("• Meta Warning: Text exceeds 160 characters and may be truncated in SERPs."); if (density > 0 && density < 0.5) messages.push("• Density Tip: Keyword usage is low. Consider natural placement."); if (density > 2.5) messages.push("• SEO Warning: Keyword density is high (" + density.toFixed(1) + "%). Avoid keyword stuffing."); if (wordCount > 300) messages.push("• Content Check: Good length for a focused blog snippet."); if (messages.length === 0 && charCount > 0) { feedback.innerHTML = "✓ Content length and density look optimal for search engines."; feedback.style.backgroundColor = "#f0fdf4"; feedback.style.color = "#166534"; feedback.style.borderColor = "#dcfce7"; } else if (charCount === 0) { feedback.innerHTML = "Start typing to see SEO recommendations."; feedback.style.backgroundColor = "#f8fafc"; feedback.style.color = "#475569"; } else { feedback.innerHTML = messages.join("
"); feedback.style.backgroundColor = "#fffbeb"; feedback.style.color = "#92400e"; feedback.style.borderColor = "#fef3c7″; } } function resetSEOAnalyzer() { document.getElementById('seoContent').value = "; document.getElementById('targetKeyword').value = "; analyzeSEO(); }

Leave a Comment