Skip to content
ConsultEvo

How to Build a Reliable AEO Keyword Research Workflow

Keyword research for AEO should produce more than a list of phrases. It should produce a prioritized, maintainable set of customer questions, with each question linked to its audience, intent, constraints, evidence, answer format, owner, and next business action.

That distinction matters because conventional keyword data and AI-search observations describe different things. Google Search Console can show how pages performed in Google Search. Customer conversations can reveal language and problems. An LLM can suggest possible follow-up questions. None of those inputs should be treated as interchangeable evidence.

A reliable workflow therefore combines discovery, provenance, human review, content briefing, and measurement. It also keeps a question definition separate from an individual answer-engine run, citation, or aggregate visibility metric.

A query string becomes a research deliverable only when it is tied to evidence, an accountable owner, and a useful next action.

What keyword research for AEO should produce

Traditional keyword research helps teams understand queries and, where available, estimated demand and Google Search performance. AEO research adds editorial and operational questions: who is asking, what situation or constraint matters, what evidence supports an answer, and what should the reader do next?

SEO and AEO are complementary. Existing search data can inform the question set, but it is not a complete account of what people ask answer engines. Public, standardized search-volume data is not consistently available across AI-search prompts and answer engines, so conventional keyword metrics should remain one input rather than a universal measure of AEO demand.

Use answerability as a practical editorial judgment. Can the organization provide a clear, specific, supportable answer for this audience, and can someone keep the evidence current? Answerability is not a universal answer-engine score or a documented ranking formula.

Define the record before collecting questions. A proposed editorial record can include:

  • Identity: question_id, canonical_question, and exact_customer_wording.
  • Context: audience_segment, journey_stage, problem_type, constraints, likely_follow_up, primary_entity, and related_entities.
  • Briefing: answer_format, evidence_sources, business_action, owner, review_status, and last_verified_at.

This design supports handoffs between research, content, analytics, and operations. It does not, by itself, prove search demand or AI visibility.

Collect questions from evidence, not just keyword tools

Use four complementary inputs: customer conversations and support records; search suggestions and question tools; Google Search Console query data; and LLM-generated follow-up questions that a person reviews. Preserve the original wording alongside a normalized question. Normalization makes records usable without erasing how customers actually describe the problem.

Keep the source types distinct. A support ticket is evidence of an observed customer issue. A Search Console row describes Google Search performance for a property. An LLM follow-up is a generated research candidate. A search suggestion indicates a surfaced phrasing, not verified demand or commercial importance.

Ofcom’s qualitative study interviewed 24 UK internet users between June 17 and July 3, 2025. Participants described generative-AI search as useful for some specific, detailed questions that might otherwise take longer to research. This is useful context for research design, not evidence that all users ask longer questions or that the study represents population-wide behavior. Read the Ofcom study overview and its qualitative report with that scope in mind.

For every input, record the source identifier or description, date, access method, and reviewer. Customer records should be handled as governed data. Use approved access, minimize personal or sensitive details, and do not send identifiable records to an external model without an appropriate privacy and security review.

Trigger Bounded task Validation and destination Owner or fallback
Support ticket, interview, or sales note Preserve wording and suggest a normalized question, audience, and constraints. Compare the normalized version with the source, then create an approved question record. Customer insights reviews meaning and privacy issues.
Search suggestion or question tool Capture a candidate phrasing or follow-up. Record the tool and date; compare the phrasing with customer evidence. Content researcher rejects unsupported interpretations.
Search Console query Review Google Search performance and page context. Save property, dates, dimensions, filters, and extraction time before interpretation. Analytics lead investigates empty or incomplete extracts.
LLM-generated follow-up Propose comparisons, constraints, or edge cases. Label it as generated, deduplicate it, and validate relevance before approval. Editor routes ambiguous or unsupported candidates to research review.

Create a question record that survives handoffs

Store the durable question definition separately from the evidence and observations it generates. This prevents one broad “visibility” field from mixing customer language, search data, generated ideas, answer text, citations, and business outcomes.

Apply deterministic rules when the wording provides a clear signal. “Versus,” “alternative,” and “compare” can flag comparison intent. “Price,” “cost,” and “pricing” can flag a commercial question. “For [profession or industry]” can suggest an audience. “Without,” “under,” and “integrate with” can identify constraints or evaluation criteria.

Use an AI classifier only when context or ambiguity makes a rule insufficient. Require a permitted label, confidence, and an evidence span copied from the input. Reject labels outside the allowed values. Route low-confidence, contradictory, or privacy-sensitive results to an editor. The model can propose a classification, but the editor approves the question record.

