Public Audit Report

bonedry.com

https://bonedry.com/
Scanned on August 4, 2026
69
Overall
C
69
SEO
66/100 passed
67
AEO
30/47 passed
69
GEO
39/59 passed
135
Passed
70
Failed
205
Total Checks
Needs Work
Rating

Quick Wins — Top 5 Issues to Fix

SEO — 69/100 (34 issues)

Failed Checks (34)

  • 2 H1 tags found (should be exactly 1)content
  • Heading hierarchy has gaps (e.g. H1 to H3 without H2)content
  • 41% long sentences (>20 words) — break up for readabilitycontent
  • 44 images missing width/height — causes layout shift (CLS)content
  • Missing twitter:titlesocial
  • Missing twitter:descriptionsocial
  • Missing twitter:imagesocial
  • No hreflang tags — add if targeting multiple languagestechnical
  • Text-to-HTML ratio: 5.0% — too code-heavy, add more contenttechnical
  • Inline CSS: 95.0 KB — too much, move to external stylesheetperformance
  • Inline JS: 349.2 KB — too much, use external scriptsperformance
  • 26 render-blocking scripts — add defer or async attributeperformance
  • No font preload/preconnect — add for faster renderingperformance
  • No Strict-Transport-Security headersecurity
  • No Content-Security-Policy header — XSS risksecurity
  • Schema may be excessive: 2 JSON-LD blocks, 274.4 KB total — consider consolidatingschema
  • 1 JSON-LD block(s) with syntax errors — fix invalid JSONschema
  • Web fonts without font-display: swap — may cause FOITperformance
  • robots.txt does not reference Sitemap — add Sitemap: URLtechnical
  • 3 target="_blank" links missing rel="noopener" — security risksecurity
  • No Web App Manifest — add for installability and modern web signalstechnical
  • No dns-prefetch or preconnect hints — add for faster third-party loadingperformance
  • Only 0% responsive images — add srcset for mobilecontent
  • Event content found but no Event schema — add for event rich resultsschema
  • Missing X-Frame-Options — clickjacking risksecurity
  • No Referrer-Policy header — may leak URL datasecurity
  • No Permissions-Policy — restrict camera/mic/geo accesssecurity
  • 3 paragraph(s) exceed 150 words — break up for readabilitycontent
  • 158 links on page — exceeds 100 limit, may dilute link equitycontent
  • DOM size: ~1909 elements — exceeds 1500, may slow renderingperformance
  • 9 render-blocking script(s) in head — add defer or asyncperformance
  • 10 third-party script domains — may slow page load (cdnjs.cloudflare.com, ajax.googleapis.com, www.googletagmanager.com...)performance
  • 6 duplicate ID(s) found: "Path_5" (2x), "Group_8" (3x), "Path_1" (3x) — must be unique per HTML specaccessibility
  • 3 iframe(s) without sandbox attribute — security risksecurity

