DEV Community

Joseph Anady
Joseph Anady

Posted on • Edited on • Originally published at thatdevpro.com

SERP Optimization

Framework: SERP Optimization

Comprehensive playbook for winning every Search Engine Results Page (SERP) feature in 2026. Covers all 30 SERP elements with what they are, where they appear, who they are best for, how to install them, and how to audit them. Single file, standalone, agent executable, dual purpose for human practitioners and AI agents.

Document version: 1.0
Last updated: 2026-05-04
Maintained by: ThatDeveloperGuy
Authoring authority: Joseph Anady, SDVOSB, BA Computer Engineering CSU, MA Cybersecurity
File ID: framework-serp-optimization-v1
Companion file: SEO-Search-Appearance.md v2.0


0. Agent Operating Instructions

This file is designed to be read and executed by an AI agent (Claude Code, MEGAMIND, or any LLM with file system and shell access) AND read as reference by a human practitioner. Both audiences are first class.

0.1 How an Agent Reads This File

When an agent is handed this file with a build or audit instruction, it walks the file in this order, never skipping ahead:

  1. Read sections 0 through 3 fully (operating instructions, purpose, intake, theory).
  2. Complete the intake in section 2 by gathering answers from the human operator or from prior context.
  3. Run the SERP feature decision tree in section 4 and record the priority assignment for each of the 30 features.
  4. Walk sections 5 through 8 (Phase 1 SERP Audit, Phase 2 Targeting Plan, Phase 3 Implementation, Phase 4 Validation) in order. Do not advance until the completion gate at the end of each phase passes.
  5. Reference section 9 (Per Feature Deep Dives) as the implementation manual for each prioritized feature.
  6. Apply section 10 (vertical matrix) to confirm feature fit for the client's industry.
  7. Run the audit in section 11. Output both markdown and JSON reports.
  8. Schedule maintenance per section 12.
  9. Reference appendices A through D as needed.

0.2 Mode Declaration

This file supports two modes of operation:

  • Build mode: agent is implementing SERP feature optimization on a site. Walk sections 0 through 12 in order.
  • Audit mode: agent is evaluating an existing site's current SERP feature presence. Walk sections 0 through 4 to gather context, then jump to section 11 (Audit) and run the full or partial audit. Remediation steps point back to the relevant feature deep dive in section 9.

The operator declares the mode at the start of the engagement. If the mode is unclear, the agent asks.

0.3 Phase Gates

Each phase ends with a completion gate. The gate is a list of conditions that must all be true before the next phase begins. The agent must not proceed when any gate condition fails. If a gate fails, the agent reports which condition failed, what the agent attempted, and what the operator must clarify or fix.

0.4 Standing Rules That Apply Everywhere

These rules apply to every phase, every feature, every output. Violating any of them fails the audit and must be remediated before sign off.

  1. No dashes of any kind in written content. No em dashes, no en dashes, no hyphens used as punctuation. Use commas, periods, or rewrite the sentence. Compound modifiers in body copy are written without hyphens. Code, URLs, file names, and CSS class names retain hyphens because those are technical identifiers, not written content.
  2. Static inline JSON LD only. No FastAPI sidecar. No external schema service. The MEGAMIND port 9090 sidecar pattern is deprecated for all client work.
  3. No third party CDN or proxy in front of the site. No Cloudflare. No Akamai. No Fastly. All caching, performance, and HTTP/3 work happens at the Bubbles nginx layer.
  4. Footer credit on every client site. The exact string "Crafted by ThatDeveloperGuy.com." appears in the footer of every client site Joseph builds.
  5. Always validate and reload after Bubbles changes. Every nginx configuration change ends with nginx -t && systemctl reload nginx.
  6. Pricing convention. Custom prices end in 7 (597, 797, 997, 1497, 1997, 2497, 2997). Monthly tiers are 250, 397, and 500. Client specified prices override the convention.
  7. Web development, SEO, AEO, AIO, GEO, and digital presence services only. Never mention computer repair in any client facing material.
  8. Email signature on outbound communication. Joseph Anady, ThatDeveloperGuy.com, admin@thatdeveloperguy.com, 505.512.3662.

0.5 Output Conventions

When this framework produces deliverables:

  • Markdown files use UTF 8 encoding, LF line endings, blank line at end of file.
  • JSON outputs are pretty printed with 2 space indentation.
  • JSON LD uses double quoted strings, no trailing commas, wrapped in <script type="application/ld+json"> for HTML embedding.
  • Filenames use lowercase letters, numbers, and hyphens. No spaces.
  • Audit reports use the naming convention serp-audit-[domain]-[YYYYMMDD].md and serp-audit-[domain]-[YYYYMMDD].json.

0.6 When the Agent Lacks Information

If the agent encounters a required intake field with no answer, the agent stops, lists the missing fields, and asks the human operator. The agent does not invent values, does not pick defaults silently, and does not proceed with placeholders that look real.

0.7 Cross Reference to SEO-Search-Appearance.md

This file is the SERP feature companion to SEO-Search-Appearance.md. They are designed to work together:

  • SEO-Search-Appearance.md covers foundational architecture: query research, pillar and cluster mapping, page structure, schema implementation, multi engine optimization, and the GSC Performance report deep dive.
  • SERP-Optimization.md (this file) covers feature specific targeting: which SERP element to win, how to win it, and how to track it.

When this file references "the schema code library," it refers to Appendix C of SEO-Search-Appearance.md. Critical schema snippets are also reproduced in Appendix B of this file for self contained reading.


1. Document Purpose

This framework is the operational standard for winning specific SERP features across the 2026 search landscape. It treats the SERP not as a single ranked list but as a layered surface with 30 distinct elements, each with its own ranking logic, schema requirements, eligibility rules, and CTR economics.

It produces four primary outputs:

  1. A SERP feature inventory showing which features the client currently appears in and which they could realistically win.
  2. A prioritized targeting plan with feature by feature implementation steps.
  3. A validated implementation across schema, content structure, technical eligibility, and tracking.
  4. A monitoring system that detects feature wins, losses, and volatility over time.

The framework is built for use across Joseph's full client portfolio (currently 130 plus production websites on Bubbles, plus headless and CMS clients), and it scales from a one feature engagement (a client who wants a featured snippet on a specific query) to a full SERP domination program targeting 15 plus features across multiple pillar topics.

The framework does not chase rankings as the only metric. Position 1 organic in 2026 often means position 5 below the AI Overview, the People Also Ask, the Local Pack, and the Top Stories carousel. SERP feature placement is now the dominant visibility lever, with traditional organic CTR dropping up to 61 percent on queries that show AI Overviews. The framework therefore optimizes feature presence directly, and tracks each feature independently of organic ranking.


2. Client Variables Intake

The agent fills in this YAML block before doing anything else. Every field has a definition. If the operator does not know a value, the agent asks. Defaults are listed where reasonable.

# ============================================
# SERP OPTIMIZATION INTAKE
# ============================================

# Section A: Identity
business_name: ""
primary_domain: ""
brand_terms: []                           # exact strings users search for the brand
service_or_product_lines: []              # 3 to 7 main offerings
geographic_service_area:
  primary_city: ""
  primary_state: ""
  service_radius_miles: 0
  additional_metros: []
  national_service: false
  international_service: false

# Section B: Vertical Classification
primary_vertical: ""                      # local_service, ecommerce, healthcare, legal, finance, news, education, hospitality, real_estate, b2b_saas, restaurant, recipe_blog, content_publisher, nonprofit, other
ymyl_relevant: false                      # Your Money Your Life
hospitality_subtype: ""                   # hotel, vacation_rental, restaurant, none
publisher_subtype: ""                     # news, magazine, blog, none
ecommerce_subtype: ""                     # physical_goods, digital_goods, services_marketplace, none

# Section C: Engagement
engagement_mode: ""                       # build, rebuild, audit, partial_audit
engagement_scope: ""                      # full_serp_program, single_feature, feature_cluster, technical_only
client_tier: ""                           # 597, 797, 997, 1497, 1997, 2497, 2997, custom
monthly_tier: ""                          # 250, 397, 500, none

# Section D: Tech Stack
tech_stack_current: ""                    # static_html, sveltekit, nextjs, astro, hugo, wordpress, shopify_headless, shopify_standard, custom, none
hosting_environment: ""                   # bubbles, third_party, shopify_managed, other
ssl_status: ""                            # active, missing, wildcard
http_version: ""                          # 1.1, 2, 3
mobile_first_ready: false

# Section E: Existing SERP Posture
google_search_console_verified: false
gsc_property_url: ""
bing_webmaster_tools_verified: false
google_business_profile_active: false
google_merchant_center_active: false
google_publisher_center_active: false
google_hotel_center_active: false
youtube_channel_active: false
youtube_channel_url: ""

# Section F: Current SERP Feature Presence (audit baseline)
# Marked TRUE only if currently visible in SERP for at least one priority query
appears_in_ai_overview: false
appears_in_ai_mode: false
appears_in_featured_snippet: false
appears_in_people_also_ask: false
appears_in_knowledge_panel: false
appears_in_local_pack: false
appears_in_image_carousel: false
appears_in_video_carousel: false
appears_in_top_stories: false
appears_in_shopping_carousel: false
appears_with_sitelinks: false
appears_with_sitelinks_search_box: false
appears_in_twitter_x_carousel: false
appears_in_reddit_discussion_carousel: false
appears_in_recipe_carousel: false
appears_in_event_pack: false
appears_in_job_pack: false
appears_in_hotel_pack: false
appears_in_vacation_rental_pack: false
appears_in_flight_results: false
appears_in_finance_module: false
appears_in_sports_module: false
appears_in_translation_box: false
appears_in_definition_or_calculator_box: false
appears_in_direct_answer_box: false
appears_in_related_searches: false
appears_in_refinement_bubbles: false
site_name_displayed_correctly: false
favicon_displayed_correctly: false
appears_with_indented_results: false
appears_in_paid_ads: false

# Section G: Schema Implementation Posture
organization_schema_present: false
local_business_schema_present: false
breadcrumb_schema_present: false
article_schema_present: false
faq_schema_present: false
product_schema_present: false
review_schema_present: false
event_schema_present: false
recipe_schema_present: false
video_schema_present: false
image_metadata_schema_present: false
job_posting_schema_present: false
hotel_schema_present: false
vacation_rental_schema_present: false
profile_page_schema_present: false
discussion_forum_schema_present: false
software_app_schema_present: false
speakable_schema_present: false
fact_check_schema_present: false
course_list_schema_present: false
movie_schema_present: false
math_solver_schema_present: false

# Section H: Compliance and Constraints
hipaa_relevant: false
pci_relevant: false
sec_disclosure_relevant: false
gdpr_relevant: false
ccpa_relevant: false
ada_compliance_required: true
target_languages: ["en"]

# Section I: Reporting
reporting_to_client_cadence: ""           # weekly, biweekly, monthly, quarterly
client_dashboard_required: false
Enter fullscreen mode Exit fullscreen mode

The agent does not move past this section until every field has a value or an explicit "unknown" with a reason.


3. 2026 SERP Theory

This section establishes the mental model for working the SERP as a multi feature surface. The targeting and implementation decisions in later sections only make sense if the agent and operator share this model.

3.1 The Anatomy of a Modern SERP

A modern Google SERP is layered. Top to bottom on a typical informational query in 2026, you will see:

  1. AI Overview (about 48 percent of queries, over 70 percent of informational and how to queries)
  2. Sponsored ads (paid, labeled Sponsored, up to 4 slots above organic)
  3. Featured snippet (when triggered, the boxed answer extracted from one page)
  4. People Also Ask (expandable question accordion, typically 3 to 4 questions visible)
  5. Local Pack (when the query has local intent, the map with three local results)
  6. Knowledge Panel (right side panel on desktop, inline on mobile, when an entity is recognized)
  7. Image carousel (horizontal row of image thumbnails, often inline)
  8. Video carousel (horizontal row of video thumbnails)
  9. Top Stories (news article carousel for news worthy queries)
  10. Shopping carousel (product listings for commercial queries)
  11. Twitter/X carousel (recent posts from verified accounts on time sensitive queries)
  12. Reddit/Discussion carousel (forum threads, particularly for opinion and recommendation queries)
  13. Recipe carousel (when query is food related)
  14. Event pack (when query has event intent)
  15. Job pack (Google for Jobs, when query has employment intent)
  16. Hotel pack or Vacation Rental pack (when query has accommodation intent)
  17. Flight results (when query is flight related)
  18. Finance module (when query is stock or financial)
  19. Sports module (when query is sports related)
  20. Translation box (when query is translation related)
  21. Definition box and Calculator (when query is dictionary or calculation)
  22. Direct answer box (weather, time, conversions)
  23. Ten blue links (the traditional organic results)
  24. Sitelinks (additional internal links shown beneath some results)
  25. Sitelinks Search Box (search box embedded in some brand results)
  26. Indented results (multiple results from same site grouped together)
  27. Refinement bubbles (filter chips at top of results)
  28. Related searches (suggestions at the bottom)
  29. People Also Search For (related entities at the bottom)
  30. Bottom of page ads

The actual order varies by query intent, device, geography, and search history. Some features are mutually exclusive (Hotel Pack and Vacation Rental Pack rarely co occur). Others routinely stack (AI Overview plus Featured Snippet plus PAA plus Knowledge Panel plus Top Stories on a single news worthy informational query).

3.2 Feature Stacking and Above the Fold Compression

In 2026 the average mobile SERP shows 1.6 organic results above the fold compared to 7.2 in 2018. Every feature above the organic results compresses traditional rankings further down the page.

Implications:

  • Position 1 organic without feature presence is now often functionally position 6 or worse on screen.
  • Winning a feature (snippet, AI Overview citation, PAA inclusion, Local Pack placement, video carousel slot) is more valuable than improving from position 5 to position 3 in classic organic ranking.
  • The framework therefore prioritizes feature wins over organic position improvements when both are available targets.

3.3 The CTR Cascade by Feature

Industry benchmark click through rates by SERP placement (2026 data):

Placement Approximate CTR
AI Overview citation (clicked from inline link) 8 to 12 percent of AI Overview impressions
Featured snippet 35 to 42 percent
Position 1 organic (no AI Overview present) 27 percent
Position 1 organic (AI Overview present) 11 percent
Position 2 organic 15 percent
Position 3 organic 11 percent
Local Pack (one of three) 25 to 33 percent (combined for the pack)
Knowledge Panel direct click 8 to 14 percent
People Also Ask (when expanded) 3 to 8 percent
Image carousel varies wildly, 1 to 15 percent depending on query
Video carousel 8 to 18 percent
Top Stories 12 to 22 percent
Shopping carousel listing 5 to 11 percent per listing
Sitelinks (added to organic result) adds 10 to 25 percent CTR lift to the parent result
Sponsored ad position 1 6 to 10 percent

The pattern: feature placement above organic results captures more than half of all clicks on most SERPs. Features below organic (Related Searches, People Also Search For) drive minimal direct traffic but feed downstream queries.

3.4 Zero Click and Citation Economics

58.5 percent of all searches now end without a click to any external site. 93 percent of AI Mode queries result in zero clicks. The strategic implication is that visibility without click is increasingly the goal:

  • A brand mentioned in an AI Overview without a click still earns awareness and downstream branded search.
  • A featured snippet shown without a click still associates the brand with the answer in the user's mind.
  • A Local Pack appearance can drive a phone call directly without ever generating a website click.

The framework tracks both click metrics and visibility metrics, and reports both to clients. A SERP feature that drives zero clicks but high visibility is still a win when it builds brand recognition.

3.5 Mobile vs Desktop SERP Differences

Mobile and desktop SERPs are now substantially different surfaces:

Mobile only or mobile dominant:

  • AI Overview takes nearly the entire first screen on mobile.
  • Knowledge Panel collapses to an inline card rather than a side panel.
  • Image and Video carousels are full width and prominent.
  • Local Pack often shows only one result with map, with "see more" expansion.
  • Voice search initiated queries skew heavily mobile.

Desktop only or desktop dominant:

  • Knowledge Panel side panel takes the right column.
  • Sitelinks Search Box appears more prominently.
  • More organic results visible above the fold.
  • Detailed Shopping carousel with multiple visible products.

For Joseph's client base (largely consumer service businesses in NWA and SW Missouri), mobile is dominant. Mobile SERP feature wins are the priority.

3.6 Branded vs Non Branded SERPs

A SERP for "TCB Fight Factory" looks different from a SERP for "MMA gym Bentonville":

Branded SERP:

  • Knowledge Panel for the business (when entity is recognized)
  • Sitelinks under the homepage result
  • Site name and favicon prominent
  • Social profile carousel (X, LinkedIn, Facebook)
  • Reviews directly from Google Business Profile
  • Brand domination of position 1 through 3 organic

Non branded SERP:

  • Local Pack with three competitors
  • AI Overview synthesizing across multiple sources
  • People Also Ask with category specific questions
  • Image and video carousels mixed across competitors
  • Organic results dispersed across competitors
  • Often a featured snippet from a competitor

Strategy implication: branded queries are about reinforcing entity signals (Knowledge Panel, Sitelinks, sameAs, Wikidata). Non branded queries are about feature competition. The framework addresses both separately.

3.7 SERP Volatility and Personalization

