Calculate Days Between Dates

.seo-input-group { margin-bottom: 20px; } .seo-label { display: block; font-weight: 700; margin-bottom: 8px; font-size: 14px; text-transform: uppercase; letter-spacing: 0.05em; color: #4a5568; } .seo-textarea { width: 100%; height: 150px; padding: 12px; border: 1px solid #cbd5e0; border-radius: 6px; font-size: 16px; box-sizing: border-box; transition: border-color 0.2s; } .seo-textarea:focus { border-color: #4299e1; outline: none; } .seo-btn { background-color: #3182ce; color: white; padding: 12px 24px; border: none; border-radius: 6px; font-weight: 600; cursor: pointer; font-size: 16px; width: 100%; transition: background-color 0.2s; } .seo-btn:hover { background-color: #2b6cb0; } .seo-results { margin-top: 25px; display: none; border-top: 1px solid #e2e8f0; padding-top: 20px; } .seo-stat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-bottom: 20px; } .seo-stat-card { background: #f7fafc; padding: 15px; border-radius: 8px; text-align: center; } .seo-stat-val { display: block; font-size: 24px; font-weight: 800; color: #2d3748; } .seo-stat-lbl { font-size: 12px; color: #718096; } .seo-density-table { width: 100%; border-collapse: collapse; font-size: 14px; } .seo-density-table th { text-align: left; padding: 8px; border-bottom: 2px solid #edf2f7; color: #4a5568; } .seo-density-table td { padding: 8px; border-bottom: 1px solid #edf2f7; }

On-Page SEO Analyzer

0 Word Count
0m Est. Reading Time
Keyword Count Density
function analyzeSEOContent() { var text = document.getElementById('seo-text-input').value; var resultsBox = document.getElementById('seo-results-box'); var densityBody = document.getElementById('seo-density-body'); if (!text || text.trim().length === 0) { alert('Please enter some text to analyze.'); return; } // Clean text var words = text.toLowerCase().replace(/[.,\/#!$%\^&\*;:{}=\-_`~()]/g, "").split(/\s+/); var filteredWords = []; var stopWords = ['the', 'and', 'a', 'to', 'of', 'in', 'is', 'it', 'with', 'for', 'as', 'on', 'was', 'at', 'by', 'an', 'be', 'this', 'that', 'or', 'are', 'from', 'but']; for (var i = 0; i 2 && stopWords.indexOf(words[i]) === -1) { filteredWords.push(words[i]); } } var wordCount = words.filter(function(w){ return w.length > 0 }).length; var readTime = Math.ceil(wordCount / 225); // Calculate Frequency var counts = {}; for (var j = 0; j < filteredWords.length; j++) { var word = filteredWords[j]; counts[word] = (counts[word] || 0) + 1; } // Sort keywords var sortedKeys = Object.keys(counts).sort(function(a, b) { return counts[b] – counts[a]; }); // Display stats document.getElementById('seo-word-count').innerText = wordCount; document.getElementById('seo-read-time').innerText = readTime + 'm'; // Build Table densityBody.innerHTML = ''; var limit = Math.min(sortedKeys.length, 5); for (var k = 0; k < limit; k++) { var key = sortedKeys[k]; var count = counts[key]; var density = ((count / wordCount) * 100).toFixed(2) + '%'; var row = '' + key + '' + count + '' + density + ''; densityBody.innerHTML += row; } resultsBox.style.display = 'block'; }

Leave a Comment