Passed Checks (66)

  • Title tag found: "Bone Dry Roofing | Roofing, Gutters, Masonry & More"meta
  • Title length: 55 characters (optimal)meta
  • Meta description found (158 chars)meta
  • Description length: 158 chars (optimal)meta
  • Viewport meta tag found (mobile-friendly)meta
  • UTF-8 charset declaredmeta
  • Language attribute set on HTML tagmeta
  • No meta refresh redirect (good)meta
  • Robots: "index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"meta
  • 8 H2 tags foundcontent
  • 5031 words on page (good content depth)content
  • Readability: 47 (moderate — aim for 60+)content
  • All 47 images have ALT textcontent
  • JS-based lazy loading detectedcontent
  • 9 of 47 images use legacy formats (JPG/PNG/GIF) — convert to WebP/AVIF for 25-50% smaller filescontent
  • 143 internal links foundcontent
  • 9 external links foundcontent
  • No empty href attributes foundcontent
  • All link texts are descriptive (no "click here" or "read more")content
  • Open Graph title foundsocial
  • Open Graph description foundsocial
  • Open Graph image foundsocial
  • Open Graph URL foundsocial
  • og:type set to "website"social
  • og:site_name: "Bone Dry Roofing"social
  • Twitter Card: "summary_large_image"social
  • HTTPS enabledtechnical
  • Canonical tag foundtechnical
  • Canonical tag is self-referencing (correct)technical
  • Favicon foundtechnical
  • Compression: enabled (vary: accept-encoding)technical
  • URL length: 20 chars (good)technical
  • URL uses hyphens or no separators (good)technical
  • No deprecated HTML tags foundtechnical
  • Cache-Control: public, max-age=0, s-maxage=604800performance
  • X-Content-Type-Options: nosniffsecurity
  • About page link found — builds trust and E-E-A-Ttrust
  • Contact page/email link foundtrust
  • Privacy Policy link foundtrust
  • Terms of Service link foundtrust
  • Author byline foundtrust
  • 2 JSON-LD schema block(s) foundschema
  • Schema types: WebSite, Organization, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusiness, roofingContractor, HomeAndConstructionBusiness, localBusinessschema
  • <!DOCTYPE html> declaredtechnical
  • No mixed content — all resources use HTTPStechnical
  • Viewport includes width=device-width (responsive)meta
  • robots.txt found and allows crawlingtechnical
  • No AI crawlers blocked in robots.txt — AI search and training can access contenttechnical
  • sitemap.xml found with valid formattechnical
  • Sitemap contains 8 URL(s)technical
  • All 5 checked internal links are workingcontent
  • 0% nofollow links (0/152) — good link equity flowcontent
  • OG image uses absolute URL (correct)social
  • All schema types have required propertiesschema
  • 74 first-person pronouns — strong personal experiencecontent
  • Title uses "|" separator — Google may rewrite it; consider using "—" insteadmeta
  • max-image-preview:large — eligible for Google Discover large imagesmeta
  • Organization schema includes logoschema
  • Title and meta description are different (good)meta
  • OG URL matches canonical URL (consistent)social
  • Viewport allows zoom (good for accessibility)accessibility
  • No snippet blocking detected (good — content is fully accessible)technical
  • ARIA landmarks present: main, nav, skip-linkaccessibility
  • All 8 form input(s) have labels or aria-labelsaccessibility
  • 1 feed(s) discovered (RSS) — aids content discoverytechnical
  • All 8 H2 sections have sufficient depth (avg 595 words)content
AEO — 67/100 (17 issues)

Failed Checks (16)

  • Only 1 content sections — segment your content betterdiscoverability
  • No definition lists (<dl>) — great for term/value pairsdiscoverability
  • No question-style headings — try "How to...", "What is..."structure
  • No data tables — tables help AI compare and cite datastructure
  • No concise answer paragraphs detected — add short summaries after headingsstructure
  • Few key-value patterns — use "**Label:** value" format for AIstructure
  • No date information — AI prefers fresh, dated contentcitation
  • No source citations — reference studies and data for authoritycitation
  • No recent year mentioned — AI prefers up-to-date contentcitation
  • Only 0 concise answer paragraph(s) after headings — add 2+ short summaries (40-200 chars) right after H2/H3 tagscitation
  • First paragraph too short for AI snippetsvoice
  • No summary section — add Key Takeaways for AI extractionvoice
  • Few Q&A blocks — add question headings followed by answer paragraphsvoice
  • No Table of Contents — add jump links for AI content navigationstructure
  • No video content — multimedia increases AI engagement and citation ratediscoverability
  • Statistics lack source references — attribute data to boost AI trustcitation

Passed Checks (30)

  • Structured data found — AI can understand your contentdiscoverability
  • 5031 words in HTML — good content for AI parsingdiscoverability
  • Clean URL structurediscoverability
  • 4 semantic HTML5 elements founddiscoverability
  • Description + OG description both present — clear topic signalsdiscoverability
  • 84 named entities found — helps AI understand contextdiscoverability
  • 143 internal links — good topic cluster signaldiscoverability
  • Q&A/FAQ content detected — useful for AI answers (note: Google retired FAQ rich results in May 2026; the schema itself no longer produces SERP features)structure
  • 34 lists found — structured content for AIstructure
  • Step-by-step content detected — AI loves procedural answersstructure
  • 59% short sentences — easy for AI to extractstructure
  • 97% concise paragraphs — scannable for AIstructure
  • Avg 3606 words/section — sufficient depthstructure
  • Author information found — builds E-E-A-Tcitation
  • Statistics and data found in content — highly citablecitation
  • Organization schema found — AI can identify your brandcitation
  • 4/5 E-E-A-T signals presentcitation
  • 8 external links — references authoritative sourcescitation
  • Topic focus: 100% — title keywords found in contentcitation
  • 299 conversational words — good for AI summariesvoice
  • Avg 19 words/sentence — easy reading levelvoice
  • Active voice dominant (10% passive) — AI-friendlyvoice
  • Pronoun density: 3.6% — engaging, user-focusedvoice
  • 55 H2/H3 headings — good content structure for AIvoice
  • No AI-blocking robots directives — AI crawlers can access contentdiscoverability
  • Freshness signal found (Last-Modified header or dateModified)citation
  • AI search crawlers not blocked in robots.txt (8/8 allowed)discoverability
  • Content updated within 90 days — AI engines strongly prefer fresh contentcitation
  • 35 collapsible section(s) (<details>) — interactive AI-friendly contentstructure
  • Brand "Bone Dry Roofing" used consistently (33 mentions)citation