SERPs in 2026 are not deterministic. The same query run twice produces different results due to:

  • Personalization based on search history.
  • Geographic location at query time.
  • Device (mobile, desktop, tablet, voice).
  • Time of day and recent news cycles.
  • A/B testing by Google.
  • AI Overview regeneration (70 percent change rate on identical queries).

The framework therefore samples across multiple sessions, devices, and geographic contexts when auditing or tracking feature presence. A single query check is not authoritative.

3.8 Phase Gate for Section 3

Before moving to section 4, confirm:

  1. The operator can list at least 10 SERP features from memory.
  2. The operator understands feature stacking and above the fold compression.
  3. The operator has set client expectations on SERP volatility.
  4. The agent has internalized the CTR cascade.

4. SERP Feature Decision Tree

The agent walks this tree at the start of every engagement to determine which of the 30 features the client should target. The output is a priority assignment per feature: TARGET, MAYBE, SKIP, or N/A.

4.1 The Decision Tree

For each feature, the agent applies the following logic:

For each feature:

  Q1: Is the feature relevant to the client's primary vertical?
    NO  -> mark SKIP, add reason
    YES -> continue

  Q2: Does the client meet the eligibility requirements?
    (vertical restrictions, account requirements, content type)
    NO  -> mark N/A (cannot win this feature given current constraints)
    YES -> continue

  Q3: Does the client currently appear in this feature?
    YES -> mark TARGET as defense (maintain presence)
    NO  -> continue

  Q4: Is the feature realistically winnable given current authority?
    HIGH probability  -> mark TARGET as offense (high priority)
    MEDIUM probability -> mark MAYBE (second priority)
    LOW probability   -> mark SKIP (defer until authority improves)
Enter fullscreen mode Exit fullscreen mode

4.2 The Universal Targets (Apply to Almost Every Site)

Some features are universal and always TARGET regardless of vertical:

  1. Featured Snippet: every site can win for some long tail informational query.
  2. People Also Ask: every site benefits from PAA inclusion.
  3. Sitelinks: appears automatically on strong brand queries; reinforce by clean site architecture.
  4. Site Name and Favicon: every site needs these displayed correctly.
  5. AI Overview citation: every site can earn AI Overview citations for queries in its expertise area.
  6. Image carousel: every site with imagery has potential here.
  7. Video carousel: every site benefits from at least baseline video content with VideoObject schema.

These seven get TARGET status by default unless the client has a specific reason not to pursue them.

4.3 The Vertical Specific Targets

Other features only apply when the client matches the vertical:

Feature Target When
Local Pack Client serves a defined geographic area
Knowledge Panel Client is a recognizable entity (named business, public figure, registered organization)
Top Stories Client is a registered news publisher with Publisher Center approval
Shopping Carousel Client sells physical or digital products with Merchant Center setup
Recipe Carousel Client publishes actual recipes (food bloggers, recipe sites)
Event Pack Client hosts time bound events
Job Pack Client has open positions to advertise
Hotel Pack Client is a hotel, motel, resort, or BnB
Vacation Rental Pack Client is a short term rental property or property manager
Flight Results Airline, OTA, or flight comparison site (rare)
Finance Module Brokerage, financial data provider, or stock listing (very rare)
Sports Module Sports league, team, or sports media (very rare)
Reddit/Discussion Carousel Client maintains an active forum or community
Twitter/X Carousel Client maintains an active verified X presence

4.4 The Niche Features (Usually SKIP)

Some features are so narrow they apply only to specific national brands or specialized verticals:

  • Translation Box (translation services and dictionaries)
  • Definition Box (dictionaries and reference sites)
  • Calculator Box (specialized calculator sites only)
  • Direct Answer Box (weather, time, conversions: providers integrated with Google)

For 99 percent of Joseph's client work, these are SKIP.

4.5 Document the Priority Assignment

The agent records the priority assignment in the engagement notes:

serp_feature_priorities:
  ai_overview: ""                         # TARGET, MAYBE, SKIP, N/A
  ai_mode: ""
  featured_snippet: ""
  people_also_ask: ""
  knowledge_panel: ""
  local_pack: ""
  image_carousel: ""
  video_carousel: ""
  top_stories: ""
  shopping_carousel: ""
  sitelinks: ""
  sitelinks_search_box: ""
  twitter_x_carousel: ""
  reddit_discussion_carousel: ""
  recipe_carousel: ""
  event_pack: ""
  job_pack: ""
  hotel_pack: ""
  vacation_rental_pack: ""
  flight_results: ""
  finance_module: ""
  sports_module: ""
  translation_box: ""
  definition_calculator_box: ""
  direct_answer_box: ""
  related_searches: ""
  refinement_bubbles: ""
  site_name_favicon: ""
  indented_results: ""
  paid_ads: ""

priority_rationale: |
  [One paragraph explaining why each TARGET, MAYBE, SKIP was assigned]

target_count: 0                           # how many features are TARGET
maybe_count: 0
skip_count: 0
na_count: 0
Enter fullscreen mode Exit fullscreen mode

4.6 Phase Gate for Section 4

Before moving to Phase 1, confirm:

  1. All 30 features have a priority assignment.
  2. Rationale is documented for every TARGET and MAYBE assignment.
  3. The TARGET count is realistic for the client tier and budget (not 30 targets on a 597 build).
  4. The operator has reviewed and signed off on the priority list.

5. Phase 1: SERP Audit (Current State)

Purpose: establish a baseline of which features the client currently appears in, across which queries, and how that presence varies by device and geography.

5.1 Step 1, Build the Query Sample

