MODRACXKENNETH D'SILVA

← Archive & Insights

Voice Search Optimization for Magento & Shopify

I helped sell a £14,000 voice search package in 2018 built on a statistic nobody checked. Here is what in this category is real and what was never true.

By Kenneth D'SilvaReading Time: 25 min readCategory: SEO & Marketing

1. The £14,000 Voice Search Package I Helped Sell

In late 2018 I was subcontracting to an agency that sold a hardware retailer a voice search optimisation programme. Fourteen thousand pounds over six months. I wrote the technical half of it: speakable markup across the blog, FAQPage schema on 180 product and category pages, a rewrite of forty pages into a question-and-answer format, and a set of conversational long-tail keyword targets.

The deck cited the statistic everyone was citing — that half of all searches would be voice by 2020 — and a Gartner projection that 30% of browsing sessions would happen without a screen. Both numbers went in the proposal. I did not check either of them, and I should have, because I was the technical person in the room and checking numbers is part of that job.

Six months later we reported on it. Organic traffic was up about 9%, which was real and which I still think was worth having. Attributable voice-originated traffic was zero, because there is no such thing as an attributable voice-originated session in any analytics package. Not zero as in small. Zero as in the measurement does not exist and never did.

The speakable markup produced nothing, because it was a limited pilot for news publishers and the client sold cushions. The FAQ schema produced rich results for about four months and then, over the following years, produced nothing, because Google restricted FAQ rich results in August 2023 to government and health sites. The 9% uplift came almost entirely from the forty rewritten pages, which were better pages than the ones they replaced, and which would have performed identically if we had never said the word "voice".

I bring this up because I have watched a category get sold hard for eight years on the strength of a prediction that did not happen, and because the honest version of this topic is still useful. There is a real thing here. It is smaller than advertised, it is mostly indistinguishable from good SEO, and the part of it with genuine commercial upside is local intent — which almost none of the voice search content addresses, because local is unglamorous.

What follows is what I would actually build in 2026, what I would refuse to build, and where the money in this area has quietly moved.

2. Where The Fifty Percent Number Came From

It is worth tracing, because it is the load-bearing claim under a decade of content and it is not what people think it is.

In 2014, Andrew Ng, then chief scientist at Baidu, said in an interview that he expected at least 50% of searches to be through images or speech by 2020. That is a prediction about a research trajectory from someone building speech recognition, and it bundles image search in.

By 2016 that had been repeated as "ComScore predicts 50% of searches will be voice by 2020", attributed to a research firm rather than to one researcher, with the image half quietly dropped. ComScore, as far as I can find, never published that projection. The citation chain in most articles points to another article, which points to another, and the trail goes cold.

The Gartner number is real but was also mangled. Gartner's 2016 prediction was that by 2020, 30% of browsing sessions would be done without a screen. That is a claim about screenless interaction — smart speakers, assistants, car systems — not about voice queries to Google. It did not come true either.

What is Google's actual figure? They have never published one. The closest official statements are from 2016, when Sundar Pichai said 20% of queries on the Google app on Android were voice, and a 2018 restatement of roughly the same figure. Both are about a specific app on a specific platform, not about search overall.

My working estimate, from talking to people who see aggregate data and from consumer surveys that at least state their methodology, is that voice-initiated queries are somewhere in the region of 10 to 20% of mobile queries and a much smaller share of all queries, and that the overwhelming majority of those are dictation into a search box on a phone rather than a conversation with a speaker.

That distinction is the entire ballgame, and it is where the strategy has to start.

3. Four Different Things Wearing One Name

"Voice search" describes at least four behaviours with completely different economics, and treating them as one category is why the advice in this space has been so bad.

Dictated queries on a phone

Someone taps the microphone in the Google app or Safari and speaks instead of typing. They get an ordinary search results page, on a screen, with ten blue links and everything else. This is the overwhelming majority of "voice search" by volume.

The only thing that differs from typed search is the query itself: longer, more natural, more likely to be phrased as a question. That is a keyword research adjustment and nothing else. There is no separate ranking system, no separate index, and no separate optimisation.

Smart speaker queries

