Problem/Motivation
The Content First module computes heading analysis on-the-fly when visiting a node's Content First tab. There is no way to get a site-wide overview of heading health, making SEO audit workflows impractical on sites with many nodes.
Steps to reproduce
- Install the Content First module on a site with multiple nodes.
- Try to identify all nodes with missing H1 tags, multiple H1s, or broken heading hierarchy.
- The only option is visiting each node's Content First tab individually.
Proposed resolution
- Create a new sub-module
content_first_auditthat persists heading analysis results (H1 count, hierarchy validity) in a database table on node save. - Extract the heading analysis logic from the controller into a shared service to avoid duplication.
- Provide a Views-based admin report at
/admin/reports/content-firstwith filters and sorting to quickly identify problematic content. - Add a status report entry on
/admin/reports/statussummarizing heading health across the site.
Remaining tasks
- Review and merge.
User interface changes
- New admin report page at
/admin/reports/content-first. - New menu link under Administration → Reports.
- New entry on the status report page.
API changes
- New shared heading analyzer service in the main module.
- New repository service in the sub-module for audit data access.
Data model changes
New database table content_first_audit storing heading analysis results per node translation (entity ID, entity type, H1 count, hierarchy validity, language).
| Comment | File | Size | Author |
|---|---|---|---|
| #4 | content_first_audit_view.png | 96.53 KB | eduardo morales alberti |
Issue fork content_first-3577499
Show commands
Start within a Git clone of the project using the version control instructions.
Or, if you do not have SSH keys set up on git.drupalcode.org:
Comments
Comment #2
eduardo morales albertiComment #4
eduardo morales albertiReady to review.

Example:
Comment #6
eduardo morales albertiMerged!