Pull 30 to 50 priority queries from the SEO-Search-Appearance.md keyword to page map. The sample should include:

  1. 5 to 10 head terms (highest volume queries in the client's vertical).
  2. 10 to 15 mid tail queries (3 to 5 word queries with clear intent).
  3. 10 to 15 long tail queries (5 plus word queries, often question phrased).
  4. 5 branded queries (variations of the brand name).
  5. 5 local modifier queries (where applicable, e.g., "MMA gym Bentonville").

Save as serp-audit-queries.csv with columns query, query_type, geo_modifier, intent.

5.2 Step 2, Run the Audit Across Surfaces

For each query, the agent records:

  1. Which features appeared on the SERP.
  2. Which feature slots the client appeared in.
  3. The position within each feature (which result in the Local Pack, which thumbnail in the carousel).
  4. The device tested (mobile, desktop, both).
  5. The geographic context tested.

Output: serp-audit-results.csv with columns:

query
device                                    # mobile, desktop
geo_context                              # location at query time
ai_overview_present
ai_overview_client_cited
featured_snippet_present
featured_snippet_owner
paa_present
paa_client_included
knowledge_panel_present
knowledge_panel_owner
local_pack_present
local_pack_client_position                # 1, 2, 3, none
image_carousel_present
image_carousel_client_appears
video_carousel_present
video_carousel_client_appears
top_stories_present
top_stories_client_appears
shopping_carousel_present
shopping_carousel_client_appears
twitter_x_carousel_present
reddit_discussion_present
recipe_carousel_present
event_pack_present
job_pack_present
hotel_pack_present
vacation_rental_pack_present
client_organic_position
client_has_sitelinks
client_has_sitelinks_search_box
client_in_indented_results
related_searches_include_brand
notes
Enter fullscreen mode Exit fullscreen mode

5.3 Step 3, Manual Sampling Protocol

The audit must be conducted manually for accurate results because no third party tool captures all 30 features reliably.

Browser setup:

  1. Use a fresh incognito window for each query.
  2. Set geographic context using Chrome DevTools Sensors (Geolocation override) if testing for a specific area.
  3. Disable personalization with the &pws=0 URL parameter and &gl=us for US results.
  4. Test mobile by emulating an Android device in DevTools or using an actual mobile device.

Per query process:

  1. Run the query in Google.
  2. Screenshot the full SERP.
  3. Note the features present and the client's appearance in each.
  4. Repeat the query in Google AI Mode if relevant.
  5. Repeat the query in Bing for comparison.
  6. Repeat the query in DuckDuckGo for the privacy focused angle.

Cross device verification:

  • Test top 10 queries on both mobile and desktop.
  • Test top 5 queries from at least two geographic contexts when local intent is involved.

5.4 Step 4, Identify the Gaps

After the sample is complete, the agent produces a gap analysis:

gap_analysis:
  features_currently_won: []              # features where client appears
  features_winnable_with_low_effort: []   # close to winning, small fix away
  features_winnable_with_medium_effort: [] # need schema or content work
  features_winnable_with_high_effort: []  # need authority building
  features_unattainable: []               # vertical or eligibility blocks
  defense_priorities: []                  # currently won features at risk
  offense_priorities: []                  # closest winnable features
Enter fullscreen mode Exit fullscreen mode

5.5 Step 5, Competitor Feature Mapping

For the top 10 priority queries, the agent records which competitors appear in which features. This identifies:

  1. Feature slots where every competitor has presence and the client does not (parity gap).
  2. Feature slots where one competitor dominates (concentrated weakness).
  3. Feature slots where presence is fragmented across many competitors (open opportunity).

Output: competitor-serp-presence.csv with columns query, competitor_domain, features_appeared_in.

5.6 Phase 1 Completion Gate

Before Phase 2, confirm:

  1. serp-audit-queries.csv has at least 30 priority queries.
  2. serp-audit-results.csv has been completed for every query and device.
  3. Gap analysis has been documented.
  4. Competitor feature mapping has been completed for top 10 queries.
  5. The operator has reviewed and acknowledged the current SERP feature posture.

If gate fails, identify which step is incomplete and finish it.


6. Phase 2: Feature Targeting Plan

Purpose: translate the audit gaps into a sequenced implementation plan with effort estimates, expected impact, and ownership.

6.1 Step 1, Score Each Target Feature

For every TARGET feature from section 4, the agent computes an opportunity score:

opportunity_score = (impact_weight * winnability) - effort

Where:
  impact_weight = 1 to 10 based on the feature's CTR cascade and visibility lift
  winnability = 0.0 to 1.0 based on current authority versus required authority
  effort = 1 to 10 based on hours required to ship the implementation
Enter fullscreen mode Exit fullscreen mode

Sort features by opportunity score descending. The top quartile is the immediate sprint. The next quartile is the second sprint. Lower halves are deferred.

6.2 Step 2, Sequence the Sprints

A typical sprint structure for a $997 build plus $397 monthly client:

Sprint 1 (week 1 to 2): foundation features

  • Site Name and Favicon corrected
  • Sitelinks eligibility (clean site architecture)
  • Featured snippet candidate pages structured per Phase 3 of SEO-Search-Appearance.md
  • People Also Ask question targeting on top 10 queries

Sprint 2 (week 3 to 4): schema heavy features

  • Image carousel via ImageObject schema on hero images
  • Video carousel via VideoObject schema on existing or newly published videos
  • Knowledge Panel groundwork (Organization schema, sameAs, Wikidata)
  • Local Pack optimization (where applicable)

Sprint 3 (week 5 to 6): vertical specific features

  • Whatever vertical features apply (Recipe, Event, Job, Hotel, Vacation Rental, Shopping)
  • Discussion or Reddit presence work (if applicable)

Sprint 4 (week 7 to 8): AI surface optimization

  • AI Overview citation optimization (lede structure, dual extraction, schema completeness)
  • AI Mode topical coverage (cluster expansion)

Ongoing (post sprint): defense and expansion

  • Maintenance of won features
  • Expansion to MAYBE features
  • Opportunistic targets as new SERP features emerge

6.3 Step 3, Document the Plan

Output: serp-targeting-plan.yaml:

plan:
  sprint_1:
    duration: "weeks 1-2"
    targets:
      - feature: ""
        priority_queries: []
        effort_hours: 0
        expected_impact: ""
        owner: ""
        deliverables: []
    completion_criteria: []

  sprint_2:
    # same structure

  sprint_3:
    # same structure

  sprint_4:
    # same structure

  ongoing:
    cadence: ""                           # weekly, monthly, quarterly
    activities: []
Enter fullscreen mode Exit fullscreen mode

6.4 Phase 2 Completion Gate

Before Phase 3, confirm:

  1. Every TARGET feature has an opportunity score.
  2. Targets are sequenced into at least 2 sprints.
  3. Sprint completion criteria are explicit.
  4. The operator has approved the plan and committed to the timeline.

7. Phase 3: Feature Specific Implementation

Purpose: execute the targeting plan one feature at a time, using the per feature deep dives in section 9 as the implementation manual.

7.1 Implementation Workflow Per Feature

For each feature being implemented, the agent follows this workflow:

  1. Read the relevant subsection of section 9 (Per Feature Deep Dives).
  2. Verify all eligibility requirements from that subsection are met.
  3. Apply the install steps in the order documented.
  4. Validate using the validation steps specific to that feature.
  5. Submit to GSC URL Inspection or equivalent for re crawl.
  6. Record completion in the implementation log.

7.2 Implementation Log

implementation_log:
  - feature: ""
    target_pages: []
    schema_added: []
    content_changes: []
    started_at: ""
    completed_at: ""
    validation_passed: true
    submitted_for_recrawl: true
    notes: ""
Enter fullscreen mode Exit fullscreen mode

7.3 Phase 3 Completion Gate

Before Phase 4, confirm:

  1. Every Sprint 1 and Sprint 2 target has a completed implementation log entry.
  2. All schema validates against Schema.org and Google Rich Results Test.
  3. All target pages have been submitted to GSC for re crawl.

8. Phase 4: Validation and Tracking

Purpose: confirm the implementation is producing measurable feature wins and establish ongoing tracking.

8.1 Step 1, Re Audit After 14 to 30 Days

Re run the Phase 1 audit on the same query sample 14 to 30 days after implementation completes. Document feature presence changes:

  • Features newly won.
  • Features lost (regressions).
  • Features unchanged.

Some features (Featured Snippet, AI Overview citation) can appear within days. Others (Knowledge Panel, Sitelinks) take weeks to months. Re audit cadence reflects this:

  • 14 days post implementation: Featured Snippet, PAA, AI Overview citation, Image carousel, Video carousel.
  • 30 days post implementation: Knowledge Panel groundwork, Sitelinks, Local Pack movement.
  • 60 to 90 days: full effects of authority building (Sitelinks Search Box, Top Stories eligibility, Shopping carousel after Merchant Center sync).

8.2 Step 2, Establish Ongoing Tracking

Three layers of tracking:

Layer 1, GSC Search Appearance dimension (covered in detail in SEO-Search-Appearance.md section 12.8):

  • Filter Performance report by Search Appearance to see which features generate impressions.
  • Track changes month over month.

Layer 2, manual weekly sampling:

  • For top 10 priority queries, sample feature presence weekly.
  • Record in serp-weekly-sample.csv with date, query, features won, features lost.

Layer 3, third party tools (when budget allows):

  • Semrush Sensor for SERP feature volatility detection.
  • Ahrefs SERP overview for feature presence per query.
  • SE Ranking SERP feature tracking.

8.3 Step 3, Reporting

Per section 12 maintenance schedule, the agent reports SERP feature wins to the client at the agreed cadence. Standard report structure:

# SERP Feature Performance
## [Reporting Period]

## Features Currently Won
[Table of features and queries where client appears]

## Features Newly Won This Period
[Diff from last period]

## Features Lost This Period
[Diff from last period]

## Features in Active Targeting
[Current sprint targets and progress]

## Volatility and Defense
[Notes on features at risk]

## Next Period Plan
[Upcoming targets and adjustments]
Enter fullscreen mode Exit fullscreen mode

8.4 Phase 4 Completion Gate

This phase has no forward gate (it is the final phase). Exit criterion:

  1. Re audit completed and documented.
  2. Tracking established at all three layers.
  3. First reporting cycle delivered to client.

9. Per Feature Deep Dives

This section is the implementation manual. Each of the 30 SERP features is documented with what it is, where it appears, eligibility, how to install, why install, do not install conditions, best fit clients, common failure modes, and tracking method. The agent reads only the subsections matching the priority assignments from section 4.

9.1 AI Overview

What it is: Google's AI generated summary that appears above traditional organic results on about 48 percent of all queries (Q1 2026), and over 70 percent of informational and how to queries. Powered by Gemini 3 Pro since January 2026. Cites sources via inline links (typically 3 to 8 sources) and shows the AI generated answer text in 3 to 6 paragraphs.

Where it appears: top of the SERP, above sponsored ads in many cases. Mobile dominant: takes nearly the entire first screen. Desktop: takes the top half of the visible area before scroll.

Query intent that triggers it: primarily informational (what is, how to, why does, can I), comparative (X versus Y), and increasingly commercial research (best X for Y). Less common on transactional intent (buy X, X near me) and navigational (specific brand searches).

Eligibility: any indexed page can theoretically be cited. Pages already ranking in the top 10 organic for the query have the highest base probability, but the December 2025 Surfer SEO study found 68 percent of AI Overview citations come from outside the top 10 organic. The decisive factors are:

  1. Schema accuracy and completeness (Article, Organization, Person for author).
  2. Content extractability (40 to 60 word lede, headings as questions, dual extraction layer per SEO-Search-Appearance.md section 7).
  3. Author E E A T signals (visible byline, credentials, ProfilePage schema).
  4. Freshness (cited pages average 25.7 percent fresher than traditional search results).
  5. Topical depth (sub query coverage across the fan out, per Phase 2 of SEO-Search-Appearance.md).
  6. Off page brand signals (YouTube mentions, earned media, branded web mentions).

How to install:

Step 1. Confirm the target page is indexable and ranking for the query (or close to ranking, in the top 50). If not, fix indexation and ranking first.

Step 2. Restructure the page per SEO-Search-Appearance.md section 7:

  • 40 to 60 word lede paragraph in the first paragraph after H1, marked with class="lede" and wrapped in <strong>.
  • Every H2 phrased as a literal question matching a sub query for the target keyword.
  • The 30 percent rule honored: the citable answer appears in the first third of the page text.
  • Dual extraction layer: prose answer plus a corresponding list, table, or structured block.

Step 3. Add or upgrade schema:

  • Organization schema (sitewide) with full sameAs including Wikidata Q ID.
  • Person schema for the author with hasCredential array.
  • Article schema with author, datePublished, dateModified, headline, image, mainEntityOfPage, wordCount.
  • BreadcrumbList for the page.

Step 4. Add information gain element in the first 30 percent of the page (original survey data, internal case study, proprietary framework, calculator, or first hand experience narrative per SEO-Search-Appearance.md section 13).

Step 5. Submit URL to Google Search Console URL Inspection for re crawl.

Step 6. Wait 7 to 30 days, then sample the query in Google to check for AI Overview citation.

Why install: AI Overview citations drive a 35 percent click lift versus non cited top 10 results, and cited visitors convert at about 23 times the rate of standard search visitors. Even when no click occurs, AI Overview mentions establish brand association with the answer, which drives downstream branded search.

Do not install if: the page is on a SPA or JavaScript only rendered site without server side rendering or prerendering. ChatGPT bot reading mode (which mirrors AI Overview parsing patterns) begins in plain HTML 46 percent of the time, and JavaScript only sites are invisible during these crawls.

Best fit for portfolio: every client with content pages in their expertise area. Particularly high leverage for ARCW (counseling content with Dr. Burton's authority), handledtax.com (tax content with Amanda's credentials), and any client publishing educational content related to their service.

Common failure modes:

  1. Generic H2 nouns instead of question phrased H2s. Fix: rewrite headings as natural language questions matching sub queries.
  2. Lede paragraph buried after a "this article will discuss" preamble. Fix: cut the preamble, lead with the answer.
  3. Article schema present but author field is missing or generic. Fix: add Person schema with full credentials.
  4. Information gain absent (page is a paraphrase of competitors). Fix: add original data, framework, or first hand experience.
  5. AI Overview cites the page once then drops it on regeneration. AI Overview content changes 70 percent of the time on the same query, with 45.5 percent of citations replaced. This is normal volatility, not a fixable failure. Defense: maintain freshness and quality; do not over rotate based on a single regeneration.

Tracking:

  • GSC Performance report includes AI Overview impressions in the standard web search type as of 2024.
  • Manual weekly sampling per section 8.2.
  • Third party tools: Semrush AI Toolkit, Ahrefs AI Search, Profound for enterprise visibility tracking.

9.2 AI Mode

What it is: Google's standalone conversational AI search interface, accessible from the Google homepage via a dedicated tab and from the AI Overview "Ask follow up" affordance. Runs on Gemini 3 Pro. 75 million daily active users as of January 2026, processing over 1 billion queries per month. Personal Intelligence integration since January 22, 2026 means Gmail, Calendar, and other Google service context can shape responses. AI Mode runs 9 to 16 sub queries per user prompt (much higher fan out than AI Overview).

Where it appears: standalone interface, no traditional ten blue links. Cites sources at the bottom of responses and inline.

Query intent that triggers it: any query the user runs in AI Mode. Not triggered by keyword, triggered by user choice of interface.

Eligibility: same eligibility as AI Overview, with additional emphasis on:

  1. Broad topical coverage across the cluster (AI Mode favors domains with deep coverage of sub queries, not just ranking for the head term).
  2. Structured data quality as a trust signal (AI Mode reads schema even when no rich result displays).
  3. Entity clarity (Wikidata, Organization sameAs, ProfilePage for authors).

How to install:

Step 1. Complete the SEO-Search-Appearance.md Phase 2 cluster mapping. AI Mode prefers sites with 70 plus percent fan out coverage.

Step 2. Apply all of section 9.1 (AI Overview) install steps. The base optimization is identical.

Step 3. Expand cluster page coverage. For every priority pillar, ensure 8 to 12 cluster pages exist covering the sub query fan out.

Step 4. Strengthen entity signals: create or update Wikidata entity, ensure Organization schema sameAs links to verified social profiles, link Person schema for authors to their Wikidata Q IDs and LinkedIn profiles.

Step 5. Build out off site mentions: YouTube content (own channel and third party features), earned media, Reddit participation. AI Mode and AI Overviews share only 13.7 percent citation overlap, so winning AI Mode requires distinct signal building.

Why install: AI Mode citations bypass the 93 percent zero click rate problem partially because cited links in AI Mode responses convert at the highest rate of any AI surface. AI Mode is also the dominant emerging interface for younger users and will likely continue growing share through 2026.

Do not install if: the client cannot commit to ongoing cluster expansion and content freshness. AI Mode rewards depth and breadth over single high performing pages, and a one off optimization will not produce sustained presence.

Best fit for portfolio: clients with broad topical authority potential. ARCW for counseling and mental health, handledtax.com for tax content if Amanda continues publishing, thatdeveloperguy.com and thataiguy.org for development and AI topics.

Common failure modes:

  1. Single page optimization without cluster support. Fix: build the supporting clusters per Phase 2.
  2. Strong on page schema but weak entity signals (no Wikidata, no sameAs, no ProfilePage for authors). Fix: build entity layer.
  3. Domain authority too low to compete with established sources for the query. Fix: defer; build authority through earned media and information gain assets first.

Tracking:

  • AI Mode appearances are not directly reported in GSC. Track manually.
  • Sample top 10 priority queries in AI Mode weekly. Record citation status.
  • Third party: Profound, Geoptie, Ahrefs AI Search.

9.3 Featured Snippet

What it is: a boxed answer that appears at the top of the SERP (often called "position zero"), extracted from a single web page. Four formats: paragraph snippet (most common), list snippet (numbered or bullet), table snippet, and video snippet. The page's title and URL appear below the extracted content as a clickable link.

Where it appears: below sponsored ads but above traditional organic results on queries that have a clear factual answer. On many SERPs the AI Overview has displaced the featured snippet, but when AI Overview is absent, the featured snippet still appears.

Query intent that triggers it: primarily informational and how to, but also definition queries (what is X), list queries (what are the steps to X), and comparison queries (when answered with a table).

Eligibility: the page must rank in the top 10 organic for the query, the content must be cleanly extractable (formatted as a direct answer), and the page must have HTTPS, mobile responsive design, and reasonable Core Web Vitals.

How to install:

Step 1. Identify featured snippet target queries. Look in GSC for queries where the client ranks in top 10 but does not currently hold the snippet. These are immediate opportunities.

Step 2. Choose the snippet format based on query type:

  • Paragraph: definitional and explanatory queries.
  • List: how to and steps queries.
  • Table: comparison and specification queries.
  • Video: how to with visual demonstration.

Step 3. Restructure the page section that targets the snippet:

For paragraph snippet:

<h2>What is [topic]?</h2>
<p>[40 to 60 word direct answer with the primary keyword in the first sentence.]</p>
Enter fullscreen mode Exit fullscreen mode

For list snippet:

<h2>How to [task]</h2>
<ol>
  <li>[Step 1, one sentence each.]</li>
  <li>[Step 2.]</li>
  <li>[Step 3.]</li>
  <li>[Step 4.]</li>
  <li>[Step 5.]</li>
</ol>
Enter fullscreen mode Exit fullscreen mode

For table snippet:

<h2>[Topic A] vs [Topic B]</h2>
<table>
  <thead>
    <tr><th>Feature</th><th>[A]</th><th>[B]</th></tr>
  </thead>
  <tbody>
    <tr><td>[Feature]</td><td>[Value]</td><td>[Value]</td></tr>
    <tr><td>[Feature]</td><td>[Value]</td><td>[Value]</td></tr>
  </tbody>
</table>
Enter fullscreen mode Exit fullscreen mode

Step 4. Place the snippet candidate content in the first 30 percent of the page so it sits in the citation extraction zone.

Step 5. Validate the formatting renders correctly in mobile preview.

Step 6. Submit URL to GSC URL Inspection for re crawl.

Why install: featured snippets earn 35 to 42 percent CTR, the highest of any single SERP feature outside the AI Overview. Even when the snippet is shown, the click rate is far higher than traditional organic position 1.

Do not install if: the page is not in the top 10 organic for the target query. Featured snippet eligibility almost always requires top 10 ranking. Fix the underlying ranking first via content depth, internal linking, and authority signals.

Best fit for portfolio: every client with content pages competing on informational queries. Joseph's typical wins are list snippets on how to queries (TCB Fight Factory: "how to start training BJJ", handledtax.com: "how to file quarterly estimated taxes", thatdeveloperguy.com: "how to set up SEO for a small business").

Common failure modes:

  1. Multiple competing answer paragraphs on the same page. Fix: consolidate into one clean answer paragraph immediately after the H2.
  2. Lists with too many items (beyond 8). Fix: shorten to 5 to 7 items, link to the full list later in the page.
  3. Tables with too many rows or columns. Fix: limit to 3 to 6 rows and 2 to 4 columns.
  4. Snippet candidate buried below the fold. Fix: move to first 30 percent of the page.
  5. Page ranks 11 to 20, just outside featured snippet eligibility. Fix: build ranking first.

Tracking:

  • GSC Performance report Search Appearance dimension shows when results are featured snippets.
  • Manual weekly sampling.
  • Ahrefs SERP overview, Semrush Position Tracking with SERP features filter.

9.4 People Also Ask

What it is: an expandable accordion of related questions, typically 3 to 5 visible initially with the ability to expand more by clicking. Each question, when clicked, shows a paragraph snippet plus a link to the source page.

Where it appears: typically below the featured snippet (when present) or in the middle of the SERP. Sometimes appears multiple times on a single SERP.

Query intent that triggers it: almost every query has PAA in 2026. Heaviest on informational queries, lighter on highly transactional or branded queries.

Eligibility: any page with content that answers a related question to the original query. The page does not need to rank in the top 10 for the original query, only for the related question. PAA is a major opportunity for pages that rank well for long tail variants but not the head term.

How to install:

Step 1. Generate the PAA universe for the target query:

  • Run the query in Google.
  • Click each PAA box twice to expand the tree (PAA recursively reveals more questions).
  • Capture all questions revealed.
  • Recurse two levels deep for major queries.

Step 2. Map each captured question to a target page (existing page or new cluster page per SEO-Search-Appearance.md Phase 2).

Step 3. On the target page, add an H2 phrased as the literal question, followed by a 40 to 60 word answer paragraph.

Step 4. For pages with multiple PAA targets, structure as a question and answer block:

<h2>How long does it take to start training BJJ?</h2>
<p>[40 to 60 word answer.]</p>
<p>[2 to 3 sentence supporting context.]</p>

<h2>What should I bring to my first BJJ class?</h2>
<p>[40 to 60 word answer.]</p>

<h2>How much does BJJ training cost in Bentonville?</h2>
<p>[40 to 60 word answer with local pricing.]</p>
Enter fullscreen mode Exit fullscreen mode

Step 5. Optionally add FAQPage schema if the page is primarily an FAQ. (Reminder: FAQPage rich results are restricted to government and health sites, but the schema still helps PAA inclusion.)

Step 6. Submit URL to GSC for re crawl.

Why install: PAA inclusion drives meaningful traffic for long tail informational queries that the page might not otherwise rank for. CTR per PAA expansion is 3 to 8 percent, but PAA appears on nearly every SERP, so cumulative impact is large.

Do not install if: the question is not genuinely answered by the page content. Forcing PAA targeting on irrelevant pages creates content sprawl and dilutes topical authority.

Best fit for portfolio: every content publishing client. Especially leveraged when paired with cluster page architecture.

Common failure modes:

  1. Question and answer presented but answer is too long (over 80 words) and gets truncated when extracted. Fix: tighten to 40 to 60 words.
  2. Question phrased differently than what users actually search. Fix: match the literal phrasing from the PAA capture.
  3. Answer hidden behind a JavaScript accordion that does not render in initial HTML. Fix: render in initial HTML; collapse with CSS only if needed for visual design.

Tracking:

  • PAA appearances are not directly reported in GSC.
  • Manual weekly sampling.
  • Third party: Ahrefs SERP overview, Semrush.

9.5 Knowledge Panel

What it is: the right side panel on desktop (inline card on mobile) that appears when Google recognizes an entity (a person, place, organization, work of art, event, etc.). Shows the entity's name, photo, key facts, social profiles, and links to authoritative sources. Often pulls data from Wikipedia, Wikidata, Google Business Profile, and the entity's own website.

Where it appears: right side of desktop SERP, inline on mobile. Triggered by entity recognition queries (the brand name, the person's name, "[business] hours", etc.).

Query intent that triggers it: navigational and entity recognition queries. Branded queries trigger them most reliably.

Eligibility: the entity must be recognized by Google's Knowledge Graph. Requirements:

  1. Wikipedia article OR Wikidata entity OR strong Google Business Profile (for local businesses).
  2. Consistent identity signals across the web (NAP for businesses, sameAs for organizations and people).
  3. Sufficient earned media or directory presence to establish notability.

How to install:

Step 1. Establish or update the Wikidata entity.

  • Visit https://www.wikidata.org and search for the entity.
  • If no entity exists, create one with name, description, alias variants (P31 instance of, P17 country, P159 headquarters location, P856 official website, P2002 X username, P2013 Facebook ID, P4264 LinkedIn company ID, etc.).
  • Reference Joseph's own Wikidata entities as patterns: Joseph Anady Q138610626, MEGAMIND Q138610666.

Step 2. Build Organization schema with comprehensive sameAs:

  • Reference Appendix B of this file or Appendix C 19.1 of SEO-Search-Appearance.md.
  • sameAs must include Wikidata Q ID URL, all owned social profiles, LinkedIn Company Page, YouTube channel, Wikipedia article when applicable.

Step 3. For local businesses, complete and verify Google Business Profile:

  • Categories aligned with primary services.
  • Hours, photos, phone, address, website, attributes all populated.
  • Active review responses.
  • Posts and updates published regularly.
  • Q and A answered.

Step 4. For people, build Person schema with hasCredential array, plus a ProfilePage with mainEntity referencing the Person.

Step 5. For organizations, ensure NAP consistency across at least 10 major directories (Apple Business Connect, Bing Places, Yelp, Facebook, LinkedIn, BBB, plus industry specific directories).

Step 6. Build earned media: 3 to 5 mentions in 12 months minimum, ideally with backlinks from publications cited as Knowledge Panel sources.

Step 7. Wait. Knowledge Panel construction is a multi month process; Google evaluates entity signal stability over time before publishing the panel.

Why install: Knowledge Panels dominate branded query SERPs, often capturing 8 to 14 percent of clicks directly to the panel actions (call, directions, website). They reinforce entity authority across all queries the brand competes in. They provide a direct trust signal: an entity with a Knowledge Panel is implicitly more legitimate than one without.

Do not install if: the client lacks sufficient notability for Wikipedia (most small businesses do not qualify) and is not a local business eligible for Google Business Profile. In that case, build other entity signals (Wikidata, schema, earned media) and let the panel emerge organically when notability accumulates.

Best fit for portfolio: all local business clients (TCB Fight Factory, ARCW, Eureka Bath Works, Greenough's Guide, White River Cabins). Joseph's own brand (already has Wikidata Q138610626 and Q138610666 for MEGAMIND).

Common failure modes:

  1. Wikidata entity exists but has thin data and no references. Fix: add multiple references (verified URLs, news mentions, official documents) to every claim.
  2. Organization schema sameAs lists profiles that do not exist or have been deleted. Fix: audit all sameAs URLs quarterly.
  3. NAP inconsistencies across directories. Fix: standardize and audit per SEO-Search-Appearance.md section 10.6.
  4. Google Business Profile incomplete or unverified. Fix: complete every field, verify, and maintain.

Tracking:

  • Search the brand name. Knowledge Panel either appears or it does not.
  • Sample weekly during the construction phase to track when it first appears.
  • Once stable, monthly checks suffice.

9.6 Local Pack and Map Pack

What it is: the SERP feature showing a Google Maps embed plus three local business listings, each with name, photo, star rating, review count, address, hours, and a phone or directions action. On mobile, often only one result is visible with "see more" expansion. The Local Pack is also called the Map Pack, the 3 Pack, and the Local Finder.

Where it appears: triggered by queries with local intent, either explicit ("MMA gym Bentonville") or implicit ("MMA gym near me", "gas station"). Position varies but is typically near the top of the SERP, above most organic results.

Query intent that triggers it: local intent queries. The geographic modifier ("near me", a city name, a state name) and the category ("dentist", "MMA gym", "tax preparer") combine to trigger.

Eligibility: must have an active, verified Google Business Profile. Must be located within or actively serving the geographic area implied by the query. Service area businesses (no physical storefront) qualify but with limitations.

How to install:

Step 1. Claim and verify Google Business Profile.

  • Verify by postcard, phone, video, or instant verification (when eligible).
  • Cannot proceed until verification completes.

Step 2. Complete the profile:

  • Categories: primary category exact match for the most important service. Up to 9 secondary categories.
  • Name: legal business name, no keyword stuffing (Google penalizes this).
  • Address: physical address for storefront businesses. Service area businesses can hide the address while specifying service zones.
  • Hours: accurate including special hours for holidays.
  • Phone: tracked phone number routing to the business.
  • Website: primary domain, not a tracked URL.
  • Description: 750 character max, primary keyword in the first 250 characters, includes service area and unique value.
  • Photos: minimum 10, including exterior, interior, products, services, team, logo. Update monthly.
  • Attributes: relevant attributes (wheelchair accessible, women owned, veteran owned, by appointment only, etc.).
  • Services and Products: itemized list with descriptions and prices where appropriate.
  • Service area: defined precisely for service area businesses.

Step 3. Build LocalBusiness schema on the website:

  • Reference Appendix B 19.2 of this file.
  • Use the most specific subtype (HealthAndBeautyBusiness, ProfessionalService, MedicalClinic, etc.).
  • Address, geo (latitude and longitude), telephone, openingHoursSpecification, priceRange, image.
  • areaServed for service area businesses.

Step 4. Build NAP consistency:

  • Audit 10 plus major directories for matching name, address, phone format.
  • Standardize address format (123 Main St vs 123 Main Street vs 123 Main St., suite vs Suite vs Ste).
  • Use the same phone format everywhere (505.512.3662 or (505) 512-3662, pick one).

Step 5. Build review velocity:

  • Active review request system (post visit email, in person QR code, follow up text).
  • Respond to every review within 48 hours, both positive and negative.
  • Aim for 50 plus reviews with 4.5 plus average rating for competitive verticals.

Step 6. Publish Posts in GBP regularly:

  • Updates, offers, events, products.
  • Weekly minimum during active campaign periods.

Step 7. Use the Q and A feature:

  • Pre seed common questions and answer them yourself.
  • Monitor for new user submitted questions and answer within 24 hours.

Step 8. For multi location businesses, create a separate GBP for each location and link them via Organization schema.

Why install: Local Pack drives 25 to 33 percent combined CTR, with the top result often capturing 17 percent alone. Local Pack visibility is the single highest leverage SERP feature for local service businesses. A well optimized GBP can drive more direct phone calls than the website itself.

Do not install if: the business has no physical service area and operates entirely online. Pure e commerce, SaaS, and remote service businesses cannot meaningfully compete in Local Pack.

Best fit for portfolio: every local service business in the portfolio. TCB Fight Factory, ARCW, Eureka Bath Works, Greenough's Guide, White River Cabins, all local clients.

Common failure modes:

  1. Wrong primary category. Fix: research what category the top three competitors use and match the most relevant.
  2. Address inconsistency between GBP and website. Fix: align exactly, including punctuation.
  3. Review velocity stalled. Fix: implement a systematic review request workflow.
  4. Photos stale or generic. Fix: shoot or commission fresh photography quarterly.
  5. Service area too broad (a Cassville business listing service area as "the entire United States"). Fix: limit to actual served area; broad service area dilutes local relevance.
  6. Suspended profile due to policy violation (often around keyword stuffed name or fake address). Fix: remediate the violation, file reinstatement request through GBP support.

Tracking:

  • GBP Insights (now Performance) shows views, searches, calls, direction requests, and website clicks.
  • Manual weekly Local Pack position check for top 5 priority queries.
  • Local rank tracking tools: BrightLocal, LocalFalcon, GeoRanker.

9.7 Image Carousel

What it is: horizontal row of image thumbnails appearing inline in the SERP, often labeled "Images for [query]". Clicking an image opens it in Google Images interface.

Where it appears: typically in the middle of the SERP, sometimes at the top for visual queries. Triggered by queries with visual intent (product images, location photos, how to with visual steps, art, design).

Query intent that triggers it: visual queries. "Logo design", "wedding venue Bentonville", "tax form 1040", product queries, location queries.

Eligibility: images must be hosted on the site, accessible to Googlebot, and meet quality and licensing standards. Schema is not required for basic image carousel inclusion but improves visibility.

How to install:

Step 1. Ensure images are technically optimized:

  • Modern formats (WebP or AVIF) with PNG or JPEG fallback.
  • Width and height attributes on every img tag.
  • Descriptive filename in kebab case.
  • Descriptive alt text including relevant keyword in natural phrasing.
  • loading="lazy" on below the fold images.
  • decoding="async" on all images.
  • Reasonable file size (under 200KB for hero images, under 100KB for thumbnails).

Step 2. Add ImageObject schema for hero images:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "contentUrl": "https://example.com/assets/img/hero.webp",
  "name": "[Descriptive title]",
  "description": "[Description of the image content]",
  "creator": { "@type": "Organization", "name": "[Brand]" },
  "creditText": "[Brand]",
  "copyrightNotice": "© 2026 [Brand]",
  "license": "https://example.com/image-license/",
  "acquireLicensePage": "https://example.com/contact/"
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 3. Submit an image sitemap to GSC:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://example.com/page/</loc>
    <image:image>
      <image:loc>https://example.com/assets/img/hero.webp</image:loc>
      <image:title>[Descriptive title]</image:title>
      <image:caption>[Caption with keyword]</image:caption>
    </image:image>
  </url>
</urlset>
Enter fullscreen mode Exit fullscreen mode

Step 4. Reference each image multiple times across the site (in the page where it lives, in social shares, in the OG image meta tags).

Step 5. Build natural backlinks to image rich pages.

Why install: image carousel placement drives 1 to 15 percent CTR depending on query. For product queries, location queries, and visual how to queries, image presence is competitive table stakes.

Do not install if: the site has no genuine imagery (a pure text content site, a tools site without visual elements). Stock photos do not perform well in image carousels because they appear on hundreds of other sites.

Best fit for portfolio: Eureka Bath Works (product photography), TCB Fight Factory (action shots, training photos, facility), White River Cabins (property photos), Greenough's Guide (fishing trip photos), every local business with location and team photography.

Common failure modes:

  1. Generic stock photos used as hero images. Fix: shoot or commission original photography.
  2. Filenames like IMG_9374.png. Fix: rename to descriptive kebab case.
  3. Alt text either missing or keyword stuffed. Fix: descriptive natural language alt text.
  4. Slow image load times. Fix: WebP or AVIF, proper sizing, lazy loading.
  5. Images blocked by robots.txt or in /assets/ paths excluded from crawl. Fix: ensure crawler access.

Tracking:

  • GSC Performance report with Search type filtered to Image.
  • Image impressions and clicks reported separately from web search.

9.8 Video Carousel

What it is: horizontal row of video thumbnails, typically with title, source domain, duration, and upload date. Clicking opens the video either inline or on the source platform (YouTube, Vimeo, the host site).

Where it appears: middle of the SERP for queries with video intent. Heavy on how to queries, product reviews, entertainment queries.

Query intent that triggers it: how to with visual demonstration, product reviews, entertainment, education, demonstrations.

Eligibility: videos hosted on the site or YouTube with VideoObject schema and either a video sitemap or YouTube channel integration.

How to install:

Step 1. Choose hosting strategy. YouTube hosting is preferred for AI engine citation and Google's video search visibility. Self hosted is only preferred when DRM, paywall, or specific control requirements exist.

Step 2. Publish the video on YouTube:

  • Title with primary keyword in first 60 characters.
  • Description with primary keyword in first 150 characters, full topic coverage in 1500 plus characters.
  • Closed captions in the video file (auto generated then human edited).
  • Custom thumbnail with text overlay where appropriate.
  • Pinned comment with key call to action and link.
  • End screen and cards linking to other relevant content.

Step 3. Embed the video on a host page on the client site:

<div class="video-container">
  <iframe
    src="https://www.youtube.com/embed/VIDEO_ID"
    title="[Video Title]"
    frameborder="0"
    allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
    allowfullscreen
    loading="lazy"
  ></iframe>
</div>
Enter fullscreen mode Exit fullscreen mode

Step 4. Add VideoObject schema on the host page (reference Appendix B of this file):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VideoObject",
  "name": "[Video Title]",
  "description": "[Description matching YouTube description]",
  "thumbnailUrl": "https://i.ytimg.com/vi/VIDEO_ID/maxresdefault.jpg",
  "uploadDate": "2026-05-04T08:00:00-05:00",
  "duration": "PT5M30S",
  "embedUrl": "https://www.youtube.com/embed/VIDEO_ID",
  "publisher": { "@id": "https://example.com/#organization" }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 5. Publish a transcript on the host page:

  • Visible text in the page HTML (not just closed captions in the video file).
  • Properly formatted with paragraph breaks and timestamp markers.
  • Include the full spoken content, not a summary.

Step 6. Add hasPart array to VideoObject schema for chapter markers when the video has chapters:

"hasPart": [
  {
    "@type": "Clip",
    "name": "Introduction",
    "startOffset": 0,
    "endOffset": 60,
    "url": "https://www.youtube.com/watch?v=VIDEO_ID&t=0s"
  },
  {
    "@type": "Clip",
    "name": "Main Topic",
    "startOffset": 60,
    "endOffset": 240,
    "url": "https://www.youtube.com/watch?v=VIDEO_ID&t=60s"
  }
]
Enter fullscreen mode Exit fullscreen mode

Step 7. Submit a video sitemap to GSC.

Step 8. Build internal links to the host page from related content.

Why install: video carousel CTR is 8 to 18 percent. AI engines (especially Google AI Mode and ChatGPT) heavily favor video content for how to queries, citing YouTube videos at higher rates than text articles for the same query.

Do not install if: the client cannot commit to ongoing video production. A single video produces minimal sustained presence. Quarterly publishing is the realistic minimum for ongoing video carousel competition.

Best fit for portfolio: every client where video budget supports it. TCB Fight Factory training demonstrations, ARCW educational videos on counseling topics, White River Cabins property tours, Greenough's Guide fishing trip footage, Joseph's own channels for thatdeveloperguy.com and thataiguy.org.

Common failure modes:

  1. Self hosted video without VideoObject schema. Fix: add schema or migrate to YouTube.
  2. YouTube video without an associated host page on the client site. Fix: create a host page that embeds and contextualizes the video.
  3. No transcript published. Fix: publish the full transcript as visible text on the host page.
  4. Title and description too short or generic. Fix: rewrite for keyword targeting and audience clarity.

Tracking:

  • GSC Performance report with Search type filtered to Video.
  • YouTube Studio analytics.
  • Manual sampling of video carousel presence on priority queries.

9.9 Top Stories

What it is: carousel of news article thumbnails with publisher name, article title, and time since publication. Appears for news worthy queries.

Where it appears: typically near the top of the SERP for queries with news intent. Sometimes in the middle for queries that have a recent news angle.

Query intent that triggers it: breaking news queries, public figure queries during news events, business and finance queries during earnings or major events, sports during live events.

Eligibility: must be a registered news publisher in Google Publisher Center. Must publish original news content with consistent author bylines and editorial standards. Must meet Google News Content Policies including E E A T, transparency, and accountability standards.

How to install:

Step 1. Determine if the client qualifies as a news publisher.

  • Must publish original news reporting, not aggregation or rewrites.
  • Must have a clear editorial structure with named editors and writers.
  • Must have an accountability and corrections policy.
  • Must have transparent ownership and contact information.

Step 2. Apply to Google Publisher Center:

  • Submit publication details, content samples, editorial policy.
  • Review process can take weeks to months.
  • Approval grants eligibility, not guaranteed inclusion.

Step 3. Implement NewsArticle schema on every news article:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "NewsArticle",
  "headline": "[Article headline, under 110 characters]",
  "image": ["https://example.com/img/article-hero.jpg"],
  "datePublished": "2026-05-04T10:30:00-05:00",
  "dateModified": "2026-05-04T11:00:00-05:00",
  "author": {
    "@type": "Person",
    "name": "[Author Name]",
    "url": "https://example.com/team/[author-slug]/"
  },
  "publisher": { "@id": "https://example.com/#organization" },
  "description": "[Article summary]",
  "articleBody": "[Full article body]"
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 4. Submit a news sitemap (separate from regular sitemap):

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://example.com/news/article-slug/</loc>
    <news:news>
      <news:publication>
        <news:name>[Publication Name]</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-05-04T10:30:00-05:00</news:publication_date>
      <news:title>[Article Title]</news:title>
    </news:news>
  </url>
</urlset>
Enter fullscreen mode Exit fullscreen mode

Step 5. Maintain publication cadence: news publishers need consistent fresh content to maintain Top Stories eligibility.

Why install: Top Stories CTR is 12 to 22 percent. For breaking news queries, Top Stories is often the dominant SERP feature.

Do not install if: the client is not a genuine news publisher. The eligibility requirements are strict and Publisher Center approval is gatekept. Most of Joseph's client portfolio does not qualify.

Best fit for portfolio: none of Joseph's current clients are news publishers. Could become relevant if a client launches a news vertical or if Joseph builds a news property.

Common failure modes:

  1. Application rejected for thin content or aggregation. Fix: build genuine original reporting before reapplying.
  2. Approved but rarely surfaces in Top Stories. Fix: strengthen E E A T signals (author profiles, editorial policy, transparency pages), increase publication frequency.
  3. Schema missing or invalid. Fix: validate against NewsArticle requirements.

Tracking:

  • GSC Performance report with Search type filtered to News.
  • Publisher Center analytics.

9.10 Shopping Carousel

What it is: horizontal row of product listings with image, title, price, store name, star rating, and (for Merchant Listings) availability and shipping info. Appears for product queries and merchant queries.

Where it appears: at the top of the SERP for transactional product queries. Multiple Shopping carousels can appear on a single SERP for broad product queries.

Query intent that triggers it: transactional product queries. "Buy [product]", "[product] price", "[product] for sale", brand plus product queries.

Eligibility: for Merchant Listings (full Shopping carousel placement), Google Merchant Center account with approved feed required. For Product Snippets (lighter Shopping placement), only Product schema with offers required.

How to install (Merchant Listings):

Step 1. Set up Google Merchant Center:

  • Create account at https://merchants.google.com.
  • Verify and claim website ownership (uses GSC verification).
  • Configure shipping settings, return policy, tax, business info.
  • Submit product feed via supported method (manual upload, scheduled fetch, content API, or e commerce platform integration).

Step 2. Build Product schema on every product page (reference Appendix B 19.5 of SEO-Search-Appearance.md):

  • name, image, description, sku, gtin, brand, offers (with priceCurrency, price, availability, itemCondition, shippingDetails, hasMerchantReturnPolicy), aggregateRating where reviews exist.

Step 3. Ensure schema and feed match exactly:

  • Price on schema = price in feed = price visible on page.
  • Availability matches across all three.
  • Image URLs accessible to Googlebot.

Step 4. Submit feed for review and wait for approval.

Step 5. Monitor Merchant Center for warnings and disapprovals. Resolve issues promptly to maintain feed health.

How to install (Product Snippets only):

Step 1. Build Product schema on every product page with name, image, description, plus at least one of offers, review, or aggregateRating.

Step 2. Ensure schema reflects visible page content.

Step 3. Submit URL to GSC for re crawl.

Why install: Shopping carousel placement is the single highest leverage feature for e commerce sites. Each carousel listing earns 5 to 11 percent CTR, and multiple listings can stack from the same merchant. Without Shopping carousel placement, e commerce sites compete only in regular blue links below the carousel.

Do not install if: the business does not sell physical or digital goods. Service businesses, content publishers, and SaaS without a clear product purchase model do not qualify.

Best fit for portfolio: Eureka Bath Works (Karen's artisan body products) and Blue Paradise Dairy (Sara White's headless Shopify store). Future e commerce clients.

Common failure modes:

  1. Feed disapproved due to policy violations (misleading claims, restricted products, missing required fields). Fix: review Merchant Center diagnostics and resolve.
  2. Schema and feed price mismatch. Fix: align prices everywhere.
  3. Stale availability (schema shows InStock, page shows OutOfStock). Fix: implement automated stock sync.
  4. Missing GTIN or MPN for products that should have them. Fix: add identifiers.
  5. Image quality below threshold (low resolution, watermarks, generic placeholders). Fix: use high quality product photography on white or transparent background.

Tracking:

  • Merchant Center performance reports.
  • GSC Performance report under Shopping section.
  • Google Ads Shopping campaign data when running paid Shopping ads.

9.11 Sitelinks

What it is: additional links displayed beneath an organic result (typically the top result for a brand query), pointing to important internal pages. Can appear as up to 6 prominent sitelinks (large layout) or as 4 inline sitelinks (smaller layout).

Where it appears: beneath the top organic result on brand queries. Almost always on branded SERPs, less common on non branded SERPs.

Query intent that triggers it: primarily branded queries and queries where Google is highly confident about the dominant result.

Eligibility: sitelinks are auto generated by Google. There is no markup to request them directly. Eligibility comes from clean site architecture, strong internal linking, and clear page hierarchy.

How to install:

Step 1. Ensure clean site architecture:

  • Logical, shallow hierarchy (every important page within 3 clicks of homepage).
  • Descriptive page titles that clearly identify each page's purpose.
  • Consistent URL structure (no random parameter URLs in primary navigation).

Step 2. Strong internal linking:

  • Every important page has at least 3 inbound internal links.
  • Anchor text is descriptive and includes the target page's primary keyword.
  • Footer mega menu linking to top pillars (per SEO-Search-Appearance.md section 6.7).

Step 3. Implement BreadcrumbList schema on every page (reference Appendix B 19.7).

Step 4. Use the Search Console URL parameters tool (or robots.txt) to deindex thin or duplicate pages that should not appear as sitelinks.

Step 5. Demote unwanted sitelinks via the legacy Search Console interface if they appear (this feature is being deprecated; the alternative is to noindex or strengthen better candidate pages).

Step 6. Wait. Sitelinks emerge organically as Google develops confidence in the site structure. Typical timeline: 2 to 6 months after major architecture changes.

Why install: sitelinks add 10 to 25 percent CTR lift to the parent organic result. They also visually dominate branded SERP space, pushing competitors further down. They communicate brand strength and site quality to users.

Do not install if: N/A. This is an automatic feature that benefits every site. There is no install scenario.

Best fit for portfolio: every client. Universal target.

Common failure modes:

  1. Site architecture too flat or too deep. Fix: restructure to logical hierarchy with breadcrumbs.
  2. Important pages buried below the second level of navigation. Fix: surface key pages in primary nav and footer.
  3. Title tags duplicated across multiple pages. Fix: unique descriptive titles per page.
  4. Excessive parameter URLs in sitemap. Fix: canonicalize or noindex.

Tracking:

  • Sitelinks appearance is visible only by searching the brand name.
  • GSC Performance report does not separately track sitelinks (they roll into the parent result's metrics).
  • Manual weekly check of branded SERP sitelink presence.

9.12 Sitelinks Search Box

What it is: a search box embedded directly within the organic result for a strong branded query. Lets users search the site directly from the SERP. Was deprecated as a structured data feature in late 2024 (the schema markup is no longer required), but the feature itself still appears for some sites with strong site search functionality and brand recognition.

Where it appears: under the brand name organic result on highly recognized brand SERPs. Mostly desktop.

Query intent that triggers it: branded queries where Google has high confidence in the dominant result and detects a working site search.

Eligibility: strong branded query recognition, working site search at a discoverable URL, sufficient brand strength for Google to trust the search box placement.

How to install:

Step 1. Implement working site search at a clear URL pattern:

  • /search/?q={query} or /?s={query} (WordPress default) or /?search={query} are common patterns.
  • The search must return relevant results, not redirect to a third party search.

Step 2. Add WebSite schema with potentialAction (this remains a recommended best practice even though it no longer directly drives the feature):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "url": "https://example.com/",
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/search/?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 3. Build brand strength: complete the Knowledge Panel work in section 9.5, build earned media, maintain consistent branding across the web.

Step 4. Wait. The Sitelinks Search Box appears only for strongly recognized brands.

Why install: the feature pulls users directly from the SERP into your site search, bypassing the need for a click on the homepage and a second click to reach search. Drives qualified traffic to deeper pages.

Do not install if: the client is a brand new site with no brand recognition. The feature will not appear regardless of schema, so do not over invest in it.

Best fit for portfolio: clients with established brand recognition and deep content libraries. Most of Joseph's clients are too small to trigger this feature reliably.

Common failure modes:

  1. Site search URL pattern in schema does not match the actual working search URL. Fix: align exactly.
  2. Site search returns thin or irrelevant results. Fix: improve search functionality.
  3. Brand recognition insufficient. Fix: build authority over time.

Tracking:

  • Manual check on branded queries in desktop Google.

9.13 Twitter/X Carousel

What it is: carousel of recent posts from a verified X (formerly Twitter) account, typically the official account of the entity matching the query. Shows post text, posting time, engagement counts, and the X branding.

Where it appears: middle of the SERP on time sensitive queries, particularly for brands, public figures, and news topics where recent X activity is relevant.

Query intent that triggers it: branded queries for entities with active X presence, public figure queries, breaking news related queries.

Eligibility: verified X account (the gold or grey checkmark), active posting cadence, sufficient brand recognition for Google to associate the X account with the entity.

How to install:

Step 1. Maintain a verified X account for the brand or person.

  • Apply for verification via X's verification program.
  • Maintain consistent branding (handle, avatar, banner, bio matching the website).

Step 2. Link the X account from Organization schema sameAs (and Person schema sameAs for individuals).

Step 3. Post regularly. Cadence varies by industry but minimum 2 to 3 posts per week.

Step 4. Maintain engagement. Reply to mentions, engage with industry conversations, post original content.

Step 5. Cross link from website footer and contact pages with proper aria labels.

Why install: Twitter/X carousel reinforces brand authority on branded SERPs and surfaces recent business activity directly in search. Particularly effective for B2B brands, public figures, and time sensitive industries.

Do not install if: the client cannot commit to maintaining an active account. An inactive verified account looks worse than no account at all.

Best fit for portfolio: Joseph's own brands (thatdeveloperguy.com, thataiguy.org). B2B clients pursuing thought leadership. Public figures or named experts (Dr. Burton at ARCW).

Common failure modes:

  1. Account exists but is unverified. Fix: apply for verification.
  2. Inconsistent posting. Fix: establish editorial calendar.
  3. Account handle does not match brand. Fix: secure brand match handle when possible, otherwise document the variant clearly.

Tracking:

  • Manual check on branded SERP in mobile and desktop.
  • Track X account growth and engagement separately.

9.14 Reddit/Discussion Carousel

What it is: carousel of forum threads, predominantly from Reddit, but also Stack Exchange, Quora, and other discussion platforms. Shows thread title, subreddit or forum name, comment count, and time posted.

Where it appears: typically in the middle of the SERP, increasingly common since 2023 to 2024 as Google has actively boosted user generated discussion content. Particularly heavy on opinion queries, recommendation queries, and "best of" queries.

Query intent that triggers it: opinion queries ("best [X] reddit", "[X] vs [Y] reddit"), recommendation queries, troubleshooting queries, queries Google identifies as benefiting from authentic user perspectives.

Eligibility: the discussion content must exist on a recognized discussion platform with active engagement. Cannot be installed directly on the client's own site (unless the client maintains a recognized public forum like Stack Exchange or Discourse).

How to install (for getting cited in the carousel via Reddit):

Step 1. Identify relevant subreddits for the client's vertical.

Step 2. Establish authentic participation:

  • Comment helpfully on existing threads for 2 to 4 weeks before posting any branded content.
  • Build karma and credibility on the brand account or a personal account associated with the brand.

Step 3. Post substantive content:

  • Long form posts that answer common questions in the vertical.
  • Participate in discussions where the brand or service is genuinely relevant.
  • Disclose affiliation transparently per Reddit rules.

Step 4. Encourage organic discussion of the brand:

  • Customers and clients posting about positive experiences naturally.
  • Industry peers mentioning the brand in relevant threads.
  • Press and earned media coverage referenced in Reddit discussions.

Step 5. Monitor mentions. Tools like Brandwatch, Mention, Google Alerts can track Reddit mentions of the brand.

How to install (for hosting your own discussion carousel eligible content):

Step 1. Build a public forum on the client domain using a recognized platform (Discourse, Stack Exchange, or custom forum with DiscussionForumPosting schema per SEO-Search-Appearance.md section 8 reference).

Step 2. Implement DiscussionForumPosting schema on every thread.

Step 3. Build community engagement.

Step 4. Wait for Google to recognize and surface the forum content.

This second path is rarely viable for small business clients. Reddit participation is the practical strategy.

Why install: AI engines (especially Google AI Mode and ChatGPT) heavily cite Reddit content for opinion, recommendation, and troubleshooting queries. Reddit presence translates to AI engine citations indirectly.

Do not install if: the client cannot commit to authentic, ongoing participation. Drive by promotional posting violates Reddit rules and produces negative brand association.

Best fit for portfolio: any client where industry conversation happens on Reddit. Tech adjacent clients (thatdeveloperguy.com, thataiguy.org). Professional service clients where users discuss providers and approaches (counseling, fitness, tax preparation).

Common failure modes:

  1. Promotional only posting. Fix: 80 percent value driven content, 20 percent promotion.
  2. Brand account banned for spam. Fix: read subreddit rules carefully, follow Reddit's site wide rules.
  3. No engagement (posts get downvoted). Fix: improve quality, engage authentically, build credibility first.

Tracking:

  • Manual sampling of Reddit/Discussion carousel presence on priority queries.
  • Brand mention tracking tools.

9.15 Recipe Carousel

What it is: horizontal carousel of recipes with image, recipe title, source domain, star rating, prep time, and cook time. Appears for food related queries.

Where it appears: top or middle of the SERP for recipe queries.

Query intent that triggers it: explicit recipe queries ("lasagna recipe", "how to make sourdough"), food preparation queries, ingredient based queries ("recipes with chicken thighs").

Eligibility: Recipe schema on actual recipe pages with required and recommended properties. Recipe must be a complete recipe with ingredients and step by step instructions, not a casual mention or a restaurant menu item.

How to install:

Step 1. Build Recipe schema on every recipe page:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Recipe",
  "name": "[Recipe Name]",
  "image": ["https://example.com/recipes/[slug]/hero.jpg"],
  "description": "[Recipe description]",
  "recipeCategory": "[Main course, Dessert, etc.]",
  "recipeCuisine": "[Italian, Mexican, etc.]",
  "totalTime": "PT45M",
  "prepTime": "PT15M",
  "cookTime": "PT30M",
  "recipeYield": "4 servings",
  "recipeIngredient": [
    "1 cup flour",
    "2 large eggs",
    "1/2 tsp salt"
  ],
  "recipeInstructions": [
    {
      "@type": "HowToStep",
      "name": "Mix dry ingredients",
      "text": "Combine flour and salt in a large bowl.",
      "image": "https://example.com/recipes/[slug]/step-1.jpg"
    },
    {
      "@type": "HowToStep",
      "name": "Add wet ingredients",
      "text": "Whisk in eggs until smooth."
    }
  ],
  "nutrition": {
    "@type": "NutritionInformation",
    "calories": "350 calories",
    "carbohydrateContent": "45 g",
    "proteinContent": "12 g",
    "fatContent": "10 g"
  },
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.8",
    "reviewCount": "127"
  },
  "author": { "@id": "https://example.com/team/[author]/#person" },
  "datePublished": "2026-05-04T08:00:00-05:00",
  "video": {
    "@type": "VideoObject",
    "name": "[Video title]",
    "description": "[Video description]",
    "thumbnailUrl": "[Thumbnail URL]",
    "contentUrl": "[Video URL]",
    "uploadDate": "2026-05-04T08:00:00-05:00"
  }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 2. Ensure visible recipe content matches schema (ingredients listed, steps visible, photos shown).

Step 3. Add high quality hero photo. Recipe carousels are visually driven; poor photography means poor placement.

Step 4. Pair with a video walkthrough when possible. Video plus recipe schema combined boosts placement significantly.

Step 5. Build genuine reviews on the recipe page. Recipes with ratings appear above recipes without.

Step 6. Submit URL to GSC for re crawl.

Why install: for food publishers, Recipe schema is competitive table stakes. Without it, recipes are nearly invisible. With it, they can dominate recipe search.

Do not install if: the site is not a recipe publisher. Restaurant menus do not qualify (use Restaurant schema). Articles that mention food in passing do not qualify.

Best fit for portfolio: Blue Paradise Dairy if Sara publishes dairy related recipes alongside the headless Shopify store. None of the other current clients are recipe publishers.

Common failure modes:

  1. Recipe schema with missing required fields (no recipeIngredient or recipeInstructions array). Fix: add the required fields.
  2. Generic stock photos used as hero images. Fix: shoot original food photography.
  3. Reviews are fake or scraped. Fix: only include genuine first party reviews.
  4. Schema describes a different recipe than the visible page content. Fix: align exactly.

Tracking:

  • GSC Enhancement report for Recipes shows valid items and errors.
  • Manual sampling on recipe queries.

9.16 Event Pack

What it is: carousel or list of upcoming events with name, date, time, venue, and ticket link. Pulls from Event schema on web pages and from Google's events partner integrations.

Where it appears: top of SERP for event queries. Also appears in Google Maps for local events and on the Google Events vertical (google.com/events).

Query intent that triggers it: explicit event queries ("concerts in [city]", "[event name]"), category event queries ("comedy shows tonight"), upcoming event queries.

Eligibility: Event schema on a page describing a specific event with required properties. Event must be a genuine time bound activity, not a recurring service.

How to install:

Step 1. Build Event schema on the event page:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Event",
  "name": "[Event Name]",
  "startDate": "2026-06-15T19:00:00-05:00",
  "endDate": "2026-06-15T22:00:00-05:00",
  "eventStatus": "https://schema.org/EventScheduled",
  "eventAttendanceMode": "https://schema.org/OfflineEventAttendanceMode",
  "location": {
    "@type": "Place",
    "name": "[Venue Name]",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "123 Main St",
      "addressLocality": "Cassville",
      "addressRegion": "MO",
      "postalCode": "65625",
      "addressCountry": "US"
    }
  },
  "image": ["https://example.com/events/[slug]/hero.jpg"],
  "description": "[Event description]",
  "offers": {
    "@type": "Offer",
    "url": "https://example.com/events/[slug]/tickets",
    "price": "25.00",
    "priceCurrency": "USD",
    "availability": "https://schema.org/InStock",
    "validFrom": "2026-04-01T00:00:00-05:00"
  },
  "performer": {
    "@type": "Person",
    "name": "[Performer Name]"
  },
  "organizer": {
    "@type": "Organization",
    "name": "[Organizer]",
    "url": "https://example.com/"
  }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 2. Use the appropriate Event subtype where applicable (BusinessEvent, MusicEvent, SportsEvent, EducationEvent, etc.).

Step 3. For virtual or hybrid events, set eventAttendanceMode appropriately and provide the virtual location URL.

Step 4. Update or remove schema after the event ends. Past events with stale schema can produce SERP errors.

Step 5. List events on Eventbrite or other Google partner platforms when relevant. Google ingests data from these platforms in addition to direct schema.

Step 6. Submit URL to GSC for re crawl.

Why install: Event Pack placement bypasses standard organic ranking entirely and drives qualified attendance traffic. For event businesses, this is often the dominant traffic source.

Do not install if: the page describes a recurring service rather than a specific dated event. Do not install on standard business hours pages.

Best fit for portfolio: TCB Fight Factory tournaments and seminars. Fighting Chance nonprofit fundraisers and community events. Greenough's Guide special fishing events. Any client running workshops, conferences, or recurring scheduled events.

Common failure modes:

  1. Event schema present but the event date has passed. Fix: remove schema or update for next instance.
  2. Generic location instead of specific venue. Fix: provide full PostalAddress.
  3. No offers (price and ticket URL) declared. Fix: add Offer with price and validFrom.
  4. Past events not properly archived. Fix: implement archive system that preserves the page but updates eventStatus.

Tracking:

  • GSC Enhancement report for Events.
  • Manual sampling on event queries.

9.17 Job Pack (Google for Jobs)

What it is: Google for Jobs is a dedicated job search interface that aggregates listings from across the web. The Job Pack on a regular SERP shows 2 to 4 job listings with title, company, location, and posting date, with a link to expand into the full Google for Jobs interface.

Where it appears: top of SERP for employment intent queries.

Query intent that triggers it: explicit job queries ("[job title] jobs", "[job title] in [city]", "[company] careers", "remote [job title] jobs").

Eligibility: JobPosting schema on each job page with all required properties.

How to install:

Step 1. Build JobPosting schema on every open position:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "JobPosting",
  "title": "[Job Title]",
  "description": "[Full job description, HTML formatted]",
  "datePosted": "2026-05-04",
  "validThrough": "2026-06-30T23:59:00-05:00",
  "employmentType": "FULL_TIME",
  "hiringOrganization": {
    "@type": "Organization",
    "name": "[Company Name]",
    "sameAs": "https://example.com/",
    "logo": "https://example.com/logo.png"
  },
  "jobLocation": {
    "@type": "Place",
    "address": {
      "@type": "PostalAddress",
      "streetAddress": "123 Main St",
      "addressLocality": "Cassville",
      "addressRegion": "MO",
      "postalCode": "65625",
      "addressCountry": "US"
    }
  },
  "baseSalary": {
    "@type": "MonetaryAmount",
    "currency": "USD",
    "value": {
      "@type": "QuantitativeValue",
      "minValue": 50000,
      "maxValue": 70000,
      "unitText": "YEAR"
    }
  }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 2. For remote roles, replace jobLocation with applicantLocationRequirements:

"jobLocationType": "TELECOMMUTE",
"applicantLocationRequirements": {
  "@type": "Country",
  "name": "USA"
}
Enter fullscreen mode Exit fullscreen mode

Step 3. List the job description as full text on the page (not just in schema). Description should be detailed and authentic.

Step 4. Use validThrough to set an expiration date. When a role is filled, mark with validThrough in the past or remove the JobPosting schema entirely.

Step 5. For closed jobs, do not delete the page silently. Either:

  • Update validThrough to past date and add a notice that the position is filled.
  • 301 redirect to the careers page.
  • Maintain a "filled positions" archive.

Step 6. Submit URL to GSC for re crawl. Google for Jobs typically picks up new listings within 24 to 48 hours.

Why install: Google for Jobs dominates job search queries. Without JobPosting schema, openings will not appear there at all. For companies that want to bypass paid job board fees, this is essential.

Do not install if: the page is a generic careers landing page that does not describe specific open positions. Do not install on a recruiter or staffing agency page advertising someone else's positions unless the schema clearly identifies the actual hiring organization.

Best fit for portfolio: any client actively hiring. Fighting Chance nonprofit when staffing up. Multi employee clients posting seasonal or growth roles.

Critical metric caveat: GSC reports inflated click numbers for Google for Jobs because it counts both "view job listing" and "view job details" as clicks, but only "view job details" actually sends traffic to the site. Read metrics with this distortion in mind.

Common failure modes:

  1. Stale postings (job filled but schema still active). Fix: maintain validThrough discipline.
  2. Missing required fields (no datePosted, no hiringOrganization). Fix: add all required fields.
  3. Description is a marketing pitch instead of a real job description. Fix: write a legitimate job description.
  4. Salary range omitted. Fix: include baseSalary; transparent salary listings perform better.
  5. Spam or ghost listings. Fix: only post legitimate open positions; Google filters spam.

Tracking:

  • GSC Enhancement report for Job postings.
  • Google for Jobs has separate reporting through the Indexing API for high volume publishers.

9.18 Hotel Pack

What it is: carousel of hotel listings with photo, name, star rating, price per night, and amenity icons. Appears for accommodation queries.

Where it appears: top of SERP for hotel queries. Also feeds Google Hotels (google.com/travel/hotels).

Query intent that triggers it: "hotels in [city]", "[city] hotels", "best hotels [area]", brand hotel queries.

Eligibility: Hotel schema (or subtype) plus typically Google Hotel Center integration for prices and booking. Hotel Center is separate from Merchant Center and requires a hotel feed.

How to install:

Step 1. Build Hotel schema (or appropriate subtype: Resort, Motel, BedAndBreakfast):

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "Hotel",
  "name": "[Hotel Name]",
  "image": ["https://example.com/img/hotel-exterior.jpg"],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "123 Main St",
    "addressLocality": "Cassville",
    "addressRegion": "MO",
    "postalCode": "65625",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 36.6781,
    "longitude": -93.8722
  },
  "telephone": "+1-555-555-5555",
  "url": "https://example.com/",
  "priceRange": "$$",
  "starRating": {
    "@type": "Rating",
    "ratingValue": "4"
  },
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "Free WiFi", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Pool", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Pet friendly", "value": true }
  ],
  "checkinTime": "15:00",
  "checkoutTime": "11:00"
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 2. Apply for Google Hotel Center to enable prices and direct booking.