An Echo or a Nest speaker, no screen, one answer read aloud. This is the scenario every voice search article is implicitly about, and it is a small fraction of query volume and an almost negligible fraction of commercial intent.

The reason is structural. With one spoken result there is no position two. Being the answer is worth something; being the second-best answer is worth exactly nothing. And the queries people put to speakers skew heavily towards timers, music, weather, unit conversions and smart home control. The share that is a commercial product query is small, and always has been.

In-car and hands-free

Genuinely growing, genuinely local. "Nearest garden centre", "hardware shop open now", "petrol station". Almost entirely a local intent play, which I will come back to because it is where the actual opportunity is.

Voice input to an AI assistant

Talking to ChatGPT, Gemini, Alexa+ or Copilot. This is the one that has actually grown since 2023, and it is not really voice search at all — it is a conversational assistant that happens to accept speech. Optimising for it is a different discipline with different mechanics, which I will get to.

If you are going to spend budget on any of these, the ranking is: dictated queries are already covered by decent SEO, in-car local is a real and underserved opportunity, AI assistants are where the growth is, and smart speakers are where the marketing budget usually goes.

4. What Happened To Voice Commerce

The pitch in 2018 was that people would reorder consumables by voice, and that a store which was not present in that channel would be locked out. Every major platform built for it.

What actually happened, in the order it happened.

Amazon's Alexa shopping never took off in the way projected. Reporting in 2018 put the share of Alexa device owners who had ever made a purchase by voice at around 2%, with a large majority not repeating. Amazon disputed the specifics without publishing counter-figures. Whatever the exact number, the behaviour did not become normal, and the reason is obvious in retrospect: buying something you cannot see, from a list you cannot scan, with no price comparison, is a bad way to shop for anything except a repeat of an item you have already bought.

Google shut down Conversational Actions for the Assistant on 13 June 2023, which removed the third-party voice app platform entirely. If you had built a Google Assistant experience for your store, it stopped existing.

Amazon restructured the Alexa organisation heavily across 2022 and 2023 with substantial layoffs, and relaunched in 2025 as Alexa+, a subscription LLM assistant. The strategy shifted from "third parties build voice skills" to "the assistant does things on your behalf". That is a meaningfully different model and it does not involve you building a skill.

So the specific voice commerce investment that was recommended in 2018 — build an Alexa skill, build a Google Action, get your catalogue into voice shopping — has a clear verdict now. Almost all of that work has been deprecated by the platforms that recommended it. I built one Alexa skill for a client in 2019, a reorder flow for a coffee subscription. It took about six weeks. It processed 43 orders in its lifetime and I turned it off in 2021.

I would not build one today unless a client's customers were demonstrably asking for it, and in eight years no client's customers have.

5. Speakable Schema: Why I Do Not Ship It

Speakable is the markup most associated with voice optimisation, and the reason it appears in every article on the subject is that it is the only piece of schema with "spoken" in the description.

Google's own documentation has been consistent since it was introduced in 2018 and it says three things clearly. It is in beta. It is for news content. It is limited to English-language news publishers in the United States. It has been in that state for years.

// This is valid speakable markup. It is also, on an ecommerce site,
// almost certainly inert. Google's docs scope it to news publishers.
{
  "@context": "https://schema.org",
  "@type": "WebPage",
  "name": "How to measure a rug for a living room",
  "speakable": {
    "@type": "SpeakableSpecification",
    // CSS selectors pointing at the sections a machine should read aloud.
    "cssSelector": [".answer-summary", ".key-dimensions"]
  },
  "url": "https://example.com/guides/measuring-a-rug/"
}

Does it hurt? No. It is a few lines of JSON-LD and there is no penalty for markup that is not used. If you enjoy shipping it, ship it.

Does it help? I have never seen evidence that it does on a commercial site, and I have looked. What I object to is it being sold as the centrepiece of a paid programme, which is what I helped do in 2018. If someone quotes you for voice search work and speakable schema is a line item with hours against it, that is the tell.

The useful part of speakable is the thinking it forces: which two sentences on this page are the answer? That question is worth asking. You do not need the markup to ask it.

6. FAQPage Schema After August 2023

This one needs saying plainly because a lot of advice has not been updated.

