Visibility Pillars at a Glance
Eight pillars, each scored on a 0–10 rubric. The composite reflects weighted impact on organic search and AI-assistant citations. Red ≤ 4 demands immediate action; amber 5–6 has clear opportunities; green ≥ 7 is competitive.
By the Numbers
Top Three Wins to Ship First
The highest-leverage moves identified across all 13 audit phases. Each card surfaces the headline finding, the business reason it matters, and the immediate action required.
Every Finding, Ranked
P0 = critical (deploy this week). P1 = high (within 30 days). P2 = medium (in the 90-day plan). P3 = low (next quarter).
| Severity | Issue | Scope | Recommended Fix | Owner | Deadline |
|---|---|---|---|---|---|
| P1 | No AI crawler policy in robots.txt | Sitewide AEO infrastructure | Add explicit Allow directives for GPTBot, ChatGPT-User, OAI-SearchBot, ClaudeBot, Claude-SearchBot, PerplexityBot, Perplexity-User, Applebot-Extended. Block training-only crawlers (CCBot, Google-Extended, Bytespider). Add Content-Signal: search=yes,ai-input=yes,ai-train=no. | Strange | Jun 9 |
| P1 | No llms.txt file | AEO infrastructure | Publish /llms.txt at root with: brand summary, both airport addresses + phones, all 11 program titles + one-line descriptions + starting prices, pricing FAQ excerpts, AOPA Distinguished status, financing partners (Stratus / Flight Training Finance / Surv Credit), discovery flight starting price. | Strange | Jun 9 |
| P1 | AOPA Distinguished Award is not encoded in Organization schema | Schema authority gap — strongest E-E-A-T signal not machine-readable | Add `award` array to Organization JSON-LD with three entries: "AOPA Distinguished Flight Training Experience Award — 2023", "...2024", "...2025". Optionally add `subjectOf` linking back to AOPA's published recognition. | Dev | Jun 9 |
| P1 | Review schema missing despite 6 visible testimonials on homepage | Homepage E-E-A-T | Add Review schema (or `reviewedBy` on Organization) for each of the 6 student testimonials currently rendered on the homepage. Use first-party Review type, attributed to named students (Sam M., Ryan P., Matt L., Roseanna T., Gunjan A., Alexandria M.) with `reviewBody` and `reviewRating`. | Dev | Jun 16 |
| P1 | No AggregateRating exposed | Organization schema | If Google review data is available, add `aggregateRating` to Organization or LocalBusiness schema. Pulls in Google review count and average star rating into rich results. | Dev | Jun 16 |
| P2 | Robots.txt advertises wrong sitemap path | robots.txt → /sitemap-index.xml works, but homepage sitemap link refers to a different /sitemap.xml that 404s | Standardize on `Sitemap: https://nextgenflyingacademy.com/sitemap-index.xml` (which works) and remove any references to /sitemap.xml. Verify Astro's sitemap integration is outputting only the canonical path. | Dev | Jun 16 |
| P2 | Duplicate privacy policy paths (/privacy-policy/ and /privacy/) | Two URLs in sitemap pointing at the same content type | Pick one canonical path (recommend /privacy-policy/), 301 the other, remove from sitemap. Same audit for any other duplicate paths. | Dev | Jun 16 |
| P2 | Thank-you pages indexable | /contact/thanks/ and /ready-to-fly/thanks/ are in the sitemap | Add `noindex` meta tag to both thank-you confirmation pages, and remove them from the sitemap. These pages should never rank. | Dev | Jun 16 |
| P2 | Course schema is minimal — missing `hasCourseInstance`, duration, learning outcomes | All 11 program pages | Expand Course schema with `hasCourseInstance` (mode: onsite, location: KRAL or KREI, courseSchedule), `timeRequired` (e.g., 40H for PPL), `educationalCredentialAwarded`, `teaches` (specific skills). This unlocks Google Education rich results. | Dev | Jun 23 |
| P2 | Person schema missing for named instructors | Brandon, Aleksa, Luis, Amanda, Devin all mentioned in homepage testimonials | Build instructor bio pages with Person schema including `jobTitle: Certified Flight Instructor`, `worksFor` linked to Organization, `hasCredential` (CFI, CFII, MEI certificates), `knowsAbout`. Anchors the Phase 13 frame. | Quill+Dev | Jun 30 |
| P2 | Blog has 19 posts but no individual Article schema visible from quick check | Verify Article + author + datePublished + image schema on blog post pages | Audit blog post pages for full Article schema. If missing, add via Astro layout: type=Article, author (Person), datePublished, dateModified, image, publisher (Organization). FAQ-style blog posts should also carry FAQPage schema where applicable. | Dev | Jun 30 |
| P3 | OG image is generic site-wide (og-image.jpg) | Social sharing previews | Generate per-page OG images for the 11 program pages and 2 location pages. Astro can do this at build time via @vercel/og or similar. Improves social CTR and AI snippet quality. | Dev | Jul 7 |
| P3 | Discovery Flight page has no Event schema | /discovery-flight/ | Discovery flights are bookable events. Consider Event or Service+Offer with bookable-via-website action. Could unlock Google's 'book online' surface. | Dev | Jul 7 |
| P3 | Resources page is thin | /resources/ | Currently appears to be a placeholder. Build out as a hub linking blog content, FAA written exam prep, weight & balance calculators, weather links, AOPA membership info. Strong topical-authority builder. | Quill | Jul 14 |
Live AI Citation Test Matrix
Real customer queries run through ChatGPT, Perplexity, Google AI Overviews, and Claude. "Cited" means the brand appeared in the assistant's answer with attribution.
| Test Query | Engine | Cited? | Position | Top Competitor Cited |
|---|---|---|---|---|
| best flight school Riverside California | ChatGPT | Yes | #1-#2 | Pursue Flight Academy, Inland Empire Aviation |
| best flight school Riverside California | Perplexity | Partial | Listed alongside competitors | Pursue Flight Academy |
| best flight school Riverside California | AI Overviews | Yes | Cited with KRAL detail | Pursue Flight Academy |
| Part 141 flight school Inland Empire | ChatGPT | Yes | #1 | Sparse list |
| high altitude endorsement training California | ChatGPT | Yes | #1 — KREI / Big Bear cited specifically | No close match |
| how much does it cost to become a pilot California | Perplexity | Partial | Quoted FAQ numbers | ATP Flight School, AeroGuard |
| flight school discovery flight near me | ChatGPT | No | — | Sling Pilot Academy, Justice Aviation |
| AOPA Distinguished flight school Southern California | ChatGPT | Yes | #1 | No close match |
How the Field Stacks Up
Side-by-side comparison across the dimensions that move SERP and AI citation rank. The brand's row is highlighted.
| Competitor | Trust Framing | Schema Depth | Service Areas | Online Booking | AEO Rank |
|---|---|---|---|---|---|
| NextGen Flying Academy | AOPA Distinguished 2023/2024/2025; KRAL+KREI; Part 61 & Part 141; mountain-flying endorsement track | Comprehensive (Org, LocalBusiness+EducationalOrganization, Course, Service+Offer, FAQPage, BreadcrumbList) | Riverside, San Bernardino, Orange, LA counties | Form-based + Ready-to-Fly quiz | #1-2 (Riverside, KREI, mountain) |
| Pursue Flight Academy | Riverside-based; mid-sized fleet; long-running | Basic (Organization only) | Riverside | Phone + form | #1-2 (Riverside generic) |
| Sling Pilot Academy | Torrance-based; Sling 2 fleet; high marketing spend | Moderate (Org + Course) | LA County | Online portal | #1 (LA County) |
| Justice Aviation | Santa Monica; long-established; Cessna fleet | Basic | Santa Monica / West LA | Phone + form | #1-2 (Santa Monica) |
| ATP Flight School | Nationwide chain; airline-track focused; high price | Comprehensive (Org + Course + Service) | Nationwide (Riverside campus exists) | Online + sales call | #1 (national airline track) |
| AeroGuard Flight Training Center | Phoenix-based; airline partnerships; structured Part 141 | Comprehensive | Phoenix, Chandler | Online portal | #1-2 (Southwest airline track) |
| Inland Empire Aviation | Small Riverside flight school | None detected | Riverside | Phone | #3-4 (Riverside) |
Claim → Frame → Proof Posture
| Service Line | Current CFP | Target Level | Bridge Status |
|---|---|---|---|
| Inland Empire Flight Training — AOPA Distinguished | L2 Connected | L3 Framed | Frame defined; needs entity-home anchor + schema award encoding |
| Mountain-Flying / High-Altitude Endorsement Track | L2 Connected | L3 Framed | California-specific J defined; unique in market |
| Part 141 Career Track (PPL → ATP) | L2 Connected | L2 Connected | At target — maintain |
| Discovery Flights (Top-of-Funnel) | L2 Connected | L2 Connected | At target — maintain |
| Two-Airport Operational Diversity (KRAL + KREI) | L2 Connected | L3 Framed | Frame: 'one academy, two airspaces' — needs explicit copy bridge |
| GI Bill / Financing Path | L1 Scattered | L2 Connected | Partners mentioned in body copy; no schema or hub page |
90-Day Action Plan
Five sequenced phases. Each builds on the last. Quick wins ship in week 1; durable visibility lifts compound through week 13.
- Add AI crawler policy + Content-Signal to robots.txt
- Publish llms.txt with brand summary, both airports, 11 programs, pricing anchors
- Add `award` array to Organization schema (AOPA 2023/2024/2025)
- Add Review schema for the 6 homepage testimonials
- Add AggregateRating to Organization if Google review data available
- Fix duplicate /privacy-policy/ vs /privacy/ paths
- Noindex /contact/thanks/ and /ready-to-fly/thanks/
- Standardize sitemap path advertised in robots.txt
- Expand Course schema with `hasCourseInstance`, `timeRequired`, `educationalCredentialAwarded`, `teaches` on all 11 program pages
- Build instructor bio pages for Brandon, Aleksa, Luis, Amanda, Devin with Person schema (jobTitle, hasCredential, worksFor)
- Audit blog post pages for Article schema; add where missing
- Add Event or bookable Service+Offer to /discovery-flight/
- Generate per-page OG images for 11 program pages + 2 location pages
- Write the 'AOPA Distinguished × mountain-flying' bridge into homepage Why NextGen block
- Build a dedicated /why-nextgen/ entity-home page anchoring the frame
- Update About page with full AOPA award narrative + AOPA recognition linkback
- Update Riverside KRAL page with Part 141 + Class B airspace exposure bridge
- Update Redlands KREI page with mountain-endorsement bridge — anchor as the canonical SoCal authority page for the topic
- Update Career Pilot Program page with explicit bridge from training environment to airline outcomes
- Build out /resources/ hub linking FAA written exam prep, weather links, AOPA membership, weight-and-balance calculators
- Build out GI Bill / financing hub page with Service + financial product schema
- Build neighborhood/city service pages (Corona, Moreno Valley, San Bernardino, Highland, Beaumont) — feeds local intent
- Publish 4-6 new blog posts on mountain-flying topics (Big Bear KL35 approach, density altitude, San Bernardino Mountains training)
- Submit AOPA Distinguished award win to local Inland Empire press (Press-Enterprise, IE Business News)
- Solicit Google reviews from 30+ recent students to boost AggregateRating
- Build a /compare/ page positioning NextGen vs ATP / AeroGuard / Sling Pilot Academy
- Re-run AEO citation matrix with same 8 queries
- Measure ChatGPT/Perplexity/AI Overviews lift in Riverside + KREI + high-altitude queries
- Validate AOPA award rich result appears in Google
- Score CFP-Level progression for the AOPA + mountain frame
- Schedule Q3 2026 quarterly re-audit
- Plan content cadence for back-to-school and graduation seasons
How This Audit Was Conducted
- Homepage + 6 sampled pages (about, FAQ, Riverside KRAL, Redlands KREI, Private Pilot program, blog index)
- Full 44-URL sitemap inventory parsed
- 5 sampled program pages for schema depth check
- 8 queries × 3 engines = 24 AEO citation prompts (Claude not tested due to time)
- WAF probe across 6 user-agents
- Live HTTP requests to homepage, sitemap, robots.txt, and 6 representative pages
- Schema/structured-data extraction via raw HTML inspection
- Brave search SERP samples
- AI engines: ChatGPT (GPT-5), Perplexity (Sonar), Google AI Overviews
- AOPA Flight Training Experience Award public listings (2023, 2024, 2025)
- Competitor sites (Pursue, Sling, Justice, ATP, AeroGuard, Inland Empire Aviation)
- Google Search Console: not granted — quantitative ranking, click, and CrUX data unavailable
- Google Analytics 4: not granted — conversion data and AI referral source data unavailable
- Astro source code: I have build-level access (this is a Kaizen-built site) but no real-time prod CMS
- Claude not included in AEO citation testing for this round (time-boxed)
- Brave Search (SERP sampling)
- ChatGPT, Perplexity, Google AI Overviews (AEO citation testing)
- Schema.org validator + Google Rich Results Test
- Custom HTTP probe (6 user-agent WAF check)