This question record is an editorial design, not a vendor-provided schema. A question such as “Which accounting software works for a five-lawyer firm that needs trust-account support and Clio integration?” might be classified as a commercial comparison for a small law firm, with trust-account support and Clio integration as constraints. Each product claim would still require current primary-source verification.

Use Search Console for discovery, with its limits in view

Google’s Search Analytics API reports Google Search performance metrics including clicks, impressions, click-through rate, and average position. It can group or filter data using dimensions such as query, page, date, device, country, and search appearance. It does not provide prompt-level citations from ChatGPT, Perplexity, or other answer engines. See Google’s Search Analytics API reference, API prerequisites, and querying guidance.

  1. Authorize access. Confirm that the person or application has OAuth authorization and access to the relevant Search Console property.
  2. Define the extraction. Choose the property, date range, dimensions, aggregation, and any filter. A query filter containing “pricing” should answer a specific research question rather than be applied arbitrarily.
  3. Request and preserve data. Save the returned rows and metrics with the property, requested dates, dimensions, filters, row settings, and extraction timestamp.
  4. Interpret in context. Compare useful queries with existing pages and customer evidence. Add a query to the question registry only after a researcher determines what it means and whether it is worth answering.

Search Console results can be limited to top rows rather than every query. Google documents a maximum row limit of 25,000 per request with pagination through startRow, but pagination does not turn the result into a guaranteed complete export. Fresh data may be incomplete or change after extraction, and dates use Pacific Time.

If an export is empty, check property access, date coverage, filters, aggregation, and data freshness before concluding that no demand exists. A third-party Sheets extractor can be a convenience, but it is not a native Google feature. The destination should be a query-research table that retains the extraction metadata and links each interpreted query to its source page or question record.

Expand and classify questions with a bounded AI role

For query fan-out, give an editor-reviewed seed question to an LLM and request candidate follow-ups, comparisons, constraints, and edge cases. Treat the output as an editorial queue, not observed customer language or search data.

Downstream automation should parse a defined output contract and reject malformed output rather than silently filling missing values. The following is an illustrative contract for a candidate record, not a documented HubSpot, Google, or XFunnel template:

เ฿

Use a normal JSON structure such as the following when implementing the contract:

{
  "seed_question": "Which accounting tools work for a small law firm?",
  "follow_up_question": "Which options support trust accounting and integrate with our practice-management system?",
  "intent_class": "commercial_comparison",
  "audience": "small law firm",
  "constraints": [
    "trust accounting",
    "practice-management integration"
  ],
  "source_prompt": "approved editorial fan-out prompt",
  "generated_at": "recorded timestamp",
  "model_identifier": "recorded model or product variant",
  "review_status": "candidate"
}

The owner removes duplicates, rejects irrelevant variants, and checks product or entity claims against current primary sources. Store the prompt and model identifier when known. If the output is missing a required field, contains an unapproved intent label, or proposes an unsupported claim, send it to the exception queue instead of guessing.

01CaptureSave original wording, source identifier, date, access status, and privacy classification. The researcher owns provenance.
02Normalize and classifyApply explicit wording rules first. Use AI for ambiguous context, and require an allowed label, confidence, and evidence span.
03Validate and prioritizeConfirm the audience, constraints, supportable evidence, and business action. An editor approves, defers, or rejects the record.
04Brief and assignSend approved questions to the content system with answer format, evidence requirements, owner, and review trigger.
05Record the outcomeStore publication, refresh, citation-review, business-action, or exception outcomes against the question record.

Prioritize questions and turn them into useful briefs

Do not invent an AEO volume score. Use a documented editorial rubric and record why a question was selected, deferred, or rejected. Prioritize questions that combine:

  • Clear customer pain or a recurring operational problem.
  • A defined audience, journey stage, or use case.
  • A defensible answer that the organization can support.
  • A meaningful business action for the reader or team.
  • An owner who can maintain the evidence.

Map the primary topic entity to related concepts, tools, roles, industries, and use cases. Record relationships rather than accumulating synonyms. A content brief should state the direct answer, evidence required, relevant constraints, likely follow-ups, and a suitable format such as a comparison, checklist, or decision tree.

Clear structure and accurate entity context are useful editorial practices. They are not a published universal formula for answer-engine selection. The source article’s general framework is useful background, but its vendor positioning should not be treated as independent proof of performance. See HubSpot’s AEO keyword research guide for that conceptual context.

Measure visibility without confusing observations and outcomes