On 8 August 2023 Google announced that FAQ rich results would be limited to "well-known, authoritative government and health websites", and that HowTo rich results would be removed entirely from desktop as well as mobile. For an ecommerce site, FAQPage markup no longer produces the expandable question accordions in the search results. It has not since 2023.

I still put FAQPage schema on pages that have a genuine FAQ section, and here is my honest reasoning, which is weaker than the reasoning I would have given in 2019.

It costs almost nothing to emit if your CMS already models questions and answers as structured content. It is consumed by systems other than Google's rich results — Bing has its own treatment, and there is reasonable evidence that LLM-based retrieval systems parse structured data when it is present. And if the policy reverses, you are already marked up.

What I would not do is restructure a page into questions in order to add the markup. That is the tail wagging the dog and it produces those awful pages where every heading is a question nobody asked.

{
  "@context": "https://schema.org",
  "@type": "FAQPage",
  "mainEntity": [
    {
      "@type": "Question",
      "name": "How long does delivery take to the UK mainland?",
      "acceptedAnswer": {
        "@type": "Answer",
        // The answer text must match what is visible on the page.
        // Markup that says something the page does not say is a
        // structured data violation, not a clever shortcut.
        "text": "Orders placed before 2pm are dispatched the same working day and arrive within 2 to 3 working days. Delivery is free on orders over £50."
      }
    },
    {
      "@type": "Question",
      "name": "Can I return a made-to-measure blind?",
      "acceptedAnswer": {
        "@type": "Answer",
        "text": "Made-to-measure items are exempt from the 14-day right to cancel under the Consumer Contracts Regulations, because they are made to your specification. We will still replace anything faulty or made to the wrong size."
      }
    }
  ]
}

The second answer there is doing something the schema is incidental to. It answers a question that would otherwise generate a support ticket, and it answers it honestly rather than evasively. That is worth more than the markup.

7. The Part That Was Always Right: Answer The Question Quickly

Strip out the voice framing and there is a genuinely good practice underneath, which is that a page should answer its central question in the first two sentences, in plain language, at a length a machine could read aloud in about thirty seconds.

This was good advice before voice search and it will be good advice after. It is what wins featured snippets. It is what gets a passage quoted in an AI Overview. It is what a reader who has scrolled to your page from a search result actually wants.

The shape that works, which I have used on hundreds of pages:

An H2 phrased as the question, in the words people use. Immediately below it, a paragraph of 40 to 60 words that answers the question completely, with no preamble and no "there are several factors to consider". Then the detail, the caveats, the exceptions, the diagrams.

The 40 to 60 word figure is not arbitrary. Analyses of featured snippet paragraphs consistently land in the 40 to 60 word range, and a spoken answer much longer than that stops being an answer and becomes a monologue. But do not pad to hit it, and do not truncate a real answer to fit it.

<!-- Answer-first structure. The question is the heading, the answer
     is the first paragraph, and the detail follows. -->
<h2 id="rug-size">What size rug do I need for a living room?</h2>

<p class="answer-summary">For most living rooms, choose a rug large
enough for the front legs of every seat to rest on it. In a typical
UK lounge that means 160 x 230cm for a three-piece suite, or
200 x 290cm if the sofas are arranged around a coffee table. Leave
at least 30cm of bare floor between the rug edge and the wall.</p>

<p>The full method: measure the seating footprint rather than the
room…</p>

The thing people get wrong is burying the answer under an introduction. "Choosing the right rug size is one of the most common questions our customers ask, and it depends on a number of factors including room size, furniture layout and personal preference." That paragraph contains no information. It is throat-clearing, and a machine picking a passage to read aloud will skip it, and so will a human.

8. Finding The Questions People Actually Ask

Every guide tells you to target question keywords. Most of them then tell you to use a tool that generates questions from a seed term, which produces plausible-looking questions nobody has asked.

Four sources of real questions, in order of quality.

Search Console, filtered to question queries. These are queries that already brought you impressions. You have the volume, the position and the click-through rate. This is the only source where you know the question was asked and know how you currently perform on it.

