Website Audit
<div class="tech-seo-wrapper tech-seo-frontend-wrapper">
<div class="tech-seo-header">
<div class="tech-seo-title-group">
<h1><span class="dashicons dashicons-search"></span> Website Technical SEO Audit</h1>
<span class="tech-seo-badge">Screaming Frog Engine • Submitted Pages Only (Depth 0)</span>
</div>
</div>
<!-- Submission Box -->
<div class="tech-seo-card tech-seo-submission-card">
<h2>Submit URLs for Instant SEO Audit</h2>
<p class="tech-seo-subtitle">Audit only the exact URLs you submit below. Includes Canonical tags, Schema Structured Data, XML Sitemap, Robots.txt, Text/HTML Ratio, and Keyword Density.</p>
<div class="tech-seo-tabs-header">
<button type="button" class="tech-seo-tab-btn active" data-tab="fe-manual-tab"><span class="dashicons dashicons-edit"></span> Manual URL Input</button>
<button type="button" class="tech-seo-tab-btn" data-tab="fe-sitemap-tab"><span class="dashicons dashicons-networking"></span> XML Sitemap Import</button>
<button type="button" class="tech-seo-tab-btn" data-tab="fe-file-tab"><span class="dashicons dashicons-upload"></span> Upload CSV / TXT</button>
</div>
<div class="tech-seo-tabs-content">
<!-- Tab 1: Manual -->
<div id="fe-manual-tab" class="tech-seo-tab-pane active">
<label for="tech-seo-url-list"><strong>Enter Page URLs (One URL per line):</strong></label>
<textarea id="tech-seo-url-list" rows="5" placeholder="https://example.com/
https://example.com/about/
https://example.com/services/"></textarea>
</div>
<!-- Tab 2: Sitemap -->
<div id="fe-sitemap-tab" class="tech-seo-tab-pane">
<label for="tech-seo-sitemap-input"><strong>Enter XML Sitemap URL:</strong></label>
<div class="tech-seo-input-group">
<input type="url" id="tech-seo-sitemap-input" class="regular-text" placeholder="https://example.com/sitemap.xml" value="https://paidmediaworld.com/sitemap.xml">
<button type="button" id="btn-parse-sitemap" class="button button-secondary">Parse Sitemap</button>
</div>
<div id="sitemap-summary" class="tech-seo-notice" style="display:none;"></div>
</div>
<!-- Tab 3: File -->
<div id="fe-file-tab" class="tech-seo-tab-pane">
<label for="tech-seo-file-input"><strong>Upload TXT or CSV file containing URLs:</strong></label>
<input type="file" id="tech-seo-file-input" accept=".txt,.csv">
<div id="file-summary" class="tech-seo-notice" style="display:none;"></div>
</div>
</div>
<div class="tech-seo-form-footer">
<div class="tech-seo-field-inline">
<label for="tech-seo-session-name">Session Name:</label>
<input type="text" id="tech-seo-session-name" class="regular-text" placeholder="Audit 2026-09-14 11:42">
</div>
<input type="hidden" id="tech-seo-concurrency" value="3">
<button type="button" id="btn-start-audit" class="button button-primary button-hero"><span class="dashicons dashicons-controls-play"></span> Run Technical Audit</button>
</div>
</div>
<!-- Progress Box -->
<div id="tech-seo-progress-card" class="tech-seo-card" style="display:none;">
<div class="tech-seo-progress-header">
<h2><span class="dashicons dashicons-update spin"></span> Audit In Progress...</h2>
<span id="tech-seo-progress-text">0 / 0 URLs Audited (0%)</span>
</div>
<div class="tech-seo-progress-bar-bg">
<div id="tech-seo-progress-bar-fill" class="tech-seo-progress-bar-fill" style="width: 0%;"></div>
</div>
<div class="tech-seo-progress-status">
<span id="tech-seo-current-url-log">Initializing audit engine...</span>
<button type="button" id="btn-cancel-audit" class="button button-link-delete">Cancel Audit</button>
</div>
</div>
<!-- Dashboard Results Box -->
<div id="tech-seo-results-card" class="tech-seo-card" style="display:none;">
<div class="tech-seo-results-header">
<h2 id="tech-seo-active-session-title">Audit Results</h2>
<div class="tech-seo-results-actions">
<input type="text" id="tech-seo-table-search" placeholder="Search URL or Title..." class="regular-text">
<a id="btn-export-csv" href="#" class="button button-secondary"><span class="dashicons dashicons-download"></span> Export CSV</a>
</div>
</div>
<!-- Overview Metrics Grid -->
<div class="tech-seo-metrics-grid">
<div class="tech-seo-metric-card" data-filter="all">
<div class="metric-val" id="metric-total">0</div>
<div class="metric-label">Total URLs</div>
</div>
<div class="tech-seo-metric-card metric-success" data-filter="200">
<div class="metric-val" id="metric-200">0</div>
<div class="metric-label">200 OK</div>
</div>
<div class="tech-seo-metric-card metric-warning" data-filter="3xx">
<div class="metric-val" id="metric-3xx">0</div>
<div class="metric-label">3xx Redirects</div>
</div>
<div class="tech-seo-metric-card metric-danger" data-filter="4xx">
<div class="metric-val" id="metric-4xx">0</div>
<div class="metric-label">4xx/5xx Errors</div>
</div>
<div class="tech-seo-metric-card" data-filter="MISSING_TITLE">
<div class="metric-val" id="metric-missing-title">0</div>
<div class="metric-label">Missing Titles</div>
</div>
<div class="tech-seo-metric-card" data-filter="MISSING_META_DESC">
<div class="metric-val" id="metric-missing-desc">0</div>
<div class="metric-label">Missing Descs</div>
</div>
<div class="tech-seo-metric-card" data-filter="MISSING_SCHEMA">
<div class="metric-val" id="metric-missing-schema">0</div>
<div class="metric-label">Missing Schema</div>
</div>
<div class="tech-seo-metric-card" data-filter="ROBOTS_TXT_DISALLOWED">
<div class="metric-val" id="metric-robots-disallowed">0</div>
<div class="metric-label">Robots Disallowed</div>
</div>
<div class="tech-seo-metric-card" data-filter="NOT_IN_SITEMAP">
<div class="metric-val" id="metric-not-in-sitemap">0</div>
<div class="metric-label">Not in Sitemap</div>
</div>
<div class="tech-seo-metric-card" data-filter="LOW_TEXT_RATIO">
<div class="metric-val" id="metric-low-text-ratio">0</div>
<div class="metric-label">Text/HTML < 10%</div>
</div>
</div>
<!-- Issue Filter Tabs Bar -->
<div class="tech-seo-filter-bar">
<span class="filter-label">Filter View:</span>
<button type="button" class="tech-seo-filter-btn active" data-filter="all">All URLs</button>
<button type="button" class="tech-seo-filter-btn" data-filter="issues_only">With Issues Only</button>
<button type="button" class="tech-seo-filter-btn" data-filter="4xx">4xx Error</button>
<button type="button" class="tech-seo-filter-btn" data-filter="3xx">3xx Redirect</button>
<button type="button" class="tech-seo-filter-btn" data-filter="MISSING_TITLE">Missing Title</button>
<button type="button" class="tech-seo-filter-btn" data-filter="TITLE_TOO_LONG">Title > 60 Chars</button>
<button type="button" class="tech-seo-filter-btn" data-filter="MISSING_META_DESC">Missing Meta Desc</button>
<button type="button" class="tech-seo-filter-btn" data-filter="MISSING_H1">Missing H1</button>
<button type="button" class="tech-seo-filter-btn" data-filter="MISSING_ALT">Missing Alt Text</button>
<button type="button" class="tech-seo-filter-btn" data-filter="MISSING_SCHEMA">Missing Schema</button>
<button type="button" class="tech-seo-filter-btn" data-filter="ROBOTS_TXT_DISALLOWED">Robots.txt Blocked</button>
<button type="button" class="tech-seo-filter-btn" data-filter="NOT_IN_SITEMAP">Not in Sitemap</button>
<button type="button" class="tech-seo-filter-btn" data-filter="LOW_TEXT_RATIO">Text/HTML Ratio < 10%</button>
<button type="button" class="tech-seo-filter-btn" data-filter="CANONICAL_MISMATCH">Canonical Mismatch</button>
</div>
<!-- Screaming Frog Interactive Data Table -->
<div class="tech-seo-table-container">
<table class="wp-list-table widefat fixed striped tech-seo-table">
<thead>
<tr>
<th style="width: 65px;">Status</th>
<th style="width: 70px;">Indexable</th>
<th>URL Address</th>
<th>Page Title</th>
<th>Meta Description</th>
<th style="width: 85px;">Text/HTML</th>
<th style="width: 100px;">Schema Types</th>
<th style="width: 80px;">Robots.txt</th>
<th style="width: 70px;">Sitemap</th>
<th>Issues</th>
<th style="width: 70px;">Action</th>
</tr>
</thead>
<tbody id="tech-seo-table-body">
<tr>
<td colspan="11" class="text-center">No data loaded yet. Submit URLs above to run an audit.</td>
</tr>
</tbody>
</table>
</div>
</div>
<!-- URL Detail Inspector Modal Drawer -->
<div id="tech-seo-modal-overlay" class="tech-seo-modal-overlay" style="display:none;">
<div class="tech-seo-modal-content">
<div class="tech-seo-modal-header">
<h3 id="modal-url-title">URL Technical Inspector</h3>
<button type="button" id="btn-close-modal" class="tech-seo-modal-close">×</button>
</div>
<div class="tech-seo-modal-body">
<div class="tech-seo-modal-tabs">
<button type="button" class="modal-tab-btn active" data-modaltab="tab-modal-overview">Overview</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-schema">Schema & Technical</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-keywords">Keyword & Density</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-meta">SEO Meta & Directives</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-headings">Headings (H1/H2)</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-images">Images Audit</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-links">On-Page Links</button>
<button type="button" class="modal-tab-btn" data-modaltab="tab-modal-social">Social Open Graph</button>
</div>
<div class="tech-seo-modal-panes">
<div id="tab-modal-overview" class="modal-pane active"></div>
<div id="tab-modal-schema" class="modal-pane"></div>
<div id="tab-modal-keywords" class="modal-pane"></div>
<div id="tab-modal-meta" class="modal-pane"></div>
<div id="tab-modal-headings" class="modal-pane"></div>
<div id="tab-modal-images" class="modal-pane"></div>
<div id="tab-modal-links" class="modal-pane"></div>
<div id="tab-modal-social" class="modal-pane"></div>
</div>
</div>
</div>
</div>
</div>
Companion Master Guide & Tactical Playbook
Step-by-step diagnostic workflows for uncovering crawl errors, canonical conflicts, redirect chains, rogue noindex headers, and Schema.org markup deficits.