Define the data grain before choosing a metric. A prompt definition is the canonical question being monitored. A prompt run is one execution against one engine or product variant, locale, interface where material, and timestamp. An answer observation is the raw response from that run. A citation record is one cited URL within that response. An aggregate summarizes a defined set of runs over a stated period.

Keep raw answers separate from parsed mentions and citations. For each prompt run, retain the prompt_definition_id, engine, model or product variant where known, locale, timestamp, prompt text or hash, run identifier, raw answer, and parser version. For each citation, retain the prompt_run_id, citation occurrence or ordinal, returned URL, canonical URL, relevance status, and review timestamp.

Validate that a cited page is accessible and supports the claim associated with the citation. Record whether the URL was canonicalized, whether tracking parameters were removed, and whether the citation was extracted from the answer itself rather than inferred from a search result.

Choose the data grain before reporting

One prompt run is an observation. Share of voice is an aggregate across a defined prompt set, engine scope, locale, period, and denominator. Store runs and citations separately, then calculate the aggregate with its scope and metric definition attached.

Use a database-enforced unique constraint and an atomic upsert when concurrent workers can write records. A lookup-then-create check can race and create duplicates. A proposed prompt-run uniqueness strategy includes prompt_definition_id, engine, model_variant where known, locale, run_started_at, and a request or batch identifier. A proposed citation key includes prompt_run_id and a normalized cited URL or citation occurrence. The exact key is an implementation recommendation, so test it against the actual storage system and retry behavior.

XFunnel publicly describes question research and AI-search measurement capabilities, including topic analysis, segmentation, brand mentions, share of voice, competitive positioning, and listed engine coverage. Its research page and measurement page are vendor descriptions, not public API or export documentation. Confirm access methods, data handling, sampling, and technical requirements with the vendor before planning an integration.

Answer outputs can vary with prompt wording, retrieval, indexing, engine behavior, model or product variant, locale, and time. Record those conditions for each observation rather than presenting one snapshot as a stable ranking.

Keep visibility distinct from business outcomes. A mention or citation does not establish that it caused a visit, conversion, pipeline event, or revenue. Connect those outcomes only when identifiable traffic and a stated attribution method support the link. Store any resulting CRM contact or deal event as a separate record from the raw answer observation and reported visibility aggregate. Do not overwrite CRM fields with unreviewed AI classifications.

Use structured data only when it describes the page

Google documents structured data as a standardized way to help Google understand page content and potentially determine rich-result eligibility. Markup should describe content visible to users and should be checked against the page with Google’s structured-data guidance and Rich Results Test.

Valid markup does not guarantee a ranking improvement, rich result, or AI citation. Choose a schema type according to the actual page purpose. Google’s Product documentation distinguishes product snippets from merchant listings and sets requirements by use case. Do not select Product markup for an informational comparison simply because the page discusses products.

Similarly, do not add FAQPage or HowTo markup on the assumption that it improves AEO. The supplied FAQPage and HowTo URLs are outdated or redirected and should not be presented as current implementation guides. Use current Google documentation and validate the markup against visible content instead.

Set ownership, refresh triggers, and the next action

Keep approved question records in the designated research or content system. Retain source provenance, change history, review status, and last verification date. Refresh when product facts, pricing, regulations, integrations, citations, or customer language change. A calendar review can supplement those triggers, but should not replace them.

Define an exception owner for incomplete Search Console extracts, malformed model output, unresolved intent, broken citations, unsupported product claims, and conflicting CRM data. Automation should come after the schema, system of record, validation rules, ownership, and exception path are stable.

A governed CRM may hold approved customer or business classifications. CRM systems consulting is relevant when deciding how those classifications fit an existing customer-data process. For later workflow automation, Zapier automation services can be considered after the operating controls are defined. This is not a claim of a prebuilt AEO connector.

Check before rollout
  • Every selected question preserves original wording, source provenance, and extraction or interview date.
  • An accountable owner can support the answer and verify its evidence.
  • Generated candidates, customer evidence, Google Search data, and verified product facts remain distinguishable.
  • Prompt runs, raw answers, citations, aggregates, and CRM events use separate records at their declared grain.
  • Database uniqueness, transactional upsert behavior, review thresholds, and exception ownership have been tested.

Track operational outputs such as reviewed questions, completed briefs, updated answers, validated citation observations, and resolved exceptions. Add attributable business outcomes only where the measurement method supports them. That turns keyword research for AEO into a maintainable editorial workflow rather than a spreadsheet of unowned questions.