#!/usr/bin/env python3
"""Pull question-shaped queries from Search Console and rank them by
opportunity: impressions you already get at a position you could improve."""
import re
from googleapiclient.discovery import build
from google.oauth2 import service_account

SITE = "sc-domain:example.com"
QUESTION = re.compile(r"^(how|what|why|when|where|which|who|can|do|does|is|are|should)\b")

creds = service_account.Credentials.from_service_account_file(
    "sa.json", scopes=["https://www.googleapis.com/auth/webmasters.readonly"])
sc = build("searchconsole", "v1", credentials=creds)

rows = sc.searchanalytics().query(body={
    "startDate": "2026-02-01", "endDate": "2026-08-01",
    "dimensions": ["query", "page"],
    "rowLimit": 25000,
}).execute().get("rows", [])

opportunities = []
for r in rows:
    query, page = r["keys"]
    if not QUESTION.match(query.lower()):
        continue
    # Positions 4-15 are where a better answer paragraph can realistically
    # move you. Below 20 the problem is not the paragraph.
    if 4 <= r["position"] <= 15 and r["impressions"] >= 50:
        opportunities.append((r["impressions"], round(r["position"], 1), query, page))

for imp, pos, query, page in sorted(opportunities, reverse=True)[:100]:
    print(f"{imp:>6}  pos {pos:>5}  {query}\n         {page}")

Your own internal site search log, specifically the zero-result queries. Customers phrase things in your search box the way they phrase things to an assistant, and the zero-result list is a direct record of vocabulary your site does not contain. I have written about mining this for navigation and facet design in the discovery UX piece, and the same export serves both purposes.

Your support inbox and chat transcripts. The single richest source and the slowest to work through. Six months of tickets grouped by theme will give you thirty questions you can answer on product pages, each of which removes a ticket and earns a search impression.

People Also Ask boxes, harvested for the terms you already rank on. These are real questions from real query data, which is more than a keyword generator gives you. Use them to expand a page rather than to plan one.

What I do not use: question generators seeded from a head term, and the "conversational keyword" exports that some tools produce. In 2018 I built a target list of 340 conversational long-tail phrases for the homeware client. Checking them against Search Console a year later, 260 of them had never received a single impression. They were grammatically plausible sentences that nobody had ever typed or said.

9. Structured Data That Still Earns Its Place

Since FAQ and HowTo were curtailed, the schema worth spending effort on for an ecommerce site is narrower and more boring than it used to be.

TypeStatus in 2026Worth the effort?
Product / OfferFully supported, drives price, availability and review displayYes. The highest-value markup on any store.
AggregateRating / ReviewSupported, subject to policy on self-serving reviewsYes, if the reviews are genuine and on-page.
BreadcrumbListSupported, changes the URL display in resultsYes. Cheap and visible.
LocalBusinessSupported, feeds knowledge panel and local pack signalsYes, if you have premises. The most underused type in ecommerce.
OrganizationSupported, feeds entity understandingYes. Include sameAs, logo, contact points.
FAQPageRich result restricted to gov/health since Aug 2023Emit if you already have the content. Do not build for it.
HowToRich result removed entirelyNo.
SpeakableBeta, US English news only, since 2018No, on a store.
QAPageSupported for genuine user-generated Q&AOnly if you have real customer questions and answers.

The one on that list that gets skipped and should not is LocalBusiness. Any retailer with a showroom, a trade counter, a warehouse collection point or a single physical address has a local presence they are not marking up, and local is where voice intent is genuinely concentrated.

{
  "@context": "https://schema.org",
  "@type": "HomeGoodsStore",
  "name": "Marlow & Vale Homeware",
  "url": "https://example.com/",
  "telephone": "+44-1628-000000",
  "priceRange": "££",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "14 Bridge Street",
    "addressLocality": "Marlow",
    "addressRegion": "Buckinghamshire",
    "postalCode": "SL7 1AA",
    "addressCountry": "GB"
  },
  "geo": { "@type": "GeoCoordinates",
           "latitude": 51.5713, "longitude": -0.7739 },
  // Opening hours drive the "open now" answer, which is the single
  // most common local voice query shape. Get the bank holidays right.
  "openingHoursSpecification": [
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": ["Monday","Tuesday","Wednesday","Thursday","Friday"],
      "opens": "09:00", "closes": "17:30" },
    { "@type": "OpeningHoursSpecification",
      "dayOfWeek": "Saturday", "opens": "09:00", "closes": "16:00" }
  ],
  "specialOpeningHoursSpecification": [
    { "@type": "OpeningHoursSpecification",
      "validFrom": "2026-12-25", "validThrough": "2026-12-26",
      "opens": "00:00", "closes": "00:00" }
  ],
  "sameAs": [
    "https://www.facebook.com/example",
    "https://www.instagram.com/example"
  ]
}