Step 3. Submit hotel feed via Hotel Center.

Step 4. Maintain feed accuracy: prices, availability, room types must match what users see when they click through.

Why install: Hotel Pack is the dominant feature for accommodation queries. Without schema and Hotel Center, hotels compete only in regular blue links below the pack.

Do not install if: the property is a vacation rental or short term rental. Use VacationRental schema instead.

Best fit for portfolio: none of Joseph's current clients are hotels. White River Cabins is a vacation rental.

Common failure modes:

  1. Hotel Center feed accuracy issues. Fix: implement automated feed sync with the property management system.
  2. Schema describes amenities not actually offered. Fix: align schema with reality.
  3. Wrong subtype (Hotel for what is actually a vacation rental). Fix: use the correct schema type.

Tracking:

  • Hotel Center performance analytics.
  • Manual sampling on hotel queries.

9.19 Vacation Rental Pack

What it is: carousel of short term rental properties with photo, property name, location, star rating, and nightly price. Separate feature from Hotel Pack.

Where it appears: SERP for vacation rental queries, plus Google Vacation Rentals interface.

Query intent that triggers it: "vacation rentals in [area]", "cabins in [region]", "Airbnb [area]" (though Airbnb itself is a separate platform), brand cabin or rental property queries.

Eligibility: VacationRental schema on each property page with required properties. For prices to show, integration with Google Vacation Rentals partner program required (similar to Hotel Center but for short term rentals).

