SEO Audit 1.4.0

SEO Audit 1.4.0

Compatible XF 2.x versions
  1. 2.3
Additional requirementsPHP cURL extensionLicenseFree / Open SourceVisible brandingNo
A comprehensive SEO audit dashboard built into AdminCP. Scan your forum for 80+ SEO issue types across schema markup, meta tags, content quality, internal/external links, images, and HTML structure. Optionally auto-fix common gaps at render time, no core file edits required.

Admin CP > Tools > Checks and tests > SEO Audit


Checkers
  • Configuration (on by default) - board URL, friendly URLs, HTTPS, sitemap inspection, noindex, metadata logo, analytics
  • Schema / JSON-LD (on by default) - thread author, body, title length, duplicates, slug collisions, forum descriptions
  • Meta Tags (on by default) - empty/short/polluted meta descriptions, duplicates, forum descriptions
  • Content Quality (on by default) - BBCode pollution, missing alt text, spam links, thin content, all-caps titles
  • Internal Links (off by default) - internal broken links via HTTP HEAD requests, rate-limited at 10 per batch, default cap of 500 per scan
  • External Links (off by default) - external broken links with per-domain rate limiting (100ms between same-domain requests), default cap of 5,000 per scan
  • HTML Verification (off by default) - OG tags, heading structure, JSON-LD syntax, canonical URLs in rendered HTML (sample-based)
Advanced Options
  • Report core schema gaps - flag pages where XF core has no JSON-LD generation
  • Theme heuristics - H1 and duplicate description checks (theme-dependent, may produce false positives)
  • Soft 404 detection - detect pages that return HTTP 200 but show error content
  • Batch size - configurable threads per batch (default: 200, minimum: 10). Lower for weaker hosts
  • Use URL cache - toggle per-scan. Cached results don't count against request limits
Analysis
  • 80+ issue types across 6 categories: config (23), schema (16), html (19), content (11), link (6), meta (5)
  • Impact-ranked issues - each issue gets a priority score based on severity and frequency, so the most impactful problems appear first
  • Score improvement hints - shows the potential score gain per fix category (e.g., "Fix 5 critical schema issues for +50 points")
  • Per-forum breakdown - table showing how many issues each forum contributes
  • Delta scanning - only scans threads modified since the last completed scan, using last_post_date and post_date/last_edit_date. Falls back to a full scan if no previous scan exists. Delta scans are marked with a badge on the dashboard
  • Forum/date scoping - select one or more forums and/or set a date range to narrow the scan. Scope parameters are saved with the report for reference
  • URL caching - link check results cached to avoid redundant HTTP requests: 2xx cached 7 days, 4xx/5xx cached 1 day, timeouts cached 6 hours. Expired entries cleaned up automatically via daily cron
  • Concurrent scan lock - only one scan can run at a time
  • 50,000 issue cap per report
CLI Scanner
Run scans from the command line:
Code:
php cmd.php qubn-seoaudit:scan [options]
Flags: --delta, --forum=N, --date-from, --date-to, --external-links, --no-content, --no-schema, --no-config, --core-schema-gaps, --theme-heuristics, --no-url-cache, --soft-404, --email, --email-to

Auto-fix runs at render time via template modifications and an event listener. It does not modify your database content or core files. All auto-fix features are off by default and must be explicitly enabled. Each issue with a specific AdminCP fix includes a Fix it link that takes you straight to the right page.

  • JSON-LD injection: CollectionPage (forums/categories), WebPage with publish date (static pages), WebSite + Organization (homepage). Uses JSON_HEX_TAG encoding for XSS safety
  • Thread JSON-LD enrichment: Enriches XF core's native DiscussionForumPosting with commentCount, isPartOf (DiscussionForum with forum name and URL), and author fallback for deleted/banned users. No duplicate structured data - extends XF core via class extension
  • BreadcrumbList JSON-LD - injects BreadcrumbList structured data on all pages that have breadcrumb navigation
  • Fallback meta description - generates a meta description for forum pages and static pages that don't have one set
  • OG tag gap filling - injects a fallback og:image using your site's public metadata logo URL when no og:image is present
  • ALL CAPS title case correction - automatically converts thread titles with >70% uppercase characters to title case at render time
  • Debug logging - when enabled, logs every auto-fix injection to a dedicated audit log table
  • Audit log - records date, content type, content URL, fix type, and injected HTML for every auto-fix action. Entries auto-prune after 7 days via cron. View the log at SEO Audit > Auto-Fix Log