The specialOpeningHoursSpecification block is the detail nobody fills in and it is the one that produces a wrong answer on Boxing Day, which is a real customer driving to a closed shop.

10. Local Intent Is The Actual Opportunity

If there is one place where the voice hype pointed at something real, it is here, and it is the part almost no voice search article covers because it is not a technical SEO problem.

The reasoning is simple. A voice query is most likely when a screen is inconvenient, and the situations where a screen is inconvenient are driving, cooking, carrying things and walking. Those situations have a strong bias towards local and immediate intent. "Where's the nearest", "is it open", "how do I get to", "who sells".

The infrastructure that answers those queries is not your website. It is your Google Business Profile, your Apple Business Connect listing, your Bing Places entry, and the consistency of your name, address and phone number across the directories those systems cross-reference.

So the work, for a retailer with any physical presence, in the order I would do it:

Claim and complete the Google Business Profile, including categories, attributes, opening hours with holiday exceptions, and photographs. A complete profile outranks an incomplete one for local pack placement more reliably than any on-site change.

Claim Apple Business Connect. Siri and Apple Maps use it, and a meaningful share of in-car and iPhone voice queries route through Apple rather than Google. It is free, it takes an hour, and it is skipped almost universally.

Get the NAP consistent. Same format, same phone number, same suite number, everywhere. Aggregator inconsistency is the most common cause of a business appearing twice with different hours.

Answer questions in the Q&A section of the profile yourself. You can post and answer your own questions and most businesses do not, leaving the section to be filled by customers guessing at each other's answers.

Collect reviews with a process, not a hope. Review count and recency are inputs to local ranking and to the answer an assistant gives.

Then, on the site, a location page per premises with the LocalBusiness markup above, embedded directions, and the specific stock or service that location holds. A store locator that is one JavaScript page with a dropdown is invisible; individual crawlable pages are not.

None of this is voice search optimisation. It is local SEO, and it has been the answer to "how do I get found by voice" since 2016, and it is boring enough that nobody built a £14,000 package around it.

11. Long-Tail Conversational Queries Are Just Long-Tail Queries

The standard advice is to target longer, more natural phrases because voice queries are longer. The observation is correct and the conclusion drawn from it usually is not.

What is true: spoken queries average longer than typed ones, are more often full sentences, and are more likely to be questions. Typed queries have also been getting longer for years independently, as people learned that search engines handle natural language.

What does not follow: that you should create pages targeting individual long-tail phrases. A page built for "what is the best rug size for a small living room with a corner sofa" is a thin page targeting a query with negligible volume, and Google has been consolidating that kind of content into broader pages since the helpful content work of 2022 and 2023.

The right structural response is one comprehensive page per topic, with sections addressing the variations, each section headed by the question in natural phrasing. One good page on rug sizing with eight question-shaped sections beats eight thin pages, and it is also the structure that gets passages extracted.

The measurable version of this claim, from the homeware client: of the 340 conversational phrases in the original target list, we eventually consolidated the content into 22 topic pages. Total impressions across the topic went up roughly 4x over eighteen months against the fragmented version, and average position improved on the head terms as well, because the link equity and the topical signal stopped being spread across forty near-duplicate pages.

12. Does Page Speed Affect Voice Results?

A claim you will see everywhere: voice search results load in around 4.6 seconds, which is much faster than the average page, therefore speed is a voice ranking factor.

That figure comes from a 2016 Backlinko study of about 10,000 Google Home results. It is a correlation from a single study on a device category that barely exists in that form now, and it has been repeated for a decade as though it were causal.

