Per-page SEO audit

URL: https://example.com Run: #12 · Status: ok · Cost: $0.0000 When: 2026-06-01T07:34:22+00:00


Pre-flight

Technical audit

Fails (must fix)

CheckSeverityMessageFix
Canonical tagcriticalcanonical tag missingAdd <link rel='canonical' href='<this page's clean URL>'> to <head>.
Title tagcriticaltitle tag missingAdd <title>…</title> to <head>.
Meta descriptioncriticalmeta description missingAdd a 110-160 char meta description.
lang / charset / viewportwarnmissing <html lang>; missing charset meta; missing viewport metaAdd the missing <html lang>, <meta charset>, or <meta viewport>.
Schema — JSON-LD presentcriticalno JSON-LD schema foundAdd the SOP §6.3 graph (Organization, Person, WebSite, WebPage, Article\Service, BreadcrumbList, FAQPage if visible FAQ).
Page structure — exactly one H1criticalno H1 foundAdd exactly one H1 to the page.
Footer — Privacy Policy linkwarnno <footer> element foundAdd a <footer> with required links.
Footer — Sitemap linkwarnno <footer> element foundAdd a <footer> with required links.

Flags (review)

CheckSeverityMessageFix
Open Graph tagswarnmissing: og:title, og:description, og:image, og:url, og:typeAdd the missing og:* meta tags in <head>.
Twitter Card tagsinfomissing: twitter:card, twitter:title, twitter:description, twitter:imageAdd the missing twitter:* meta tags in <head>.
Content — images in H2/H3 sectionswarn0 image(s) inside H2/H3 sections (target ≥3)Add more images under H2/H3 sub-headings.
Content — outbound internal linkswarn0 internal link(s) (target ≥2)Add at least 2 internal links to relevant pages on the site.
Content — Google Map embedinfono Google Map iframe foundEmbed the client's GBP map iframe on the page.
Root artifact — /llm.txtinfonot foundAdd /llm.txt at the site root.
Root artifact — /humans.txtinfonot foundAdd /humans.txt at the site root.

Production checklist (SOP 5-phase)

Phase 1

OwnerItemStatusNotes
CopywriterPrimary keyword phrase selectedMANUALrequires access the tool lacks (login / sign-off / board state)
CopywriterTop 3 non-listicle competitor/authority pages pulled and saved as PDFsMANUALrequires access the tool lacks (login / sign-off / board state)
Copywriter(Optional) CORA wordcount targets + source selection setMANUALrequires access the tool lacks (login / sign-off / board state)
CopywriterAll research inputs saved in /01 ResearchMANUALrequires access the tool lacks (login / sign-off / board state)

Phase 2

OwnerItemStatusNotes
CopywriterMODE=OUTLINE produced (MECE outline, H2/H3/H4 + FAQ question list)MANUALrequires access the tool lacks (login / sign-off / board state)
CopywriterMODE=DRAFT_SECTION run per H2 and full draft assembled in Google DocMANUALrequires access the tool lacks (login / sign-off / board state)
CopywriterCopy reads naturally: atomic paragraphs (1-3 sentences), expert toneFLAGneeds human editorial/visual review
CopywriterDefinitional sections lead with a short answer-first paragraphFLAGneeds human editorial/visual review
CopywriterImage briefs (1 per major H2) with suggested concept + alt textFLAGneeds human editorial/visual review
CopywriterNo external links and no invented facts/stats/awards in the copyFLAGneeds human editorial/visual review

Phase 3

OwnerItemStatusNotes
CoordinatorClient approved the copy in Google DocsMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorApproved doc duplicated to /03, renamed APPROVED (YYYY-MM-DD), PDF exportedMANUALrequires access the tool lacks (login / sign-off / board state)
CopywriterGB_APPROVED_COPY_PACKET built in a NEW chat (self-contained) and savedMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Meta Title included in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Meta Description included in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Breadcrumb Trail (labels + URLs) included in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: TL;DR (30-60 words) included in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Jump Links list (H2s) included in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Anchor IDs for every H2 + H3 included in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Visible FAQ Q/A present (final wording) in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Internal link suggestions (2 from + 2 to) in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: Image briefs (1 per major H2) in packetMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorPacket QA gate: {{MISSING_DATA}} placeholders used where needed in packetMANUALrequires access the tool lacks (login / sign-off / board state)