Each scan produces a score from 0 to 100: max(0, 100 - critical*10 - warning*3 - info*1)

  • A = 90+
  • B = 80-89
  • C = 70-79
  • D = 60-69
  • F = below 60
Severity levels:
  • Critical - actively harming SEO (e.g., noindex enabled globally, missing board URL, broken canonical URLs)
  • Warning - significant issues that should be addressed (e.g., missing meta descriptions, broken links, duplicate titles)
  • Info - suggestions and minor optimizations (e.g., short titles, missing alt text, thin content)
  • Score trend chart - bar chart showing your score over the last 20 completed scans, with clickable bars to jump to any report
  • Category trend chart - stacked bar chart showing issue counts by category (config, schema, meta, content, link, html) over time, with a color legend. Delta scans are marked with a badge
  • Report diff - compare any report against the previous one to see new issue types, fixed issue types, and persistent issues
  • Filterable and sortable - filter by category, severity, content type, and issue type. Sort by any column including impact score (severity × page views). All counts in the report header, issue summary, and per-forum breakdown are clickable links that drill down to filtered views
  • Paginated - configurable per-page display (50 / 100 / 200 / 500) with per-type summary on the first page. Scan history shows 20 reports per page
  • CSV export - downloads a CSV with columns: severity, category, issue type, content type, content ID, content title, content URL, detail, recommendation
  • JSON export - downloads the full report as structured JSON
  • Delete reports - remove any report and its associated issues
  • Issue dismissal - dismiss a single issue, bulk-select multiple issues, or dismiss all issues of a specific type. Link issues are dismissed by URL hash (one dismissal covers all threads with that URL), content issues by content type + content ID, config issues by type only. Each dismissal supports an optional note. Manage all dismissals from SEO Audit > Dismissed Issues
  • Scheduled scanning - configure weekly, biweekly, or monthly automatic scans via cron. The dashboard shows the current schedule and last run timestamp
  • Auto-cleanup - automatically keeps the last N reports (default: 10) and deletes older ones after each scan
  • Email notification - sends a scan summary email with total issues, severity breakdown, score comparison vs previous scan, and a link to the report. Triggered by the CLI --email flag or automatically on scheduled scans
  • Critical issue alerts - sends a separate email when new critical issue types are detected that weren't in the previous scan, including a list of the new types and a score comparison
  • Webhook notifications - sends scan results to a Discord or Slack webhook URL on completion. Payload includes score, grade, issue counts by severity, and a link to the report. Auto-detects Discord vs Slack format from the URL
Navigate to SEO Audit > Issue Configuration:
  • Override the severity level (critical, warning, info) of any issue type
  • Disable specific issue types entirely so they're skipped during scans
  • Adjust all seven detection thresholds: thin thread minimum characters, thread title minimum and maximum length, meta description minimum length, SERP title maximum length, high-traffic noindex thread count, and thin-content minimum word count
  • Reachable from its own AdminCP sidebar entry and a dashboard button
  • Changes apply to future scans only
  • Reset all overrides to defaults with one click
Shows your current SEO score, letter grade, and issue summary from the most recent completed scan directly on the main AdminCP dashboard page.


  • XenForo 2.3.0 or later
  • PHP cURL extension (for link checking)
  1. Upload the ZIP via Admin CP > Add-ons > Install/upgrade from archive
  2. Navigate to Admin CP > Tools > Checks and tests > SEO Audit
  3. Run your first scan
  4. Optionally enable auto-fix features under the Auto-fix settings tab
Access: SEO Audit defines its own "SEO Audit" admin permission, so you can grant it to a specific administrator or moderator account without giving them super-administrator (Admin CP > Administrators > [account] > Permissions). Super admins always have access.

  • 1 class extension (DiscussionHandler for thread JSON-LD enrichment), 2 template modifications, 1 event listener
  • 6 database tables (all prefixed xf_qubn_seoaudit_*): reports, issues, scan dedup, URL cache, dismissed issues, autofix log
  • 4 cron entries: autofix log cleanup (daily), scheduled scan trigger, URL cache cleanup (daily), email digest
  • 19 configurable options in the qubn_seoaudit option group
  • Clean install and uninstall, all tables and data removed on uninstall
  • PHPStan level 3 clean
If you encounter any issues or have feature requests, please use the discussion tab on this resource page. When reporting problems, include:
  • Your XenForo version
  • PHP version
  • Any relevant entries from xf_error_log
  • Steps to reproduce the issue
 

Attachments

Similar content Most view View more
Back
Top Bottom