Website Health Scanner

All-in-one audit: SEO, Security, Accessibility, Privacy & Performance in a single scan.

5 Modules 100+ Checks Free Pro: PDF Export + History
`; const blob = new Blob([html], { type: 'text/html' }); const a = document.createElement('a'); a.href = URL.createObjectURL(blob); a.download = `health-report-${new Date().toISOString().slice(0,10)}.html`; a.click(); } function exportPDF() { ToolFactoryPayment.requirePro(() => { // Use print-based PDF generation const win = window.open('', '_blank'); let html = `Report`; html += `

Website Health Report

${scanResults.url} — ${new Date().toLocaleDateString()}

`; for (const [key, mod] of Object.entries(MODULES)) { html += `

${mod.name} — ${mod.score}/100

`; mod.checks.forEach(c => { html += `
${c.status === 'pass' ? '\u2713' : c.status === 'warn' ? '\u26A0' : '\u2717'} ${c.name}: ${c.desc}`; if (c.fix) html += `
${c.fix}`; html += `
`; }); } html += ` `; win.document.write(html); win.document.close(); setTimeout(() => win.print(), 500); }, 'PDF Export'); } function copyResults() { if (!scanResults.url) return; let text = `Website Health Report\n${'='.repeat(40)}\nURL: ${scanResults.url}\nDate: ${new Date().toLocaleString()}\n\n`; for (const [key, mod] of Object.entries(MODULES)) { text += `${mod.name}: ${mod.score}/100\n`; mod.checks.forEach(c => { text += ` ${c.status === 'pass' ? '\u2713' : c.status === 'warn' ? '\u26A0' : '\u2717'} ${c.name}: ${c.desc}\n`; }); text += '\n'; } navigator.clipboard.writeText(text).then(() => { const btn = document.querySelector('.btn-export:last-of-type'); if (btn) { btn.textContent = 'Copied!'; setTimeout(() => btn.textContent = 'Copy Summary', 2000); } }); } // Enter key triggers scan document.getElementById('urlInput').addEventListener('keypress', e => { if (e.key === 'Enter') startScan(); });