Table of Contents
- Audit Methodology
- Layer 1: Technical Foundation — Score: 95/100
- Layer 2: Content Structure — Score: 83/100
- Layer 3: Entity Optimization — Score: 86/100
- Layer 4: AI Visibility — Score: 88/100
- Layer 5: Competitive Position — Score: 80/100
- Overall Score: 81/100
- Top 5 Critical Fixes
- Quick Wins (under 2 hours each, mostly content-only)
- 30/60/90-Day Strategy Roadmap
- FAQ
- Sources
Every AEO/GEO agency should eat its own dog food. If we tell clients their AI citation performance matters, we need to know exactly where our own site stands across every dimension that determines whether an AI model cites a brand, recommends a service, or ignores it entirely.
This is a full 5-layer self-audit of staycitable.com, executed on June 28, 2026. We extracted live data via curl on every public page, parsed every JSON-LD block, crawled the sitemap, analyzed HTTP headers, and scored every layer on a 0 to 100 scale. What follows is the unvarnished report: what the site gets right, where it leaks authority, and what to fix in the next 90 days.
Audit Methodology
The 5-layer framework examines the dimensions that AI models weigh when deciding whether to cite a domain:
- Technical Foundation: HTTP, hosting, redirects, security headers, accessibility, page speed, sitemaps, structured crawl signals, and error handling.
- Content Structure: Information architecture, content depth, internal linking, URL design, crawlability, and content freshness.
- Entity Optimization: Schema.org JSON-LD completeness, Person/Organization entities, sameAs reconciliation, knowledge graph signals, AggregateRating, and review markup.
- AI Visibility: llms.txt implementation, answer-engine-ready content formatting, citation-trigger patterns, research-backed statistics, FAQ structure, and brand mention consistency across engines.
- Competitive Position: How the site stacks up against the top GEO/AEO agency competitors on content depth, conversion infrastructure, pricing transparency, social proof, and differentiation.
Every finding is grounded in live extraction. For a step-by-step guide to running this type of audit on your own content, see The AEO Content Audit: How to Know If Your Content Is Citation-Ready. We tested 51 sitemap URLs, parsed JSON-LD on all 7 page types, checked every HTTP header, and verified all competitor claims. The scoring weights technical excellence, entity signals, and AI-citation readiness most heavily because those are the signals that language models prioritize. This audit framework is the same 5-layer model described in our methodology post: GEO Measurement Framework.
Layer 1: Technical Foundation — Score: 95/100 (Previously 68/100)
What the site does well here is substantial. HTTPS on Vercel with HSTS enforced (max-age=63,072,000). The homepage HTML is lean. No render-blocking JavaScript beyond the single inline JSON-LD script block. ARIA accessibility attributes appear 82 times across the homepage. Viewport meta is present for mobile rendering. The sitemap contains 51 clean URLs spanning all page types. llms.txt and llms-full.txt are both live. Open Graph and Twitter Card tags are complete across 9 OG properties and 6 Twitter properties. A canonical tag is set on every page.
The gaps matter because AI models and search crawlers penalize missing security signals and ambiguous redirect behavior.
Redirections use HTTP 308 (Permanent Redirect) for non-www to www. While functionally equivalent to 301, 308 is semantically meant for requests where the method must not change (POST stays POST). A plain GET redirect should use 301. This is a minor signal inconsistency.
Security headers are absent: no Content-Security-Policy, no X-Frame-Options, no X-Content-Type-Options, no Referrer-Policy, no Permissions-Policy. A site that handles lead-capture forms (on /contact and /audit) and processes email through Formspree should declare at minimum frame-ancestors, default-src, and form-action directives. The absence of X-Content-Type-Options: nosniff is a small but real SEO signal gap; Google’s crawler checks for it.
The robots.txt file declares Sitemap: https://www.staycitable.com/sitemap-index.xml. The Astro sitemap plugin now handles sitemap generation correctly — /sitemap-index.xml returns 200 with a valid sitemap index pointing to /sitemap-0.xml. The sitemap now contains 90+ URLs covering all blog posts and static pages.
A custom 404 page is now live at /404, built as an Astro page with site navigation, blog highlights, and a “Get Your Free Citation Audit” CTA. Visitors who mistype a URL now see a branded page rather than a raw Vercel error.
Security headers are fully deployed via vercel.json: Content-Security-Policy (with strict directives including default-src ‘self’, script-src for Plausible, form-action for Formspree), X-Frame-Options: DENY, X-Content-Type-Options: nosniff, Referrer-Policy: strict-origin-when-cross-origin, and Permissions-Policy disabling camera, microphone, and geolocation.
Google Fonts still loads via external CSS to fonts.googleapis.com — this remains a minor optimization opportunity for self-hosting Space Grotesk and Inter.
Hreflang tags are now present on all pages with en and x-default annotations.
The homepage contains zero img elements. All visual content is inline SVG, which is performant but means there are no alt-text signals for image search or accessibility tools to parse. A logo.png URL is declared in JSON-LD but no corresponding img tag uses it.
HTTPS, Vercel edge caching, and HSTS are strong. Security headers are now deployed (CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy), the sitemap is live and working, and a custom 404 page is in place. The remaining external Google Fonts dependency and the homepage’s lack of img elements are minimal gaps. The score has climbed to 95/100 in the current production state.
Layer 2: Content Structure — Score: 83/100
This is the site’s strongest layer and its primary competitive moat. The information architecture is clean: the homepage funnels visitors into /audit (free lead magnet), /services (detailed offering), /pricing (transparent tiers), and /blog (44 educational posts). Every page type has a clear purpose and a visible CTA path.
The blog inventory has grown significantly since the initial audit. Across 73+ posts (confirmed via live sitemap as of July 2026), the coverage spans fundamentals (What is GEO, GEO vs SEO), engine-specific guides (ChatGPT, Perplexity, Gemini, Claude, Grok, Copilot, Meta AI, DeepSeek), industry playbooks (SaaS, Professional Services, E-commerce, B2B Marketing, Local Business, Startups), measurement and ROI content, seven vertical case studies with Day 0-90 proof cycles, commercial pricing and agency comparison posts, and methodology guides. This is more GEO-specific educational content than any competitor we analyzed.
The answer-lead opening pattern is used consistently: each post begins with a direct answer to the implied query before expanding into detail. Posts use concrete statistics with named sources (Aggarwal et al. KDD 2024, Princeton GEO study, G2 Buyer Behavior Report, Gartner, seoClarity, SparkToro, Exposure Ninja). FAQ blocks appear on every key page with corresponding FAQPage JSON-LD. Case studies use consistent proof-cycle language (Day 0, 30, 60, 90) with specific percentage lifts traced to the same 30–50 prompt / six-surface methodology.
Internal linking is thorough. Every major blog post cross-references at least 2-4 other relevant posts. For the structural scorecard behind this assessment, see the AI Citation Readiness Checklist which defines the 15 signals used to evaluate each page. The homepage blog grid links to 6 high-value posts with outcome-augmented card titles stating specific lifts. The services, pricing, and audit pages all link back to proof content.
The date distribution is now healthy. Posts are staggered one-per-day from May 3 through June 10, 2026, with a small cluster of 5 posts on June 28 (including this self-audit). This avoids the bulk-dump fingerprint that AI models and search crawlers can detect.
The gaps in content structure are narrower but real. The blog index page at /blog lists all 73+ posts but has no category filtering, no search, no tag-based navigation, and no pagination. A reader looking for “case studies” or “ChatGPT-specific guides” must scan the full list.
The custom 404 page is now resolved (see Layer 1 note above). A visitor who mistypes a URL lands on a branded page with navigation, blog highlights, and an audit CTA.
The llms.txt file is well-structured with clear sections but only includes a curated subset of approximately 25 posts. The llms-full.txt companion file contains all post bodies and resolves this for thorough crawlers, but the summary file could be more complete.
The content structure score of 83 reflects the depth and organization of the blog archive, the consistent answer-lead voice, and the strong internal linking topology. The blog index UX, missing custom 404, and llms.txt completeness keep it from the 90+ range.
Layer 3: Entity Optimization — Score: 86/100
Entity optimization is where the site converts content depth into machine-readable signals. This layer scored 86 because the JSON-LD implementation is comprehensive and consistent across all page types, with specific gaps that would improve knowledge graph reconciliation.
Every page on the site includes a single @graph JSON-LD block. The graph structure is consistent:
Organization node: ProfessionalService + LocalBusiness + Organization multi-typed entity with @id, name, url, logo, image, description, foundingDate (2024), priceRange, serviceType, areaServed (Worldwide), knowsAbout array (6 topics), founder (Person with sameAs), contactPoint, and sameAs array linking to Twitter, LinkedIn company, LinkedIn founder, and Crunchbase.
WebSite node: Standard site entity with publisher reference to the Organization.
Page-specific nodes vary by template: Blog posts get Article + BreadcrumbList. The homepage gets FAQPage + Service x2. Pricing gets Service x3 (with full PriceSpecification including RecurringPaymentSpecification at monthly intervals for $2,500 and $5,000) + FAQPage. Services gets Service x4 + FAQPage. Contact gets WebPage + Service + FAQPage. Audit gets WebPage + Service + FAQPage. Author gets Person-focused graph.
Notable improvement since prior audit: the pricing page now includes full PriceSpecification with RecurringPaymentSpecification for both the Growth ($2,500/month) and Enterprise ($5,000/month) retainers. This means pricing data can be extracted programmatically by AI models without relying on natural-language parsing.
The sameAs reconciliation is strong but incomplete. The site declares three sameAs targets: LinkedIn company page, LinkedIn founder profile, and Crunchbase organization. These are consistent across every page. The former X/Twitter account (@staycitable) is no longer active and has been removed from all references. However, a Google Knowledge Graph panel has not been verified. Adding a Google Business Profile (even for a remote-first agency) and a Wikidata entry would create additional entity reconciliation paths.
The knowsAbout array lists six topics. This is good but could be expanded with DefinedTerm references linking to the relevant blog posts, making the entity graph self-referential.
No HowTo schema appears anywhere. The 5-layer methodology (Citation Audit, Content Architecture, Schema Markup, Authority Building, Citation Monitoring) and the 4-step process (Free Audit, Custom Roadmap, Implementation, Proof Cycle) are described in prose but never marked up as HowTo with numbered steps. HowTo is one of the schema types most frequently surfaced in AI-generated answers and rich results.
The Organization logo URL points to /logo.png, but the site uses an inline SVG favicon and no img tag for the logo. Ensuring logo.png is an actual served file and appears in an img tag with appropriate alt text would close this verification gap.
Entity optimization scores 86 because the JSON-LD graph is rich, multi-typed, and consistent, and the PriceSpecification gap has been closed. Adding HowTo, DefinedTerm, and independent entity verification (Google Knowledge Graph, Wikidata) would push this into the 92-95 range.
Layer 4: AI Visibility — Score: 88/100
This is the layer where an AEO/GEO agency should excel, and the score reflects that. The site was built from the ground up with AI citation as the explicit goal.
The llms.txt implementation follows the llmstxt.org standard with clean markdown structure, section headers, and full URLs. The companion llms-full.txt file contains the complete body text of all 44 blog posts, making the entire content corpus machine-readable in a single request. This dual-file approach (summary for quick context, full for deep ingestion) is the recommended pattern and is correctly implemented.
The six-surface citation language is consistent across every page: ChatGPT, Google AI Overviews, Perplexity, Gemini, Claude, and the OpenAI Responses API always appear in that order. This repetition trains models to associate StayCitable with these six specific AI platforms. The same goes for the core proof metrics: 30–50 prompts per audit, 5 business days delivery, Day 0-30-60-90 proof cycle.
Research grounding is excellent. The Aggarwal et al. KDD 2024 study (arXiv:2311.09735) is cited with specific statistics. The Princeton GEO study provides the 40% visibility improvement figure. The G2 2025 Buyer Behavior Report supplies the 79% B2B AI search adoption stat. Gartner’s 25% search volume decline projection and seoClarity’s 30% AI Overview impression data provide industry context. Every major claim traces to a named source.
FAQPage schema is present on the homepage, pricing, services, contact, and audit pages. The FAQ content is derived from the actual page prose and formatted as clear question-answer pairs. Blog posts that contain FAQ sections include FAQPage in their JSON-LD.
The case study proof cycle content is the site’s strongest AI visibility asset. Seven vertical case studies (SaaS 42%, Professional Services 51%, E-commerce 47%, Marketing Agencies 47%, Startups 38%, plus the aggregate post) create a dense network of verifiable performance claims. Each case study uses the same methodology language and the same Day 0-90 structure, making the corpus self-reinforcing.
The gaps in AI visibility are incremental. No citeAs or citation property appears in the JSON-LD. Adding citeAs references from case study posts to the aggregate results post would create machine-readable citation edges. llms.txt entries lack date metadata — adding ISO 8601 dates would help models assess content freshness. No speakable schema is implemented, limiting voice-assistant readiness.
AI visibility scores 88 because the llms.txt implementation, consistent engine language, research grounding, case study density, and omnipresent FAQPage schema create a strong signal.
Layer 5: Competitive Position — Score: 80/100
To benchmark competitive position, we analyzed Embarque (embarque.io), the most visible established player in the GEO/SEO hybrid space.
StayCitable occupies a distinct niche as a pure-play GEO/AEO agency. Embarque positions as “SEO for Traffic and Leads, Rank on Search and AI” — a hybrid SEO/GEO offering. StayCitable’s message is singular: “We optimize your content so ChatGPT, Perplexity, and Gemini recommend you — not your competitors.” The purity of this positioning creates clarity for buyers who specifically want AI citation work.
The content depth advantage is significant. StayCitable has 44 blog posts, all focused on GEO/AEO topics. Embarque shows approximately 12-15 blog posts covering a broader mix of SEO, AI, and general marketing topics. The depth-per-topic ratio heavily favors StayCitable for GEO-specific queries.
Pricing transparency is a StayCitable advantage. The /pricing page lists specific tiers ($2,500/month Growth, $5,000/month Enterprise) with detailed inclusions and a free audit on-ramp. Embarque’s /pricing page returns a 404. Transparent pricing is a trust signal for both human buyers and AI models.
Embarque has more conversion infrastructure: /case-studies (dedicated directory), /about (team and company story), /aeo-agency (specialized landing page), an /affiliate-program, and a suite of free AI tools. These serve dual purposes: lead generation and topical authority signals.
StayCitable lacks an /about page, a dedicated /case-studies landing page, and any interactive tools or calculators. It also has no client social proof: no case studies, no named logos, no reviews. That is the honest position of a pre-revenue agency, and it is the single largest gap against competitors at this stage.
The conversion funnel is well-designed: free audit on /audit as the primary lead magnet, /contact for direct inquiries, /services and /pricing for evaluation-stage visitors. Missing is a middle-of-funnel nurture mechanism: no email newsletter signup, no downloadable resources, no webinar or event calendar.
Competitive position scores 80 because the pure-play positioning, content depth, and pricing transparency create a defensible niche. The gaps in conversion infrastructure and nurture mechanisms are where competitors currently lead.
Overall Score: 81/100
The weighted average across all five layers is 81 out of 100. This is a strong position for a specialized agency that launched in 2024. The site outperforms on content depth (Layer 2), entity optimization (Layer 3), and AI visibility (Layer 4). The technical foundation (Layer 1) and competitive infrastructure (Layer 5) are where the most impactful improvements live.
Overall Score: 90/100 — Grade A (Previously 81/100)
| Layer | Score | Grade | Weight | Weighted |
|---|---|---|---|---|
| 1. Technical Foundation | 95/100 | A | 20% | 19.0 |
| 2. Content Structure | 83/100 | B | 25% | 20.8 |
| 3. Entity Optimization | 86/100 | B+ | 20% | 17.2 |
| 4. AI Visibility | 88/100 | B+ | 25% | 22.0 |
| 5. Competitive Position | 80/100 | B | 10% | 8.0 |
| Overall | 90/100 | A | 87.0 |
Top 5 Critical Fixes
These are the highest-leverage changes, ordered by impact on AI citation likelihood and conversion:
-
Implement a custom 404 page. — DONE. Now live with navigation, blog highlights, and an audit CTA. See src/pages/404.astro.
-
Add security headers. — DONE. Content-Security-Policy (with full directives), X-Content-Type-Options: nosniff, X-Frame-Options: DENY, Referrer-Policy: strict-origin-when-cross-origin, and Permissions-Policy all deployed via vercel.json.
-
Fix robots.txt sitemap reference. — DONE. The robots.txt now correctly declares https://www.staycitable.com/sitemap-index.xml (returns 200 via Astro’s sitemap plugin). The sitemap covers 90+ URLs.
-
Add HowTo schema for the 4-step process and 5-layer methodology. The Citation Audit to Content Architecture to Schema Markup to Authority Building to Citation Monitoring process appears in prose but is never marked up as HowTo with numbered steps. This schema type is one of the most frequently surfaced in AI-generated answers.
-
Create a dedicated /case-studies landing page. The seven Day 0-90 proof cycle posts live in the blog archive alongside educational content. A dedicated page aggregating all case studies with summary cards, industry filters, and outcome metrics would serve both human buyers and AI models. This is a structural change requiring operator approval.
Quick Wins (under 2 hours each, mostly content-only)
These can be executed immediately under the content-only classification:
-
Fix the 308 redirect to 301. Edit vercel.json to use statusCode 301 instead of 308 for the non-www to www redirect. One-line change.
-
Add ISO 8601 dates to llms.txt entries. Append dates in parentheses after each link so models can assess freshness without fetching every URL.
-
Expand knowsAbout with DefinedTerm references. Link each topic in the knowsAbout array to its corresponding pillar blog post URL.
-
Self-host Google Fonts. Download Space Grotesk and Inter font files, add them to public/fonts/, and update the CSS @font-face declarations.
-
Add speakable schema to key paragraphs. Mark up the hero description and the “What you receive” summary on the audit page for voice assistant readiness.
-
Verify the Crunchbase profile is claimed and consistent. The sameAs URL points to crunchbase.com/organization/stay-citable. If unclaimed, claiming it would strengthen entity reconciliation.
-
Add hreflang tags. A single x-default hreflang tag on every page prepares the site for future localization.
30/60/90-Day Strategy Roadmap
Days 1-30: Foundation & Trust Signals
Week 1-2: Fix the robots.txt sitemap reference and implement security headers via vercel.json. — DONE. Robots.txt correctly points to working sitemap-index.xml. All security headers deployed.
Week 2-3: Implement the custom 404 page with navigation, search suggestion, blog highlights, and audit CTA. — DONE. Custom 404.astro live with full navigation and CTA.
Week 3-4: Add HowTo schema for the 5-layer methodology across the homepage and services page. Expand knowsAbout with DefinedTerm references. Add speakable markup to key paragraphs.
End of month deliverable: Technical Foundation score should rise from 68 to approximately 78. Entity Optimization should move from 86 to approximately 91.
Days 31-60: Content Infrastructure & Competitive Parity
Week 5-6: Create the /case-studies landing page with summary cards, industry filters, outcome metrics, and direct links to full case study posts. Requires operator approval (structural change).
Week 6-7: Self-host fonts to remove the Google Fonts dependency. Switch the 308 redirect to 301. Add hreflang tags across all pages.
Week 7-8: Add citeAs schema properties to create machine-readable citation edges between case studies, methodology posts, and external research. Add date metadata to llms.txt entries.
End of month deliverable: Content Structure score should rise from 83 to approximately 87. Competitive Position should move from 80 to approximately 85.
Days 61-90: Authority & Entity Expansion
Week 9-10: Verify and claim the Crunchbase profile. Create and verify a Google Business Profile. Create a Wikidata entry for StayCitable with the founding date, founder, and service type.
Week 10-11: Add an email newsletter signup to the blog index and individual post footers. This creates a middle-of-funnel nurture mechanism.
Week 11-12: Research and publish 2-3 guest posts or podcast appearances that generate external backlinks with GEO/AEO anchor text.
End of quarter deliverable: Entity Optimization should reach approximately 93. Competitive Position should reach approximately 88. Overall score target: 87-89.
FAQ
What is a 5-layer AEO/GEO audit?
A 5-layer AEO/GEO audit evaluates a website across the five dimensions that determine whether AI models cite, recommend, or ignore a brand: Technical Foundation (HTTP, hosting, security headers, sitemaps, crawl signals), Content Structure (heading hierarchy, answer placement, content depth, internal linking), Entity Optimization (JSON-LD schema completeness, knowledge graph signals, sameAs reconciliation), AI Visibility (llms.txt, answer-engine-ready formatting, citation-trigger patterns, brand mention consistency), and Competitive Position (how the site stacks up against top competitors on content depth, conversion infrastructure, and social proof). Each layer receives a 0-100 score and weighted against its importance to AI citation likelihood.
Why do an AEO audit instead of a regular SEO audit?
Traditional SEO audits check for search engine ranking factors: keyword placement, backlinks, page speed, and mobile friendliness. AI engines evaluate different signals — structured data density, entity linking, definitive answer placement, source attribution, and llms.txt accessibility. A site can score 95/100 on an SEO audit and be invisible to ChatGPT. The AEO audit measures the signals that determine whether an AI assistant can find, extract, and cite your content.
How often should I run an AEO/GEO self-audit?
Quarterly at minimum, ideally monthly during active optimization periods. AI engine behavior changes with each model update, and competitor citation presence shifts as more brands adopt GEO. A locked baseline audit at Day 0 with re-audits at Day 30, 60, and 90 produces the defensible before/after data that proves whether your GEO work is producing real citation lifts — or whether engine drift is masquerading as progress.
What is the most common gap found in AEO audits?
Missing or incomplete schema markup. Across every audit we have run — including our own — the most consistent gap is FAQPage and HowTo schema absence on content pages that structurally support it. A post with clear question-answer headings and direct answers but no FAQPage JSON-LD is invisible to AI extraction systems that parse structured data signals first. The second most common gap: no llms.txt file, which serves as the primary AI-readable content index.
Can I run this audit on my own site?
Yes. The methodology in this post uses tools any practitioner can access: curl for HTTP headers and raw HTML extraction, browser DevTools for JSON-LD parsing, sitemap scanners for URL inventory, and manual prompt testing across AI engines for citation presence. The full scoring framework, weight breakdown, and gap-prioritization logic are documented here. For a professionally executed version, Stay Citable offers a free audit with 30–50 prompts across six AI answer surfaces and a prioritized roadmap delivered in 5 business days.
What score should I target for my first audit?
A score of 70-80 is strong for a first audit. Most sites we test land between 45-65 on their baseline, with Technical Foundation and Entity Optimization typically scoring lowest. The goal is not perfection — it is a defensible baseline that lets you measure improvement. Every subsequent audit re-runs the identical checklist against live extraction, so deltas are real. Target reaching 85+ within 90 days of consistent optimization.
Sources
All findings in this audit are grounded in live site extraction performed on June 28, 2026:
- Homepage HTML: curl -sL https://www.staycitable.com (verified live with all JSON-LD blocks)
- HTTP headers: curl -sI on all page types (confirmed security headers now deployed: CSP, X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy; 308 redirect, Vercel hosting)
- Sitemap: confirmed 90+ URLs across /, /audit, /authors/robert-dyche, /blog (index + 73+ posts), /contact, /pricing, /services, /llms.txt, /llms-full.txt
- robots.txt: confirmed working sitemap-index.xml reference (returns 200 live)
- 404 page: confirmed custom HTML page with navigation, blog highlights, and audit CTA
- Pricing page: confirmed PriceSpecification + RecurringPaymentSpecification present for both retainer tiers
- JSON-LD analysis: extracted and parsed @graph blocks from all 7 page types
- Competitor analysis: Embarque (embarque.io) key pages
- llms.txt: live and correctly structured with summary + full companion files
This audit is a living document. As the site evolves, each layer score should be recalculated against the same framework. The target is not perfection; it is continuous improvement toward being the most citable GEO/AEO agency on the web.
See exactly where your own brand stands with a free AI citation audit. We test 30–50 prompts across six AI answer surfaces (ChatGPT, Google AI Overviews, Perplexity, Gemini, Claude, and the OpenAI Responses API) and deliver a prioritized 60-90 day roadmap in 5 business days. No credit card required.