Phase 4

OwnerItemStatusNotes
DeveloperBreadcrumb links at top of page + corresponding BreadcrumbList schemaSKIPPEDmapped check(s) not present in audit: Schema — required types, Schema — canonical hostname consistency
DeveloperHero/above-the-fold: H1 + TL;DR answer block + jump linksFAILPage structure — exactly one H1: no H1 found
DeveloperSection anchors match the IDs referenced in schema / jump linksPASSPage structure — jump links resolve: all jump links resolve
DeveloperExpandable FAQ UI (accordion or <details>/<summary>)SKIPPEDPage structure — FAQ as accordion: no visible FAQ detected
DeveloperJSON-LD present (single <script type="application/ld+json"> block)FAILSchema — JSON-LD present: no JSON-LD schema found
DeveloperAdd 2 relevant internal links FROM the page (and 2 TO the page)FLAGContent — outbound internal links: 0 internal link(s) (target ≥2)
DeveloperAdd images per Image Briefs with correct alt textFLAGContent — images in H2/H3 sections: 0 image(s) inside H2/H3 sections (target ≥3)
DeveloperSchema graph present: Organization, Person, WebSite, WebPage, BreadcrumbListSKIPPEDmapped check(s) not present in audit: Schema — required types
DeveloperPage-type schema present: BlogPosting OR Service (match page type)SKIPPEDmapped check(s) not present in audit: Schema — page-type (Article/Service)
DeveloperArticle/WebPage required fields present (headline, author, dates, etc.)SKIPPEDmapped check(s) not present in audit: Schema — Article required fields
DeveloperMeta Title set on the built page (from packet)FAILTitle tag: title tag missing
DeveloperMeta Description set on the built page (from packet)FAILMeta description: meta description missing

Phase 5

OwnerItemStatusNotes
DeveloperExactly one H1FAILPage structure — exactly one H1: no H1 found
DeveloperNo empty headingsPASSPage structure — no empty headings: no empty headings
DeveloperAll jump links work and scroll to the correct sectionPASSPage structure — jump links resolve: all jump links resolve
DeveloperBreadcrumb links are correct and match breadcrumb schema URLsSKIPPEDmapped check(s) not present in audit: Schema — canonical hostname consistency, Schema — required types
DeveloperFAQ accordion displays correctly on mobile and desktopSKIPPEDPage structure — FAQ as accordion: no visible FAQ detected
DeveloperFAQ schema Q/A matches visible Q/A exactly (word-for-word)SKIPPEDmapped check(s) not present in audit: Schema — FAQPage matches visible FAQ
DeveloperNo {{MISSING_DATA}} placeholders remain (unless documented)PASSPage structure — no {{MISSING_DATA}} placeholders: none found
DeveloperRequired schema graph present and well-formed (validator / Rich Results)FAILSchema — JSON-LD present: no JSON-LD schema found
DeveloperCanonical correct + consistent hostname (www vs non-www)FAILCanonical tag: canonical tag missing
DeveloperPage is indexable (no stray noindex / robots block)PASSIndexability — noindex: page is indexable
DeveloperNo external links in the body copyFLAGneeds human editorial/visual review
CoordinatorQA screenshots captured (mobile + desktop) and saved in /05 QA ProofMANUALrequires access the tool lacks (login / sign-off / board state)
DeveloperIndexing submission recorded (Search Console) after publishMANUALrequires access the tool lacks (login / sign-off / board state)
CoordinatorFinal Coordinator QA sign-off before publishMANUALrequires access the tool lacks (login / sign-off / board state)
Coordinator06 PATCH History: post-build copy/meta changes applied as minimal diffs (if any)MANUALrequires access the tool lacks (login / sign-off / board state)