How to install:

Step 1. Build VacationRental schema on each property:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "VacationRental",
  "name": "[Property Name]",
  "image": [
    "https://example.com/img/property-exterior.jpg",
    "https://example.com/img/property-interior-1.jpg",
    "https://example.com/img/property-bedroom.jpg"
  ],
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "[Street]",
    "addressLocality": "[City]",
    "addressRegion": "[State]",
    "postalCode": "[ZIP]",
    "addressCountry": "US"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 36.0,
    "longitude": -93.0
  },
  "description": "[Property description]",
  "occupancy": {
    "@type": "QuantitativeValue",
    "value": 6
  },
  "numberOfRooms": 4,
  "numberOfBedrooms": 2,
  "numberOfBathroomsTotal": 1.5,
  "amenityFeature": [
    { "@type": "LocationFeatureSpecification", "name": "WiFi", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Hot tub", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Kitchen", "value": true },
    { "@type": "LocationFeatureSpecification", "name": "Pet friendly", "value": true }
  ],
  "checkinTime": "16:00",
  "checkoutTime": "10:00",
  "identifier": "PROPERTY-001",
  "aggregateRating": {
    "@type": "AggregateRating",
    "ratingValue": "4.9",
    "reviewCount": "87"
  }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 2. Pair with explicit pricing visible on the booking widget.