The honest position: speed matters, it is a ranking signal, it matters for conversion far more than it matters for ranking, and none of that is specific to voice. If your page is fast, it is fast for everyone. Build for the general case and you have covered the voice case. I have written about the measurement side of this at length in the Core Web Vitals monitoring piece, and none of it changes because a query arrived by microphone.

What I would push back on is any proposal that frames a performance project as voice optimisation. Do the performance project. Do not let it be sold to you under a label that makes the success criteria unmeasurable.

13. Where This Actually Went: Assistants, Not Speakers

The genuinely interesting development is that the thing voice search was supposed to become — a single spoken answer with no list of links — arrived, and it arrived through large language models rather than through speakers.

Google's AI Overviews sit above the results on a growing share of queries. ChatGPT search, Perplexity, and Copilot answer questions directly and cite a handful of sources. Alexa+ is an LLM assistant. When someone speaks a question to any of these, they get one answer, synthesised, with maybe three citations.

That is the single-answer world the 2018 decks described. The optimisation problem is real and it is different from classic SEO in one specific way: you are no longer competing for a click, you are competing to be the source a model quotes.

What I have found matters, with the caveat that this is a fast-moving area and anyone claiming certainty is guessing.

Being quotable. Clear declarative sentences containing a complete fact. "The standard rug size for a three-seat sofa is 160 x 230cm" is quotable. "Rug sizing depends on your room" is not. This is the same answer-first discipline as featured snippets, which is convenient.

Being specific and checkable. Numbers, dates, named standards, dimensions. Models appear to favour passages with concrete detail, and so do humans.

Being cited elsewhere. Brand mentions across the wider web appear to correlate with being surfaced, more than classic backlink metrics do. This looks a lot like old-fashioned PR and it is not something a technical change delivers.

Being crawlable by the right agents. This is the one purely technical item and it is a decision, not a default. Blocking GPTBot removes you from ChatGPT's retrieval. Blocking Google-Extended does not affect classic search ranking but does affect Gemini and AI Overview grounding. Whether you want to be in those systems is a genuine business question — they take your content and may not send traffic — and I have clients who have gone both ways.

# robots.txt — an explicit, defensible position rather than a default.
# Decide each of these deliberately; the consequences differ.

User-agent: Googlebot
Allow: /

# Google-Extended controls Gemini training and AI Overview grounding.
# It does NOT affect classic Search ranking. Blocking it removes you
# from AI Overviews without protecting your Search position.
User-agent: Google-Extended
Allow: /

# OpenAI: GPTBot is training, OAI-SearchBot is the search index that
# powers ChatGPT's citations. Blocking GPTBot while allowing
# OAI-SearchBot is the "cite me, don't train on me" position.
User-agent: GPTBot
Disallow: /

User-agent: OAI-SearchBot
Allow: /

User-agent: PerplexityBot
Allow: /

User-agent: ClaudeBot
Allow: /