GEO — 69/100 (20 issues)

Failed Checks (20)

  • Few question headings — add Q&A headings for AI Overviewoverview
  • No freshness signals — add dates, update timestampsoverview
  • Title and H1 don't align — confusing for AI topic matchingoverview
  • No author schema — add for AI trust signalsauthority
  • No expert quotes — add professional opinions for credibilityauthority
  • No examples or case studies — add real-world examplesauthority
  • No links to authoritative sources — cite Google, Schema.org, etc.authority
  • No comparison content — add vs. sections for AI recommendationsformat
  • No summary section — add Key Takeaways or TL;DR for AIformat
  • No BreadcrumbList schema — add for better AI contextformat
  • No <time> elements — wrap dates in <time datetime="...">semantic
  • Page size: 631 KB — very large, may slow AI crawlingtechnical
  • 16 image(s) with generic/short ALT text — use descriptive textformat
  • First 200 words lack topic keywords — AI may skip your content for extractionoverview
  • Only 2 data points — adding statistics measurably boosts generative-engine visibility (GEO study, arXiv:2311.09735)authority
  • Author lacks credentials — anonymous content is a GEO penaltyauthority
  • Only 2/6 question types — add What, Why, How headingsoverview
  • No <figure>/<figcaption> — wrap images with descriptive captions for AIformat
  • Only 1 authoritative sameAs link — add Wikipedia, LinkedIn, or Wikidata for entity disambiguationauthority
  • Hidden text detected (~300 words in display:none/visibility:hidden) — AI crawlers read it and may flag cloaking; render it or remove ittrust

Passed Checks (39)

  • Definition-style content found — featured snippet candidateoverview
  • Comprehensive content (5031 words, 8 sections)overview
  • Step-by-step content detected — AI Overview friendlyoverview
  • 3-level heading hierarchy — deep content structureoverview
  • 65% optimal paragraphs (20-80 words) — AI-friendlyoverview
  • Source citations found — increases AI trustauthority
  • 4/5 trust signals foundauthority
  • Brand identity consistent (OG + Schema)authority
  • Original research/data signals foundauthority
  • 5 industry terms used — domain expertise signalauthority
  • 5 unique external domains — diverse sourcesauthority
  • 47 images all with ALT text — AI can understand visualsformat
  • Data visualization elements found (tables/charts)format
  • Both ordered and unordered lists used — content varietyformat
  • 3/6 formatting types used — rich contentformat
  • Multi-perspective content found — balanced analysisformat
  • Actionable advice found — AI prefers practical contentformat
  • Conclusion/recommendation found — helps AI provide answersformat
  • 1 entity types in Schema — AI can classify contentsemantic
  • 6/14 semantic HTML5 elements — deep semantic structuresemantic
  • 100% title keywords in first 200 words — good prominencesemantic
  • 145 contextual links — good cross-referencingsemantic
  • Content categorization found — clear topic classificationsemantic
  • 5 sections have subtopics (H3) — deep coveragesemantic
  • Mobile-friendly (viewport set)technical
  • HTTPS secure — trusted by AI systemstechnical
  • Open Graph fully configured (title, description, image)technical
  • Canonical URL set — prevents AI from citing duplicatestechnical
  • Page allows AI indexing (no noindex/nosnippet)technical
  • 41 Schema types — rich structured datatechnical
  • Language + OG locale set — clear language signaltechnical
  • 3 ARIA landmarks found — good accessibility for AItechnical
  • 5031 words — sufficient depth for AI analysisoverview
  • Definition + list combo — strong featured snippet candidateoverview
  • max-image-preview:large — optimal AI rich result displaytechnical
  • Link anchor texts are descriptive — good AI context signalsemantic
  • No keyword-stuffing detectedauthority
  • Healthy content-to-chrome ratio (~3% boilerplate)overview
  • All tested AI crawlers can access the page (GPTBot, ClaudeBot, PerplexityBot)authority

Fix These Issues Automatically

Using WordPress? Install SEO Autopilot for one-click auto-fixes on 65+ issues — with full undo support.

Get SEO Autopilot Plugin
Scan This Site Again Request Report Removal