Step 3. Integrate with the booking system (OwnerRez, Hospitable, Lodgify) so dates and prices stay synchronized.

Step 4. For aggregator sites (multiple properties), use ItemList plus VacationRental for each property.

Why install: Vacation Rental Pack drives qualified booking traffic. For a property without aggregator dependency (Airbnb, VRBO), Pack visibility is the dominant direct booking source.

Do not install if: the property is a hotel (use Hotel schema). Do not install on a travel blog about vacation rentals.

Best fit for portfolio: White River Cabins (Art and Amy) is a perfect fit. Pair with the existing OwnerRez integration.

Common failure modes:

  1. Identical schema across multiple unique properties. Fix: each property gets distinct VacationRental schema.
  2. Photos low quality or generic. Fix: high quality property photography is essential.
  3. Booking widget price does not match schema. Fix: dynamic schema generation tied to booking system.

Tracking:

  • Manual sampling on vacation rental queries.
  • Booking system analytics for direct booking rate.

9.20 Flight Results

What it is: Google Flights interface, accessed via the SERP for flight related queries. Shows flight options with airline, times, prices, and direct booking.

Where it appears: top of SERP for flight queries. Also at google.com/travel/flights.

Query intent that triggers it: "flights from [origin] to [destination]", "[airline] flights", "cheap flights", date specific flight queries.

Eligibility: Google Flights is dominated by airline direct integration and major OTAs (online travel agencies). Schema based path is limited.

How to install: for the vast majority of clients, this feature is not directly targetable. Airlines integrate directly with Google Flights via partnerships. OTAs aggregate and feed data.

Why install: N/A for typical agency clients.

Do not install if: the client is not an airline, an OTA, or an airline partner.

Best fit for portfolio: none. Skip entirely.

Tracking: N/A.


9.21 Finance Module

What it is: stock and financial data module showing current price, day change, chart, and key statistics. Pulls from Google Finance and integrated data providers.

Where it appears: top of SERP for stock ticker queries, public company queries, currency queries, cryptocurrency queries.

Query intent that triggers it: "[ticker] stock", "[company] stock price", "[currency1] to [currency2]", "[crypto] price".

Eligibility: integrated data providers (NYSE, NASDAQ, Bloomberg partner feeds). Direct schema based path is not viable for ordinary sites.

How to install: for the vast majority of clients, this feature is not targetable. Public companies appear automatically when their ticker is searched. Financial data providers integrate via partnerships.

Why install: N/A for typical agency clients.

Do not install if: the client is not a publicly traded company, financial data provider, or brokerage with partner integration.

Best fit for portfolio: none. Skip entirely.

Tracking: N/A.


9.22 Sports Module

What it is: sports results, live scores, schedule, standings, and team or player information module.

Where it appears: top of SERP for sports queries.

Query intent that triggers it: team queries, player queries, league queries, score queries, schedule queries.

Eligibility: integrated sports data partnerships. Schema based path limited to local sports teams and minor sports leagues that can register with Google.

How to install: for major sports queries, this feature is not directly targetable. For local or amateur sports leagues, SportsTeam schema and SportsEvent schema can produce limited surface area.

Why install: N/A for most agency clients. Local sports leagues and martial arts events can benefit from SportsEvent schema for tournament discoverability.

Do not install if: the client is not in sports.

Best fit for portfolio: TCB Fight Factory tournaments would benefit from SportsEvent schema (a subtype of Event), though they will not appear in the major Sports Module. Use Event Pack approach instead (section 9.16).

Tracking: N/A for typical clients.


9.23 Translation Box

What it is: Google Translate interface embedded in the SERP for translation queries.

Where it appears: top of SERP for translation queries.

Query intent that triggers it: "[word] in [language]", "translate [text]", "[language1] to [language2]".

Eligibility: powered exclusively by Google Translate. No third party participation.

How to install: N/A. The feature is a Google product.

Why install: N/A.

Do not install if: ever.

Best fit for portfolio: none. Skip entirely.

Tracking: N/A.


9.24 Definition Box and Calculator

What it is: dictionary definition box (for "define X" queries) or calculator interface (for math queries). Pulls from Google's dictionary partners (Oxford Languages) and Google's own calculator.

Where it appears: top of SERP for definition and calculation queries.

Query intent that triggers it: "define [word]", "what does [word] mean", math expressions, unit conversions.

Eligibility: powered by Google's integrated partners. No third party participation in the box itself.

How to install: for definitions, the box is locked to Oxford Languages. For calculators, only Google's built in calculator and integrated specialized calculators (like Wolfram Alpha for advanced math) appear.

For specialized calculator sites that want to compete in the regular results below the calculator box, use proper schema (SoftwareApplication or WebApplication) and clear functional calculator interfaces.

Why install: N/A for the box itself.

Do not install if: ever (for the box).

Best fit for portfolio: none. Skip entirely.

Tracking: N/A.


9.25 Direct Answer Box (Weather, Time, Conversions)

What it is: direct answer interface for queries with a single deterministic answer. Weather (powered by The Weather Channel and others), time and time zones, unit conversions, and similar utility answers.

Where it appears: top of SERP for utility queries.

Query intent that triggers it: "weather [city]", "time in [city]", "[number] [unit] to [unit]", "calendar [year]".

Eligibility: integrated data partners.

How to install: N/A for ordinary sites.

Why install: N/A.

Do not install if: ever.

Best fit for portfolio: none. Skip entirely.

Tracking: N/A.


9.26 Related Searches

What it is: suggestions at the bottom of the SERP showing related queries the user might also want to search. Typically 8 to 12 suggestions in a grid layout.

Where it appears: bottom of every SERP, before the pagination.

Query intent that triggers it: every query has Related Searches.

Eligibility: Related Searches are Google generated based on query co occurrence patterns and user behavior. There is no direct schema or markup that controls them.

How to install: indirect strategy only:

Step 1. Build content covering the related search queries that appear for your priority queries. Each related search becomes a candidate cluster page topic.

Step 2. Strong internal linking between content covering the head term and content covering related searches. This signals topical relationship to Google.

Step 3. Win the head term and cluster page rankings. As Google sees the same domain ranking for multiple related queries, it reinforces the topical association.

Step 4. Brand presence in related searches: when users add the brand name to other queries enough, Google starts including "[brand] [query]" in related searches. Build brand recognition through earned media and consistent branded search volume.

Why install: Related Searches drive next query traffic. A user who clicks a related search after viewing your content is highly qualified. Branded related searches reinforce brand authority.

Do not install if: N/A. This is an automatic feature.

Best fit for portfolio: every client benefits. Universal target.

Common failure modes:

  1. No related search visibility because brand or content is too thin. Fix: build content depth and brand recognition over time.

Tracking:

  • Manual check on priority SERPs.
  • Note appearance of brand or related queries that include the brand.

9.27 Refinement Bubbles (Filter Chips)

What it is: filter chips at the top of the SERP that let users refine their query along common dimensions. For example, a query for "BJJ gym" might show chips for "near me", "for beginners", "with classes", "open now". Clicking a chip refines the SERP along that dimension.

Where it appears: at the top of many SERPs, particularly for queries with clear category dimensions.

Query intent that triggers it: category queries with multiple common refinement axes. Local service queries, product queries, and content queries with sub categories.

Eligibility: refinement bubbles are Google generated based on query patterns and entity attributes. No direct markup controls them.

How to install: indirect strategy:

Step 1. Identify the refinement chips that appear on priority queries.

Step 2. Build content or services that match each chip dimension. If "BJJ gym for beginners" is a chip, ensure the client has clear beginner content and service offerings.

Step 3. Use schema attributes that align with refinement dimensions. LocalBusiness has attributes like wheelchair accessible, women owned, by appointment only. These attributes feed refinement chips.

Step 4. Maintain Google Business Profile attributes accurately. The attributes there directly drive Local Pack refinement chips.

Why install: when a user clicks a refinement chip, the resulting SERP is filtered. Sites that match the filter dimension move up dramatically. Refinement bubble visibility translates to filtered SERP visibility.

Do not install if: N/A. Automatic feature.

Best fit for portfolio: every local service business benefits from accurate GBP attributes. Every product seller benefits from rich product attributes.

Common failure modes:

  1. GBP attributes incomplete or inaccurate. Fix: complete every attribute that applies.
  2. Schema attributes generic. Fix: use specific attribute values.

Tracking:

  • Manual check of which chips appear on priority SERPs.
  • Test what happens to client visibility when each chip is clicked.

9.28 Site Names and Favicons

What it is: the brand identity layer of every search result. The site name appears above the URL in the result (e.g., "TCB Fight Factory" rather than "tcbfightfactory.com"). The favicon is the small icon next to the result on mobile (and increasingly on desktop). Together they form the visual brand presence in every search result.

Where it appears: on every result the site appears in. Mobile prominent. Desktop expanding.

Query intent that triggers it: every query.

Eligibility: every site is eligible. Display correctness depends on configuration.

How to install:

Step 1. Set the site name correctly via schema. WebSite schema with name property:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://example.com/#website",
  "url": "https://example.com/",
  "name": "[Brand Name]",
  "alternateName": "[Brand Alternate Name]",
  "publisher": { "@id": "https://example.com/#organization" }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Step 2. Ensure consistent brand naming across:

  • Page titles (use the same brand name pattern: "Page Title | Brand Name").
  • Open Graph site_name property.
  • Schema name properties.
  • Footer.
  • Email signature.

Step 3. Provide a high quality favicon:

  • 48x48 pixel minimum, ideally 96x96 or 192x192 for high DPI displays.
  • Square aspect ratio.
  • Clear at small sizes (avoid intricate details).
  • Consistent with brand colors.

Step 4. Reference the favicon in HTML head:

<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
Enter fullscreen mode Exit fullscreen mode

Step 5. Validate favicon shows up correctly:

  • Use the Favicon Test in Google's documentation.
  • Check on mobile and desktop after a few days for rendered favicon.

Step 6. If site name is showing incorrectly (Google sometimes uses the domain name instead), strengthen brand signals via Knowledge Panel work and consistent schema.

Why install: site name and favicon are the most basic brand visibility levers in every search result. Incorrect site names make every result feel anonymous or untrusted. Missing favicons miss the visual recognition opportunity.

Do not install if: N/A. Universal target.

Best fit for portfolio: every client. Every client should have correct site name and favicon.

Common failure modes:

  1. Google displays the domain name instead of the brand name. Fix: strengthen WebSite schema, page titles, and Open Graph site_name. Build brand recognition.
  2. Favicon missing on mobile. Fix: provide 48x48 or larger favicon and reference from HTML head.
  3. Favicon low quality. Fix: provide higher resolution version.
  4. Favicon does not match brand colors. Fix: align with brand identity.

Tracking:

  • Manual check on mobile and desktop of branded SERP.
  • Verify favicon appears next to organic result.

9.29 Indented Results

What it is: when multiple results from the same domain appear consecutively in the SERP, Google sometimes groups them with the second and subsequent results indented under the first. Visually communicates site authority on the topic.

Where it appears: organic results section when a single domain has multiple highly relevant pages for the same query.

Query intent that triggers it: queries where multiple pages from the same site are equally relevant. Often comparison queries, head term queries with strong cluster support, or queries answered by multiple complementary pages.

Eligibility: automatic. Google generates indented results when site authority and relevance support multiple results.

How to install: indirect strategy:

Step 1. Build genuine cluster page architecture per SEO-Search-Appearance.md Phase 2. Multiple high quality pages on closely related topics increase the chance of indented results.

Step 2. Strong internal linking between cluster pages signals their relationship.

Step 3. Differentiated angles on each cluster page (not duplicate content). Indented results require Google to see each page as adding distinct value.

Step 4. Wait. Indented results emerge organically when the conditions are met.

Why install: indented results take more SERP real estate than a single result. The combined SERP presence drives more brand visibility and clicks across the cluster.

Do not install if: N/A. Automatic feature.

Best fit for portfolio: clients with strong cluster page architecture (any site that has completed SEO-Search-Appearance.md Phase 2 successfully).