# Filtered category URLs waste crawl budget for every agent.
User-agent: *
Disallow: /*?colour=
Disallow: /*?sort=
Sitemap: https://example.com/sitemap.xml

The "cite me, do not train on me" split is the position I recommend to most retail clients: allow the search-and-cite agents, block the pure training crawlers. It is not enforceable in any strong sense, and it is a stated preference rather than a technical control, but a stated preference is what the current conventions run on.

The measurement problem here is the same one voice always had. You cannot see which AI answers cited you from your own analytics, and referral traffic from these systems is small and inconsistently tagged. The only practical method is to periodically ask the assistants your own target questions and record whether you appear, which is manual, subjective and the best available option.

14. You Cannot Measure Voice, And You Should Say So

Nothing in Google Analytics, Search Console or any other tool tells you a query arrived by voice. Search Console does not carry an input-method dimension. It never has.

Which means any agency reporting "voice search traffic" is doing one of three things. Reporting question-shaped queries as a proxy, which is defensible if labelled and dishonest if not. Reporting a vendor's estimate, which is a model output. Or making it up.

The proxy is genuinely useful as long as everyone understands what it is. Question-shaped queries, long queries, and "near me" queries are correlated with voice input, and tracking them as a segment tells you something about how you perform on conversational intent.

-- Conversational query segment from a Search Console export in
-- BigQuery. This is a PROXY. Label it as one on the report.
SELECT
  CASE
    WHEN REGEXP_CONTAINS(query, r'\b(near me|nearest|open now|close to me)\b')
      THEN 'local_intent'
    WHEN REGEXP_CONTAINS(query,
         r'^(how|what|why|when|where|which|who|can|do|does|is|are|should)\b')
      THEN 'question'
    WHEN ARRAY_LENGTH(SPLIT(query, ' ')) >= 6
      THEN 'long_conversational'
    ELSE 'standard'
  END AS segment,
  COUNT(*)              AS queries,
  SUM(impressions)      AS impressions,
  SUM(clicks)           AS clicks,
  SAFE_DIVIDE(SUM(clicks), SUM(impressions)) AS ctr,
  AVG(position)         AS avg_position
FROM `project.searchconsole.searchdata_site_impression`
WHERE data_date BETWEEN '2026-02-01' AND '2026-08-01'
GROUP BY segment
ORDER BY impressions DESC;

What I put on a client report now: this segment, labelled as a proxy, with a sentence explaining that input method is not observable. It is a less exciting slide than the one I used to present. It has also never produced an awkward question six months later, which the exciting slide did.

15. A Worked Example, Including What Did Not Move

A blinds and shutters retailer, 2024 to 2025. Magento 2.4.6, one showroom in Buckinghamshire and national delivery, around 180,000 organic sessions a year. They came to me having read that they were missing out on voice and wanting a programme.

I talked them out of the programme they asked for and we did this instead.

Month one: research. Pulled six months of Search Console, filtered to question and near-me shapes. 1,140 question queries with impressions, of which 190 had 50 or more impressions at positions 4 to 15. Exported eighteen months of internal search zero-results, 2,300 distinct queries. Read four months of support tickets and grouped them into 41 recurring questions.

Months two and three: content consolidation. They had 63 thin pages built by a previous agency, each targeting a conversational phrase. We merged them into 14 topic guides, each with an answer-first opening and eight to fifteen question-shaped sections drawn from the real question list. 49 URLs were 301'd.

Month three: local. Google Business Profile completed properly, including holiday hours and 40 photographs. Apple Business Connect claimed, which had never been done. NAP fixed across eleven directories. A proper location page with LocalBusiness markup replacing a contact page with an embedded map.

Month four: product page answers. The top eight support questions added to product pages as a visible Q&A block with FAQPage markup, phrased in customer language rather than product-manual language.

Month five: crawler policy. The robots.txt position above, after a conversation with the owner about what he wanted, which took longer than implementing it.

Results at twelve months. Organic sessions up 31%. Impressions on question-shaped queries up 118%, clicks on them up 94%. Featured snippets held on 34 queries versus 6 at the start. Local pack impressions up 210%, and — the number that mattered to the client — showroom appointment bookings from organic up 44%, from 61 a quarter to 88.

What did not move. Nothing measurable happened as a result of the FAQPage markup, which behaved exactly as the post-2023 policy predicts. No rich results appeared. I included it anyway on the reasoning above and I told the client it was speculative, which is the difference between this project and the one in 2018.

The Apple Business Connect claim also produced nothing I could measure, because Apple provides very little reporting. I still think it was correct to do. Sometimes the honest answer is that you did a cheap sensible thing and cannot prove it worked.

What went wrong. The consolidation of 63 pages into 14 caused a traffic dip of about 18% in weeks three to seven while Google reprocessed the redirects. I had told the client to expect a dip and had said four weeks; it was closer to seven, and there was an uncomfortable meeting in week five. If I did it again I would stage the consolidation across three months rather than doing it in one release, purely to keep the dip shallow enough that nobody panics. The end state would be the same and the middle would be less alarming.

16. What I Would Refuse To Build

Being specific, because "it depends" is not useful here.

An Alexa skill or a Google Assistant action for a retail store. The Google platform is closed and the Amazon one has moved on. Unless you are a media brand with a genuine audio product, this is money into a hole.

A separate "voice-optimised" version of pages. There is no separate index. You would be building duplicate content and asking Google to sort it out.

Speakable markup as a paid deliverable with hours attached. Ship it in ten minutes if you like it. Do not pay for it.

A voice search ranking report. The data does not exist. Any report claiming voice rankings is derived from something else and the derivation is where the fiction lives.

Content restructured into questions purely for the markup. Pages where every heading is a question and the answers are two sentences of padding are recognisable, and they perform like what they are.

A conversational chatbot on the storefront justified as a voice strategy. It might be a good idea for support deflection. It has nothing to do with search.

17. Questions I Get Asked

"Is voice search dead, then?" No, and I would not want that to be the takeaway. People speak to their phones constantly. What is dead is the idea that it constitutes a separate channel requiring separate optimisation. It is search, with a different input method and a slightly different query distribution.

"Should I still write in a conversational tone?" Write clearly, which usually means conversationally. But do not contort a specification table into a conversation. The register should match what the page is for.

"What about non-English voice search?" Growing much faster than English, and the assistants are noticeably weaker at it, which cuts both ways. If you sell into markets where a language other than English dominates, get native-speaker keyword research rather than translating an English list. Translated keyword lists are the single most common cause of international SEO underperformance I see.

"Does schema help with AI Overviews?" The honest answer is that nobody outside Google knows. Structured data makes a page easier to parse, and the systems that generate these answers are retrieval-augmented, so it is plausible. I ship Product and Organization markup regardless because they have independent justification. I would not ship anything solely on the AI Overview hypothesis.

"How much should I spend on this?" On voice specifically, nothing. On the underlying work — answer-first content, real question research, local presence, structured data, speed — as much as you would have spent on SEO anyway, which for a mid-size retailer I would put in the range of a few days a month sustained rather than a project with an end date.

"Our competitor has an Alexa skill." Ask them how many orders it takes. In my experience they will not know, because nobody is looking, which is itself the answer.

"Will AI assistants kill our organic traffic?" They will reduce clicks on informational queries, which is already visible in the click-through rates on question-shaped terms. Transactional and product queries are less affected so far, because people still want to see the product and compare prices. If your organic traffic is mostly informational blog content monetised by onward navigation, that model is under real pressure. If it is product and category pages, less so. This is worth planning for honestly rather than hoping about, and it connects to the broader argument about what organic search is for that I set out in the piece on why SEO still matters.

"What one thing would you tell someone about voice search?" That the answer to it is the same as the answer to everything else in search: answer real questions clearly, be findable locally, be fast, and be specific enough that a machine can quote you without paraphrasing. There is no second technique.

18. What I'd Do First

In order, and the whole list is cheaper than the package I helped sell in 2018.

One. Export your Search Console question and near-me queries, filtered to positions 4 to 15 with meaningful impressions. This is your actual opportunity list and it takes an afternoon. Everything else follows from it.

Two. Pull the zero-result queries from your internal site search and read them. Two hours, and it will change how you phrase headings.

Three. Take your top twenty pages and check whether each answers its central question in the first two sentences. Most will not. Rewrite the openings. This is the single highest-return change in this article and it costs nothing but writing time.

Four. If you have any physical premises, complete the Google Business Profile properly, including holiday hours, and claim Apple Business Connect. An hour each, and it is the closest thing to a genuine voice-specific win available.

Five. Audit your Product, Offer, Organization and BreadcrumbList markup with the Rich Results Test. These are the types that still do something. Fix the errors before adding any new types.

Six. Consolidate thin question-targeted pages into topic guides — staged over a few months rather than in one release, which is the thing I got wrong.

Seven. Decide your position on AI crawlers deliberately and write it into robots.txt. Not because it is urgent, but because the default is a decision you did not make.

Eight. Set up the conversational query segment as a proxy metric and label it as a proxy on every report it appears on.

The thing I would argue about hardest is the third step, because it is the one that sounds too simple to be the answer. It is the answer. Every mechanism in this article — featured snippets, spoken results, AI citations, plain human readers — rewards a page that says the useful thing first. Eight years of watching this category get repackaged has not turned up a technique that beats it, and I no longer expect one.

Suggested & Related Reading

Explore related engineering guides from Kenneth D'Silva: