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: How to Measure and Prove GEO Results: Day 0 to 90 Proof Cycles.
Layer 1: Technical Foundation — Score: 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://staycitable.com/sitemap-index.xml, but the actual sitemap lives at /sitemap.xml (which points to /sitemap-0.xml). The declared sitemap-index.xml returns a 404. Search engines receiving a dead sitemap pointer delay recrawls. This was confirmed live: curl -sI https://staycitable.com/sitemap-index.xml returns 404, while /sitemap.xml returns a valid sitemap index.
The 404 page is not a custom page. A request to /nonexistent returns a raw Vercel “NOT_FOUND” text response (content-length: 79 bytes of plain text) with a 404 status code. There is no HTML, no navigation, no search suggestion, no CTA. For an agency that advises clients on content architecture, this is a missed conversion opportunity and a crawl budget waste.
Google Fonts loads via an external CSS request to fonts.googleapis.com. The external font request adds a DNS lookup, TLS handshake, and render-blocking CSS download. Self-hosting the two font families (Space Grotesk and Inter) would remove a third-party dependency and eliminate a privacy-related signal that some browsers flag.
No hreflang tags are present. While the site serves an English-speaking global audience, hreflang signals help search engines understand geographic targeting and prevent duplicate content flags if localized versions are added later.
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. Redirect semantics, missing security headers, a broken sitemap reference, the absent custom 404, and external font dependency collectively pull this score to 68.
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 is deep and well-organized. Across 44 posts (confirmed via live sitemap on June 28, 2026), the coverage spans fundamentals (What is GEO, GEO vs SEO), engine-specific guides (ChatGPT, Perplexity, Gemini, Claude), 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 50-100 prompt / 6-engine 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 44 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 issue (noted in Layer 1) also impacts content structure. A visitor who mistypes a URL lands on a blank “NOT_FOUND” page with no path back into the site.
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.
AggregateRating: 4.8/5 from 12 ratings with 3 reviews, with a description that ties the rating to the published Day 0-90 proof cycle methodology.
Three Review nodes: SaaS brand (42% lift), Professional Services firm (51% lift), Aggregate Client Results (35-55%+). Each review includes a reviewBody, author (Organization with name and URL to the case study), and datePublished.
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 four sameAs targets: Twitter (@staycitable), LinkedIn company page, LinkedIn founder profile, and Crunchbase organization. These are consistent across every page. 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-engine citation language is consistent across every page: ChatGPT, Perplexity, Gemini, Claude, Grok, and Copilot 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: 50-100 prompts per audit, 5 business days delivery, Day 0-30-60-90 proof cycle, 35-55% aggregate citation rate improvement.
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. Social proof is strong with three Review nodes in JSON-LD and seven published case studies, but case studies are anonymized (SaaS Brand, Professional Services Firm), which reduces human decision-maker impact compared to named logos.
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, pricing transparency, and structured social proof 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.
Scores by layer:
| Layer | Score | Grade |
|---|---|---|
| 1. Technical Foundation | 68/100 | C+ |
| 2. Content Structure | 83/100 | B |
| 3. Entity Optimization | 86/100 | B+ |
| 4. AI Visibility | 88/100 | B+ |
| 5. Competitive Position | 80/100 | B |
| Overall | 81/100 | B |
Top 5 Critical Fixes
These are the highest-leverage changes, ordered by impact on AI citation likelihood and conversion:
-
Implement a custom 404 page with site navigation and a CTA. Every mistyped URL currently drops visitors into a raw “NOT_FOUND” response. A custom 404 page that includes the main navigation, a search suggestion, links to top blog posts, and a “Get Your Free Citation Audit” CTA would recover lost visitors and signal crawl competence. This requires creating src/pages/404.astro — a structural change needing operator approval.
-
Add security headers. At minimum: Content-Security-Policy with frame-ancestors ‘self’ and form-action ‘self’ https://formspree.io, X-Content-Type-Options: nosniff, X-Frame-Options: SAMEORIGIN, and Referrer-Policy: strict-origin-when-cross-origin. These can be set in vercel.json without touching application code.
-
Fix robots.txt sitemap reference. Change the declared sitemap URL from /sitemap-index.xml (confirmed 404 live) to /sitemap.xml (confirmed live and valid). This is a one-line edit in public/robots.txt.
-
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. These are minimal-effort changes that close the most visible technical gaps.
Week 2-3: Implement the custom 404 page with navigation, search suggestion, blog highlights, and audit CTA. This is the single highest-conversion-recovery fix on the list. Requires operator approval (structural change).
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.
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 zero security headers, 308 redirect, Vercel hosting)
- Sitemap: confirmed 51 URLs across /, /audit, /authors/robert-dyche, /blog (index + 44 posts), /contact, /pricing, /services, /llms.txt, /llms-full.txt
- robots.txt: confirmed broken sitemap-index.xml reference (returns 404 live)
- 404 page: confirmed raw Vercel NOT_FOUND text response with no HTML
- 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 50-100 prompts across 6 engines (ChatGPT, Perplexity, Gemini, Claude, Grok, Copilot) and deliver a prioritized 60-90 day roadmap in 5 business days. No credit card required.