Common failure modes:

  1. Cluster pages too similar (cannibalization). Fix: differentiate angles per Phase 2 cannibalization remediation.
  2. Cluster too thin (only 2 to 3 cluster pages, not enough to trigger indented grouping). Fix: expand cluster.

Tracking:

  • Manual check on priority queries.
  • Note when indented results appear.

9.30 Paid Ads (Sponsored Slots)

What it is: paid Google Ads placements at the top and bottom of the SERP. Up to 4 slots above organic results, up to 3 slots below. Labeled "Sponsored". Includes Search ads (text), Shopping ads (product images and prices), Local Service Ads (for select verticals), and Display ads when running.

Where it appears: top and bottom of SERP. Mobile dominant: paid ads above the fold push organic results entirely off the first screen on many queries.

Query intent that triggers it: every query is biddable. Highest CPCs on transactional queries with clear commercial intent.

Eligibility: active Google Ads account with billing configured. For Local Service Ads, additional vertical specific verification (background check, license verification) required.

How to install:

Step 1. Set up Google Ads account at https://ads.google.com.

Step 2. Configure billing and set daily and campaign budgets aligned with client tier.

Step 3. Build campaign structure aligned with the keyword to page map from SEO-Search-Appearance.md:

  • One campaign per pillar topic.
  • Ad groups per cluster topic.
  • 5 to 10 ads per ad group with rotation.
  • Negative keywords to filter irrelevant traffic.

Step 4. Build ads with strong copy:

  • Headlines (up to 15, with at least 3 strong default headlines).
  • Descriptions (up to 4).
  • Pinned headlines for the brand name and primary value proposition.
  • Strong call to action.

Step 5. Build ad extensions:

  • Sitelink extensions (4 to 6).
  • Callout extensions (4 to 6).
  • Structured snippet extensions.
  • Call extension (with tracked phone number).
  • Location extension (linked to GBP).
  • Lead form extension (for lead gen).

Step 6. Implement conversion tracking:

  • Google Ads conversion tag on thank you pages.
  • Phone call tracking.
  • Form submission tracking.
  • Imported GA4 conversions.

Step 7. For Local Service Ads (LSA):

  • Verify business eligibility for LSA in the relevant vertical (home services, legal, healthcare).
  • Complete background check.
  • Verify license.
  • Set service area, hours, and budget.

Step 8. Monitor and optimize:

  • Daily budget pacing.
  • Quality Score per keyword.
  • Conversion rate per ad group.
  • Negative keyword expansion.
  • Ad copy A/B testing.

Why install: paid ads are guaranteed top of SERP placement, bypassing the wait for organic ranking. CTR is 6 to 10 percent for top sponsored slots. For high commercial intent queries, paid ads are often the fastest path to qualified traffic.

Do not install if: the client tier or monthly budget cannot support meaningful spend. Sub $500 per month ad budgets often struggle to gather enough data to optimize. The framework recommends paid ads only when the client has at least $1,500 monthly ad spend committed.

Best fit for portfolio: clients ready to scale beyond organic only. Paid ads complement organic SEO; they should not replace it. Joseph's typical recommendation is organic SEO first, paid ads layered on for clients with the budget.

Common failure modes:

  1. Broad match keywords without negatives. Fix: use phrase or exact match, build negative keyword lists.
  2. Single ad per ad group (no rotation testing). Fix: 5 to 10 ads per ad group with responsive search ad format.
  3. Landing page mismatch with ad copy. Fix: dedicated landing pages or strong message match on existing pages.
  4. No conversion tracking. Fix: implement before launching.
  5. Manual bidding without enough data. Fix: use Smart Bidding strategies (Target CPA, Maximize Conversions) once 30 plus conversions are gathered.
  6. Ignoring Quality Score. Fix: improve relevance, expected CTR, and landing page experience.

Tracking:

  • Google Ads dashboard with daily, weekly, monthly views.
  • Conversion data via Google Ads conversions and GA4.
  • Search terms report to identify negative keywords and new opportunities.

10. SERP Feature Matrix by Vertical

This matrix maps the 30 features to common verticals so an agent can quickly assess which features apply to a given client. Y means typically TARGET, M means MAYBE, S means typically SKIP, N/A means not applicable.

Feature Local Service E commerce Healthcare Legal Finance News Education Hospitality Real Estate B2B SaaS Restaurant Recipe Blog Content Publisher Nonprofit
AI Overview Y Y Y Y Y Y Y Y Y Y Y Y Y Y
AI Mode Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Featured Snippet Y M Y Y Y Y Y M Y Y M Y Y Y
People Also Ask Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Knowledge Panel Y M Y Y M Y Y Y M Y Y M Y Y
Local Pack Y M Y Y M S Y Y Y S Y S S Y
Image Carousel M Y M M S M M Y Y M Y Y M M
Video Carousel Y Y Y Y M Y Y Y M Y M Y Y M
Top Stories S S M S S Y S S S M S S M M
Shopping Carousel S Y S S S S M S S M S S S S
Sitelinks Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Sitelinks Search Box M M M M M Y Y M M M S Y Y M
Twitter/X Carousel M M M M M Y Y M M Y M M Y Y
Reddit/Discussion M M M S M Y Y M M Y M Y Y M
Recipe Carousel S M S S S S S S S S S Y M S
Event Pack M S M M M S Y Y S M M S M Y
Job Pack M M M M M M M M M Y M S M Y
Hotel Pack S S S S S S S Y S S S S S S
Vacation Rental Pack S S S S S S S Y M S S S S S
Flight Results N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Finance Module N/A N/A N/A N/A M M N/A N/A N/A N/A N/A N/A N/A N/A
Sports Module N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Translation Box N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Definition or Calculator N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Direct Answer Box N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A N/A
Related Searches Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Refinement Bubbles Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Site Name and Favicon Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Indented Results M M M M M Y Y M M Y M Y Y M
Paid Ads M Y M Y Y M M Y Y Y M M M M

For Joseph's specific portfolio, here is the recommended TARGET set per known client:

TCB Fight Factory (Local Service): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Image Carousel, Video Carousel, Sitelinks, Site Name and Favicon, Related Searches, Event Pack (for tournaments).

ARCW (Dr. Burton, Counseling) (Healthcare, YMYL): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Video Carousel, Sitelinks, Site Name and Favicon, FAQ rich result eligible due to YMYL health vertical.

handledtax.com (Amanda) (Local Service plus content): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Sitelinks, Site Name and Favicon, Profile Pages for Amanda.

Eureka Bath Works (Karen) (E commerce): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Image Carousel, Video Carousel, Shopping Carousel, Sitelinks, Site Name and Favicon, Review Snippets.

White River Cabins (Art and Amy) (Hospitality): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Image Carousel, Video Carousel, Vacation Rental Pack, Sitelinks, Site Name and Favicon.

Greenough's Guide Service (Keith) (Local Service): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Image Carousel, Video Carousel, Sitelinks, Site Name and Favicon.

thatdeveloperguy.com (B2B SaaS adjacent, Content Publisher): AI Overview, AI Mode, Featured Snippet, PAA, Knowledge Panel, Local Pack, Image Carousel, Video Carousel, Sitelinks, Sitelinks Search Box, Twitter/X Carousel, Reddit/Discussion, Site Name and Favicon, Related Searches, Indented Results.


11. SERP Feature Audit (60 plus criteria)

Purpose: evaluate any site against the 30 SERP features using a structured criterion list. Output: PASS, PARTIAL, FAIL, or N/A on each criterion plus remediation steps.

11.1 When to Run the SERP Audit

  • Initial engagement to establish baseline SERP feature presence.
  • Quarterly health check on retainer clients.
  • Post Google core update verification (March, July, October, December cadence).
  • Pre handoff QA after a SERP optimization sprint.
  • Any time GSC shows a sudden drop in impressions or features lost.

11.2 Audit Inputs

Required:

  • Domain to audit.
  • GSC access (read minimum).
  • 30 to 50 priority queries from SEO-Search-Appearance.md keyword to page map.
  • Phase 1 audit results from section 5.

Optional but improves audit quality:

  • Bing Webmaster Tools access.
  • GBP access.
  • Merchant Center access (for e commerce clients).
  • Hotel Center, Publisher Center access (where applicable).
  • Server access for log analysis.

11.3 The Audit Criteria

Organized by feature. Each criterion produces PASS, PARTIAL, FAIL, or N/A.

AI Overview Audit (5 criteria)

AO1. Lede paragraph (40 to 60 words, primary keyword in first sentence) on every priority page.
AO2. All H2s on priority pages phrased as questions matching sub queries.
AO3. Information gain element (original data, framework, case study) in first 30 percent of priority pages.
AO4. Article schema with author Person reference and accurate dateModified on every priority page.
AO5. Manual sample of top 10 priority queries shows AI Overview citation rate of 20 percent or higher.

AI Mode Audit (4 criteria)

AM1. Pillar and cluster architecture documented and 70 plus percent fan out coverage achieved.
AM2. Wikidata Q ID exists and is linked from Organization schema sameAs.
AM3. ProfilePage schema implemented for all author bios.
AM4. Manual sample of top 10 priority queries in AI Mode shows citation rate of 15 percent or higher.

Featured Snippet Audit (4 criteria)

FS1. Pages targeting featured snippet queries rank in top 10 organic.
FS2. Snippet candidate content (paragraph, list, or table) in first 30 percent of page.
FS3. Format matches query type (paragraph for definitional, list for how to, table for comparison).
FS4. Manual sample of top 10 priority informational queries shows snippet ownership of 30 percent or higher when AI Overview is absent.

People Also Ask Audit (3 criteria)

PAA1. Sub query fan out has been generated for every pillar.
PAA2. Each PAA captured question maps to a target page with H2 question phrasing.
PAA3. Manual sample shows client appears in PAA for 30 percent of priority queries.

Knowledge Panel Audit (5 criteria)

KP1. Wikidata entity exists with at least 10 properties and 5 references.
KP2. Organization schema includes complete sameAs (minimum 5 platforms plus Wikidata).
KP3. Google Business Profile complete and verified (for local businesses).
KP4. NAP consistency verified across at least 10 directories.
KP5. Knowledge Panel appears for branded query.

Local Pack Audit (8 criteria)

LP1. Google Business Profile claimed and verified.
LP2. Primary category matches client's main service.
LP3. All GBP fields populated (hours, photos, services, attributes).
LP4. LocalBusiness schema (or appropriate subtype) implemented on website.
LP5. NAP exactly matches between GBP, schema, and website.
LP6. Review velocity is at least 1 per month.
LP7. Review response rate is 90 plus percent within 48 hours.
LP8. Manual Local Pack check on top 5 priority queries shows client in top 3 positions.

Image Carousel Audit (5 criteria)

IC1. Hero images use modern formats (WebP or AVIF) with fallbacks.
IC2. All images have descriptive alt text and kebab case filenames.
IC3. ImageObject schema on hero images with creator, license, and acquireLicensePage.
IC4. Image sitemap submitted to GSC.
IC5. Manual sample shows client images in carousel for 20 percent of visual priority queries.

Video Carousel Audit (5 criteria)

VC1. Videos hosted on YouTube with full title, description, and closed captions.
VC2. VideoObject schema on host page with thumbnailUrl, uploadDate, duration, embedUrl.
VC3. Transcript published as visible text on host page.
VC4. Video sitemap submitted to GSC.
VC5. Manual sample shows client videos in carousel for relevant priority queries.

Top Stories Audit (3 criteria, N/A for non publishers)

TS1. Publisher Center approval secured.
TS2. NewsArticle schema on every news article.
TS3. News sitemap submitted and articles publishing on consistent cadence.

Shopping Carousel Audit (4 criteria, N/A for non e commerce)

SC1. Google Merchant Center account active and feed approved.
SC2. Product schema on every product page with offers and aggregateRating.
SC3. Schema and feed prices and availability match exactly.
SC4. Manual sample shows client products in carousel for priority product queries.

Sitelinks Audit (3 criteria)

SL1. Site architecture is logical with every important page within 3 clicks of homepage.
SL2. BreadcrumbList schema on every page below the homepage.
SL3. Manual check on branded query shows sitelinks present.

Sitelinks Search Box Audit (2 criteria)

SLSB1. Working site search at consistent URL pattern (e.g., /search/?q=).
SLSB2. WebSite schema with potentialAction SearchAction declared.

Twitter/X Carousel Audit (3 criteria, N/A for clients without X strategy)

TX1. Verified X account active.
TX2. Posting cadence at least 2 times per week.
TX3. X account linked from Organization schema sameAs.

Reddit/Discussion Audit (3 criteria, N/A for clients without community strategy)

RD1. Authentic Reddit participation in 3 plus relevant subreddits.
RD2. Brand mentions in Reddit threads documented (3 plus in last 12 months).
RD3. Manual sample shows brand or domain in Reddit/Discussion carousel for opinion queries.

Recipe Carousel Audit (3 criteria, N/A for non recipe sites)

RC1. Recipe schema with all required and recommended properties on every recipe.
RC2. Original food photography on every recipe.
RC3. Manual sample shows client recipes in carousel for recipe queries.

Event Pack Audit (3 criteria, N/A for clients without events)

EP1. Event schema on every event page with required and recommended properties.
EP2. Past events archived properly (validThrough updated, status accurate).
EP3. Manual sample shows client events in Event Pack for relevant queries.

Job Pack Audit (3 criteria, N/A for clients not hiring)

JP1. JobPosting schema on every open position.
JP2. validThrough discipline maintained (filled positions removed or updated).
JP3. Manual sample shows openings in Google for Jobs.

Hotel Pack Audit (2 criteria, N/A for non hotels)

HP1. Hotel schema with all required and recommended properties.
HP2. Google Hotel Center integration active.

Vacation Rental Pack Audit (3 criteria, N/A for non rentals)

VRP1. VacationRental schema on every property with all required and recommended properties.
VRP2. Distinct schema per property (no duplicates).
VRP3. Booking system integration synchronizes prices and availability.

Site Name and Favicon Audit (4 criteria)

SNF1. WebSite schema with name property correctly set.
SNF2. Page titles consistently include brand name.
SNF3. High quality favicon (48x48 minimum) with proper HTML head references.
SNF4. Manual SERP check confirms site name displays correctly.

Indented Results Audit (2 criteria)

IR1. At least 8 cluster pages per pillar with strong internal linking.
IR2. Cluster page differentiation verified (no cannibalization per SEO-Search-Appearance.md Phase 2).

Paid Ads Audit (5 criteria, N/A for clients without ad budget)

PA1. Google Ads account active with billing configured.
PA2. Campaign structure aligned with keyword to page map.
PA3. Conversion tracking implemented and tested.
PA4. Quality Score average is 6 or higher across active keywords.
PA5. Conversion rate is at or above industry benchmark for the vertical.

11.4 Audit Output Format

The agent produces two outputs.

Markdown report:

# SERP Feature Audit
## [Client Name]
## [Audit Date]

## Executive Summary
- Overall feature presence: X of 30 features won, Y MAYBE, Z SKIP
- Critical gaps: [top 3 missed feature opportunities]
- Quick wins: [top 3 features within reach]

## Per Feature Findings
[For each of the 30 features: status (won/winnable/blocked), evidence, remediation, expected impact]

## Prioritized Implementation Plan
[Top 10 actions in priority order with effort and impact estimates]

## Appendix
[Audit methodology, framework version, sample queries used]
Enter fullscreen mode Exit fullscreen mode

JSON report:

{
  "audit_metadata": {
    "framework_version": "1.0",
    "domain": "",
    "audited_at": "",
    "auditor": "",
    "engagement_id": ""
  },
  "summary": {
    "features_won": 0,
    "features_winnable": 0,
    "features_skipped": 0,
    "features_na": 0
  },
  "features": [
    {
      "id": "ai_overview",
      "name": "AI Overview",
      "status": "WON",
      "evidence": "",
      "criteria_passed": [],
      "criteria_failed": [],
      "remediation": [],
      "effort_hours": 0,
      "impact": "high"
    }
  ],
  "prioritized_remediation": []
}
Enter fullscreen mode Exit fullscreen mode

11.5 Partial Install Audit

When the operator declares the engagement as "partial install," the audit follows the same criterion structure but:

  • N/A is heavily used for criteria depending on prior phases not yet complete.
  • Remediation plan is structured as a phased re completion plan.
  • Output includes a starting point summary identifying where the client currently is.

11.6 Audit Mode Exit Criterion

  1. All applicable criteria evaluated.
  2. Both markdown and JSON reports produced.
  3. Prioritized remediation plan delivered.
  4. Client has reviewed and accepted the audit.

12. Maintenance Schedule

Purpose: keep won SERP features and identify new opportunities over time.

12.1 Weekly

  • Manual sampling of top 10 priority queries across mobile and desktop.
  • Record feature presence changes versus previous week.
  • Flag any SERP volatility (sudden ranking drop, lost feature, new competitor in Local Pack).
  • Respond to GBP reviews within 48 hours.
  • Triage Search Console alerts and warnings.

12.2 Monthly

  • Re run Phase 1 audit on the full priority query sample.
  • Compare results to baseline and previous month.
  • Update keyword to page map with any new GSC queries showing 10 plus impressions.
  • Review GBP Insights for changes in views, calls, direction requests.
  • Update GBP photos, posts, products as needed.
  • Submit any newly published content to GSC URL Inspection.
  • Validate schema on any pages modified in the month.

12.3 Quarterly

  • Full SERP feature audit per section 11.
  • Topical cluster expansion: add new cluster pages for emerging sub queries.
  • Refresh content on top 20 priority pages with updated information and dateModified.
  • Wikidata entity review and update.
  • llms.txt content refresh (per SEO-Search-Appearance.md section 11.3).
  • Information gain asset publication per tier cadence.
  • Review competitor SERP feature presence and adjust strategy.
  • Audit and remediate any feature regressions.

12.4 After Every Google Core Update

  • Re evaluate top 20 pages for SERP feature changes.
  • Identify any features lost to update.
  • Check Search Central blog for documented changes affecting current features.
  • Compare to industry volatility benchmarks.
  • Adjust strategy based on observed patterns.

12.5 Annually

  • Full pillar architecture review.
  • Author bio and credential refresh across all content.
  • Annual flagship information gain asset publication.
  • Framework version bump if SERP feature landscape has shifted meaningfully.
  • Client retainer pricing review.

13. Appendix A: SERP Feature Eligibility Quick Reference

Fast lookup table for the 30 features with eligibility requirements and time to first appearance.

Feature Required For Eligibility Typical Time to First Appearance
AI Overview Top 50 organic plus extractable structure 7 to 30 days
AI Mode Cluster architecture plus entity signals 30 to 90 days
Featured Snippet Top 10 organic plus formatted answer 7 to 30 days
People Also Ask Page answers a related question 14 to 60 days
Knowledge Panel Recognized entity with Wikidata or strong GBP 60 to 180 days
Local Pack Verified GBP plus schema plus NAP consistency 14 to 60 days
Image Carousel Quality images plus schema plus image sitemap 14 to 60 days
Video Carousel YouTube hosted plus VideoObject schema plus transcript 7 to 30 days
Top Stories Publisher Center approval 30 to 90 days
Shopping Carousel Merchant Center approved feed plus Product schema 7 to 30 days
Sitelinks Clean architecture plus internal linking 60 to 180 days
Sitelinks Search Box Brand recognition plus working search 90 to 365 days
Twitter/X Carousel Verified X plus active posting 30 to 90 days
Reddit/Discussion Authentic Reddit presence Variable
Recipe Carousel Recipe schema plus quality photography 14 to 60 days
Event Pack Event schema with current dates 7 to 30 days
Job Pack JobPosting schema 1 to 7 days
Hotel Pack Hotel schema plus Hotel Center 30 to 90 days
Vacation Rental Pack VacationRental schema plus pricing integration 30 to 90 days
Flight Results Airline or OTA partnership N/A for typical clients
Finance Module Financial data partnership N/A for typical clients
Sports Module Sports data partnership N/A for typical clients
Translation Box Google Translate only N/A
Definition or Calculator Google partner only N/A
Direct Answer Box Integrated data partner N/A
Related Searches Automatic N/A
Refinement Bubbles Automatic plus GBP attributes N/A
Site Name and Favicon Automatic plus correct schema 7 to 30 days
Indented Results Multiple high quality cluster pages 60 to 180 days
Paid Ads Active Google Ads account 1 day

14. Appendix B: SERP Tracking and Sampling Scripts

Reusable bash scripts for SERP feature sampling and audit support.

14.1 SERP Feature Sampling Script

#!/bin/bash
# Manual SERP feature sampling helper
# Run weekly with a list of priority queries

QUERIES_FILE="$1"

if [ -z "$QUERIES_FILE" ]; then
  echo "Usage: $0 <queries.txt>"
  exit 1
fi

OUTPUT_FILE="serp-sample-$(date +%Y%m%d).md"

cat > "$OUTPUT_FILE" << EOF
# SERP Feature Sample
## $(date +%Y-%m-%d)

For each query, manually run on Google mobile and desktop.
Record: AIO=AI Overview, FS=Featured Snippet, PAA=People Also Ask,
KP=Knowledge Panel, LP=Local Pack, IC=Image Carousel, VC=Video Carousel,
TS=Top Stories, SC=Shopping Carousel, SL=Sitelinks present, EP=Event Pack,
RC=Reddit/Discussion, X=Twitter/X Carousel.
For each: Y=client appears, /=present but client not in it, blank=not present.

| Query | Device | AIO | FS | PAA | KP | LP | IC | VC | TS | SC | SL | EP | RC | X | Notes |
|-------|--------|-----|----|----|----|----|----|----|----|----|-----|----|----|---|-------|
EOF

while IFS= read -r query; do
  echo "| $query | mobile | | | | | | | | | | | | | | |" >> "$OUTPUT_FILE"
  echo "| $query | desktop | | | | | | | | | | | | | | |" >> "$OUTPUT_FILE"
done < "$QUERIES_FILE"

echo "Created $OUTPUT_FILE. Fill in manually and commit to engagement notes."
Enter fullscreen mode Exit fullscreen mode

14.2 GSC Search Appearance Export Script

#!/bin/bash
# Export GSC Search Appearance dimension data for SERP feature tracking

PROPERTY="$1"
START_DATE="$2"
END_DATE="$3"

if [ -z "$PROPERTY" ] || [ -z "$START_DATE" ] || [ -z "$END_DATE" ]; then
  echo "Usage: $0 <property-url> <start-date> <end-date>"
  exit 1
fi

TOKEN=$(gcloud auth print-access-token)

curl -s -X POST \
  "https://searchconsole.googleapis.com/webmasters/v3/sites/$(printf %s "$PROPERTY" | jq -sRr @uri)/searchAnalytics/query" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{
    \"startDate\": \"$START_DATE\",
    \"endDate\": \"$END_DATE\",
    \"dimensions\": [\"searchAppearance\"],
    \"rowLimit\": 25000
  }" > "gsc-search-appearance-$START_DATE-to-$END_DATE.json"

echo "Search Appearance export written. Note: cannot combine with other dimensions."
echo "For per query or per page Search Appearance breakdown, run filtered queries."
Enter fullscreen mode Exit fullscreen mode

14.3 Schema Validation Helper

#!/bin/bash
# Validate schema on a list of URLs against Schema.org and Rich Results Test

URLS_FILE="$1"

if [ -z "$URLS_FILE" ]; then
  echo "Usage: $0 <urls.txt>"
  exit 1
fi

OUTPUT_FILE="schema-validation-$(date +%Y%m%d).csv"

echo "url,has_jsonld,jsonld_count,jsonld_types" > "$OUTPUT_FILE"

while IFS= read -r url; do
  CONTENT=$(curl -s "$url")
  HAS_JSONLD=$(echo "$CONTENT" | grep -c 'application/ld+json')
  TYPES=$(echo "$CONTENT" | grep -oP '"@type"\s*:\s*"\K[^"]+' | sort -u | tr '\n' '|')

  echo "$url,$([ $HAS_JSONLD -gt 0 ] && echo yes || echo no),$HAS_JSONLD,$TYPES" >> "$OUTPUT_FILE"
done < "$URLS_FILE"

echo "Validation summary written to $OUTPUT_FILE"
echo "For full validation, manually run each URL through Google Rich Results Test."
Enter fullscreen mode Exit fullscreen mode

14.4 Critical Schema Snippets (Reproduced for Self Contained Reading)

For full schema library, reference SEO-Search-Appearance.md Appendix C. The most commonly needed snippets are reproduced here.

WebSite Schema with Sitelinks Search Box:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "WebSite",
  "@id": "https://example.com/#website",
  "url": "https://example.com/",
  "name": "[Brand Name]",
  "publisher": { "@id": "https://example.com/#organization" },
  "potentialAction": {
    "@type": "SearchAction",
    "target": {
      "@type": "EntryPoint",
      "urlTemplate": "https://example.com/search/?q={search_term_string}"
    },
    "query-input": "required name=search_term_string"
  }
}
</script>
Enter fullscreen mode Exit fullscreen mode

Favicon HTML Head References:

<link rel="icon" type="image/png" sizes="48x48" href="/favicon-48x48.png">
<link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="192x192" href="/favicon-192x192.png">
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="manifest" href="/site.webmanifest">
Enter fullscreen mode Exit fullscreen mode

ImageObject Schema for Image Carousel:

<script type="application/ld+json">
{
  "@context": "https://schema.org",
  "@type": "ImageObject",
  "contentUrl": "https://example.com/img/hero.webp",
  "name": "[Descriptive title]",
  "description": "[Description of image content]",
  "creator": { "@type": "Organization", "name": "[Brand]" },
  "creditText": "[Brand]",
  "copyrightNotice": "© 2026 [Brand]",
  "license": "https://example.com/image-license/",
  "acquireLicensePage": "https://example.com/contact/"
}
</script>
Enter fullscreen mode Exit fullscreen mode

Image Sitemap:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:image="http://www.google.com/schemas/sitemap-image/1.1">
  <url>
    <loc>https://example.com/page/</loc>
    <image:image>
      <image:loc>https://example.com/img/hero.webp</image:loc>
      <image:title>[Descriptive title]</image:title>
      <image:caption>[Caption with keyword]</image:caption>
    </image:image>
  </url>
</urlset>
Enter fullscreen mode Exit fullscreen mode

Video Sitemap:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:video="http://www.google.com/schemas/sitemap-video/1.1">
  <url>
    <loc>https://example.com/videos/page/</loc>
    <video:video>
      <video:thumbnail_loc>https://example.com/img/video-thumb.jpg</video:thumbnail_loc>
      <video:title>[Video title]</video:title>
      <video:description>[Video description]</video:description>
      <video:content_loc>https://example.com/videos/file.mp4</video:content_loc>
      <video:player_loc>https://www.youtube.com/embed/VIDEO_ID</video:player_loc>
      <video:duration>330</video:duration>
      <video:publication_date>2026-05-04T08:00:00-05:00</video:publication_date>
    </video:video>
  </url>
</urlset>
Enter fullscreen mode Exit fullscreen mode

News Sitemap:

<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
        xmlns:news="http://www.google.com/schemas/sitemap-news/0.9">
  <url>
    <loc>https://example.com/news/article-slug/</loc>
    <news:news>
      <news:publication>
        <news:name>[Publication Name]</news:name>
        <news:language>en</news:language>
      </news:publication>
      <news:publication_date>2026-05-04T10:30:00-05:00</news:publication_date>
      <news:title>[Article Title]</news:title>
    </news:news>
  </url>
</urlset>
Enter fullscreen mode Exit fullscreen mode

15. Appendix C: SERP Visual Reference

Brief description of how each feature appears visually, useful for training new operators or describing features to clients.

AI Overview: large block at the top of the SERP, white or light gray background, AI generated text in 3 to 6 paragraphs, source citations as small numbered links inline or at the bottom.

AI Mode: separate interface accessed from a dedicated tab. Conversational layout with AI generated response and follow up question input field.

Featured Snippet: boxed answer at the top of the SERP, white background with subtle border, contains either a paragraph of text, a numbered or bullet list, or a comparison table, with the source URL and title shown as a clickable link below the answer.

People Also Ask: expandable accordion below the featured snippet (or in middle of SERP), showing 3 to 5 questions initially with arrows indicating expansion. Each question expands to show a paragraph snippet plus source link.

Knowledge Panel: right side panel on desktop with entity name, image, key facts, social profiles, action buttons. On mobile, a horizontal card.

Local Pack: map embed at top with three pin markers, three business cards below with name, photo, star rating, review count, address, and call or directions buttons. On mobile, often only one card visible with see more.

Image Carousel: horizontal scrolling row of image thumbnails with "Images for [query]" label. Click opens Google Images.

Video Carousel: horizontal row of video thumbnails with title, source, duration. Click opens video either inline or on source platform.

Top Stories: carousel of news article cards with publisher name, headline, time since publication, often with a thumbnail image.

Shopping Carousel: horizontal row of product cards with image, title, price, store name, sometimes star rating.

Sitelinks: indented list of additional links beneath an organic result, typically the top branded result.

Sitelinks Search Box: a search input field embedded directly within an organic result for a strong brand.

Twitter/X Carousel: horizontal carousel of recent X posts with post text, engagement metrics, timestamp.

Reddit/Discussion Carousel: carousel of forum thread cards with thread title, subreddit name, comment count, time posted.

Recipe Carousel: horizontal cards with food photo, recipe title, source, star rating, prep and cook time.

Event Pack: list or carousel of upcoming events with date, time, venue, ticket link.

Job Pack: small carousel of job listings with title, company, location, posting time, expanding to Google for Jobs interface.

Hotel Pack: carousel of hotel cards with photo, name, star rating, price per night, amenity icons.

Vacation Rental Pack: carousel of property cards with photo, property name, location, rating, nightly price.

Flight Results: dedicated Google Flights interface embedded in SERP showing flight options with airlines, times, prices.

Finance Module: stock chart and key statistics for the queried ticker.

Sports Module: scores, schedules, standings for the queried team or league.

Translation Box: Google Translate interface inline.

Definition Box: dictionary entry with definition, etymology, example usage.

Calculator: interactive calculator interface for math queries.

Direct Answer Box: weather, time, conversion, calendar interfaces.

Related Searches: grid of suggested queries at the bottom of the SERP.

Refinement Bubbles: rounded chip filters at the top of the SERP.

Site Name and Favicon: brand name above the URL, favicon next to it (mobile prominent).

Indented Results: second and third results from same domain visually indented under the first result.

Paid Ads: organic looking results with "Sponsored" label, sometimes additional ad extensions (sitelinks, callouts, location, call).


16. Appendix D: 2026 Data Citations

Sources for the strategic data anchoring this framework. Refresh quarterly.

16.1 SERP Coverage and Feature Frequency

  • AI Overviews appear on about 48 percent of all Google searches Q1 2026. Source: Digital Applied, BrightEdge AI Overview Impact Report.
  • AI Overviews appear on 70 plus percent of informational and how to queries. Source: BrightEdge.
  • Google AI Mode 75 million daily active users by January 2026. Source: Digital Applied, ALM Corp.
  • Mobile SERP shows 1.6 organic results above the fold versus 7.2 in 2018. Source: SparkToro 2025 SERP analysis.

16.2 CTR by Feature

  • Position 1 organic CTR drops up to 61 percent on queries with AI Overviews (1.76 percent baseline to 0.61 percent). Source: Seer Interactive.
  • Featured snippet CTR 35 to 42 percent. Source: Ahrefs SERP CTR study, 2025.
  • Local Pack combined CTR 25 to 33 percent. Source: BrightLocal Local Search Survey 2025.
  • Knowledge Panel direct click 8 to 14 percent. Source: Moz, Ahrefs.
  • Sitelinks add 10 to 25 percent CTR lift. Source: SISTRIX Sitelinks study.
  • Top Stories CTR 12 to 22 percent. Source: NewzDash 2025.
  • Shopping carousel listing 5 to 11 percent per listing. Source: Tinuiti Shopping Q4 2025.
  • Sponsored ad position 1 CTR 6 to 10 percent. Source: WordStream benchmarks.

16.3 Citation and Conversion

  • 68 percent of pages cited in AI Overviews are NOT in top 10 organic. Source: Surfer SEO December 2025 study.
  • 38 percent of AI Overview cited pages also rank in top 10 (down from 76 percent). Source: Ahrefs February 2026 study.
  • 35 percent click lift for cited pages in AI Overviews versus non cited top 10. Source: Seer Interactive.
  • 23 times conversion rate for AI Overview cited visitors. Source: Seer Interactive, Alhena.
  • 93 percent zero click rate on AI Mode queries. Source: Seer Interactive.
  • 58.5 percent zero click rate on all searches Q2 2025. Source: SparkToro Datos.

16.4 Schema Deprecations and Changes

  • HowTo deprecated September 2023. Source: Google Search Central.
  • 7 schema types deprecated January 2026: Practice Problem, Sitelinks Search Box (no longer requires markup), Special Announcement, Q and A, Book Actions, Course Info, Claim Review, Estimated Salary, Learning Video, Vehicle Listing. Source: Google Search Central November 2025.
  • March 2026 core update FAQ rich result impressions dropped about 50 percent. Source: Digital Applied March 2026.
  • FAQPage rich results restricted to government and authoritative health since 2023. Source: Google Search Central.

16.5 Schema Type Counts

16.6 Search Engine Market Share (March 2026)

  • Google: 90.01 percent global. Source: StatCounter.
  • Bing: 4.98 percent global, ~7 percent US. Source: StatCounter, Microsoft Q2 FY26 earnings.
  • Yandex: 1.34 percent global, 65 to 72 percent in Russia. Source: StatCounter.
  • DuckDuckGo: 0.76 percent global, 1.84 percent US. Source: StatCounter.
  • Baidu: 0.55 percent global, 53 percent in China. Source: StatCounter.

End of Framework Document

This document is version 1.0, last updated 2026-05-04. The next scheduled review is 2026-08-04 (quarterly cadence). Framework version bumps occur when Google or major LLM providers ship meaningful changes to SERP feature behavior, eligibility, or display.

Companion framework: SEO-Search-Appearance.md v2.0 covers foundational architecture (queries, pages, countries, devices, search appearance reporting, multi engine optimization).

For corrections, additions, or vertical specific extensions, contact admin@thatdeveloperguy.com.

Crafted by ThatDeveloperGuy.com.


Related references

Authored at ThatDevPro, the SEO and engine-optimization arm of ThatDeveloperGuy.

Top comments (0)