AnswerShare, We Speak AIClient onboarding

How it works.

Your website. Ready for AI.

AnswerShare reroutes bot traffic at the edge: AI crawlers go to the AnswerShare AI translation layer, while search engines and people go to the current website.
Your website remains unchanged. The Translation Layer gives frontier models a faster, clearer source of truth.

The diagram shows your website, with no changes, feeding the AnswerShare AI Translation Layer, which gives ChatGPT, Claude, Gemini, Perplexity, DeepSeek, Meta AI and Grok trusted answers and recommendations: no noise, all signal; token-economy speed; source grounded. Are you considered and recommended when they do? 94% of B2B buyers report using AI in their buying process (Forrester Buyers’ Journey Survey 2025, reported January 22, 2026).

Texas First Rentals onboarding with AnswerShare

The short version of your AnswerShare test run on www.texasfirstrentals.com: one rewrite rule your team reviews and deploys, about two weeks from kickoff to production, and a seven-day soak before handover. The schedule below shows how the weeks fit together; the Architecture tab shows what happens to a request once the rule is live. Nothing is deployed to texasfirstrentals.com yet, and nothing goes live until HOLT has approved the rule, the data processing agreement and the preview.

Status on 23 October 2026: not live. Shane Wall asked on 21 October 2026 to move forward with a test run, and the kickoff call is not yet booked. Weeks count from kickoff, and calendar dates are set on that call. Question for HOLT: Which date works for the kickoff call with Stephen?

Project schedule

ActivityWeeks from kickoff
Kickoff call, Week 0A technical call with Stephen Marston and your engineers. We agree the test window, the contacts and the access requests.
Your review of the rule and the data processing agreement, Weeks 0 to 1Your engineers review the rule and the crawler list. Your counsel reviews the agreement.
AI version build, Weeks 0 to 2Our work. We finish the AI versions of your English and Spanish pages while you review.
Vercel preview and pre-launch tests, Weeks 1 to 2Your team opens the preview. We run the test matrix and share every result.
Production enable on www, Week 2Your team deploys the rule in a deployment of its own, with Stephen and our engineer both online.
7-day soak, Weeks 2 to 3We check every minute. You can ask for a revert at any time.
Handover call, Week 3, after day 7 of the soakWe walk your team through the dashboard and give access on this call.
Baseline-vs-result readouts, at the handover call, then 30 and 90 days after enableAt the handover call, then 30 and 90 days after enable. Each compares with the baseline taken before launch.

Each phase: what happens, who does it, and when it is done

PhaseWhat happens
1. Kickoff with Stephen Marston
Week 0

Question for HOLT: Which date works for the kickoff call with Stephen?

A technical call. We walk through the rule, the side-by-side pages, the preview tests and the data processing agreement, agree the test window and contacts, and make the access requests on the Tasks tab.Who: Stephen Marston and HOLT engineers; AnswerShare engineering; Kevin Myers, Co-Founder of AnswerShare and sponsor of this projectDone when: Payment Received. Test window, contacts and access requests agreed.
2. Your review of the rule
Weeks 0 to 1
Your engineers review the rule and the crawler list, and remove any crawler you do not want served. Your counsel reviews the data processing agreement. In parallel we finish the AI versions of your English and Spanish pages and confirm the address the rule points to.Who: HOLT reviews; AnswerShare answers questions and makes requested changesDone when: Rule text approved by HOLT, with a version number. DPA comments returned.
3. Vercel preview and pre-launch tests
Weeks 1 to 2
Your team opens a branch with the rule, which gives a Vercel preview. We run the pre-launch test matrix against it and share every result. Your team runs its own checks, including a form submission and the revert test. We also hold the webhook test session and take the "before" measurements (see measuring results).Who: HOLT creates the preview; AnswerShare runs the matrix; both review resultsDone when: Every test in the matrix passes, and the before measurements are saved.
4. Production enable on www
Week 2

Question for HOLT: Which weekday and time suits Stephen for the production deploy?

Your team merges and deploys the rule to production in a deployment of its own, during a slot when Stephen and our engineer are both online. We repeat the core tests against www within the first hour. We confirm the slot 48 hours ahead.Who: HOLT deploys; AnswerShare testsDone when: Core tests pass on www. AI crawlers receive the AI version; people and search crawlers receive the normal page.
5. 7-day soak
Weeks 2 to 3
We check every minute that search crawlers and browsers still get your normal pages, that AI crawlers get the AI version, and that error rates and response times stay inside the limits under Stop conditions on the Requested Details tab. Our AI-crawler traffic watch alerts us if AI-crawler traffic stops.Who: AnswerShare monitors; HOLT can ask for a revert at any timeDone when: Seven consecutive days with no stop condition.
6. Handover call
The first day after the 7-day soak ends; the date is fixed once the production slot is agreed
We walk your team through the AnswerShare dashboard and give dashboard access on this call. Access is given only at the handover, after the soak.Who: BothDone when: Your named users can sign in to the dashboard.
7. Baseline-vs-result readouts
At the handover call; 30 days after enable; 90 days after enable [CONFIRM: cadence]
Each readout compares results with the baseline taken before launch, using the same instruments. The first readout covers the crawler side: AI crawler visits by type, the user-intent share, and the size and cost of what AI crawlers receive. The 30-day and 90-day readouts add answer share, the GEO and SEN scores, and AI-referred sessions from Google Analytics.Who: AnswerShare prepares; both reviewDone when: A written readout with every figure, its date and its source.

The detail behind each phase (the rule, the preview tests, the stop conditions and how we measure results) is on the tab. The proposal is here.

Your part now

What the translation layer does for Texas First Rentals

AI assistants describe Texas First Rentals from what they can find. Your proposal records that Texas First Rentals is named in 13 of 15 saved answers and 3 of 5 discovery answers, and that fleet, delivery, service and trench-safety facts are scattered across pages. The AI version of each page organizes those facts, in plain text, with the live page they came from and the date we captured them.

  • Your English pages and your Spanish pages under /es-US each get an AI version at the same address.
  • Fleet, delivery, 24-hour emergency service, trench safety and rental-management facts stay tied to their source.
  • Your home page costs an AI crawler 67,753 tokens to read today, and 1,267 of its 2,299 visible characters are page content (6 October 2026 baseline). The AI version is built to optimize both.
Sources: proposal efa83680 (October 2026); baseline row 0d5e398e-82ef-4d4f-a334-9ac99bf0f223 (6 October 2026).

Before kickoff

Confirm your contacts and billing

You

Stephen Marston is already your point of contact for the technical setup, and Shane Wall owns the test run. Stephen Marston also approves what we publish. We need one more name: who receives the invoices.

  1. Business owner: Shane Wall, Sr. Manager, Digital Innovation, HOLT Group.
  2. Technical contact: Stephen Marston.
  3. Bill to: HOLT Group, Texas First Rentals. Question for HOLT: Who should receive the invoices (name and email)?
  4. Content approver: Stephen Marston (stephen.marston@holtgrp.com). His written approval gates publication.

Click flow: your email > new message to kevin@answershare.com > subject "Texas First Rentals billing contact" > the name and email of the person who receives invoices > Send

You should see: a reply from Kevin Myers confirming the billing contact.

Book the kickoff call

You

The kickoff call starts the schedule above. Stephen Marston and an engineer from HOLT join, with Kevin Myers, Co-Founder of AnswerShare and sponsor of this project, and our engineer.

  1. Question for HOLT: Which date works for the kickoff call with Stephen?

Click flow: your email > new message to kevin@answershare.com > subject "Texas First Rentals kickoff call" > two or three dates and times in the next two weeks that suit Stephen and your engineer > Send

You should see: a calendar invitation from Kevin Myers for the kickoff call.

Review the data processing agreement

You

Your counsel reviews the draft agreement. AnswerShare never receives data about your visitors, and the agreement says so in writing.

  1. Return comments to Stephen Marston's thread with us, or mark the Word file directly.

Click flow: Data processing agreement page > AnswerShare-TFR-DPA-DRAFT.docx: download

You should see: the Word file AnswerShare-TFR-DPA-DRAFT.docx saved to your computer, marked as a draft.

Review the rule and the crawler list

Together

The rule is one rewrite in your next.config.js. Your engineers review the text and the list of named AI crawlers, and remove any crawler you do not want served. Nothing is deployed until you merge it.

  1. Read how the rule decides, what reaches AnswerShare, and what happens if our service is slow or down.
  2. Reply with the approved rule version number. The current draft is version 0.1 of 21 October 2026.

Click flow: The rule page > How it decides > Named AI crawlers: strike any name you do not want served

You should see: the list of named AI crawlers and the line "Rule version 0.1".

Review the side-by-side pages

You

Five of your pages, three English and two Spanish, shown beside their AI versions. Each fact carries the address of the live page it came from and the date we captured it.

  1. Tell us any fact that is wrong, missing or unwanted.

Click flow: Side-by-side pages > Home (English) > Facts checked: read the table

You should see: a table of facts with the live page on one side, the AI version on the other, and a Source line with the page address and capture date.

Google Analytics: Viewer access for AnswerShare

You

We found Google Tag Manager on your site but could not see the GA4 property. Viewer access lets us read aggregate reports of AI-referred sessions, before and after launch. We never pull revenue, transactions, conversions, funnels or user-level data.

  1. Property level only, never Editor, Admin or account level. If you do not use Google Analytics, say so and we mark the step not needed.

Click flow: analytics.google.com > the Texas First Rentals property > Admin > Property access management > + > Add users > aria@aryah.ai: Viewer

You should see: aria@aryah.ai in the list with the role Viewer.

Search Console: Restricted access for AnswerShare

You

We could not see a Search Console verification record. If the property is verified another way, add us as a Restricted user. If it is not set up, tell us and we plan without it.

Click flow: search.google.com/search-console > www.texasfirstrentals.com > Settings > Users and permissions > Add user > aria@aryah.ai: Restricted

You should see: aria@aryah.ai in the Users and permissions list with the permission Restricted.

Share 30 days of AI-crawler request counts from Vercel

You

Your Vercel request counts are the only "before" count of AI-crawler visits. We want counts by user agent only, no IP addresses. If Vercel keeps no history on your plan, we report crawler visits from launch onward and say so. Question for HOLT: How many days of request logs does your Vercel plan keep, and can your team export counts by AI-crawler user agent for the last 30 days?

Click flow: vercel.com > your team > the Texas First Rentals project > Logs > filter by user agent (GPTBot, ClaudeBot, PerplexityBot) > last 30 days: counts only. We confirm the exact menu names on the call.

You should see: a count of requests per AI-crawler user agent for the last 30 days, with no IP addresses.

Vercel preview with the rule

You

Your team opens two previews from the same branch point. Preview A has the rule. Preview B is the same commit without it, as the control. We run the pre-launch test matrix against them and share every result. Vercel previews are often protected, so you choose how we reach them. Question for HOLT: Which do you prefer: your team runs our test script, or you give us a protection-bypass value on a call?

Click flow: vercel.com > your team > the Texas First Rentals project > Deployments > the preview built from the branch that carries the rule: Ready. We confirm the exact menu names on the call.

You should see: the preview deployment with the status Ready and a preview address you can open.

Deploy webhook from your pipeline

You

When your site deploys, one short step sends us the addresses of the pages that changed, signed with a secret we hand over on a call, never by email. We refresh the AI version of those pages within minutes. We never poll or crawl your site on a schedule to find changes. Stephen receives the publish webhook guide (version 1.0, 8 October) before the kickoff call.

Click flow: your deploy pipeline > the step that runs after a production deploy > add the webhook step from the guide: enabled. We confirm the exact steps on the webhook test session.

You should see: the step in your deploy log, and a test delivery we confirm on the call.

Optional: send keyword research exports

You

Two views help us build the question set from your own data: pages with their keywords and monthly search volume, and keywords mapped to pages. Any tool's export works. This does not block the build.

Click flow: your SEO tool > Export > page planning CSV and keyword mapping CSV > share the folder with aria@aryah.ai: Viewer

You should see: both files in the shared folder, with the export date, tool and market in the file names or a note.

Our work, in parallel

We build the AI version of texasfirstrentals.com

AnswerShare

Our work, not yours. It needs nothing from your team beyond the answers above.

  1. We build and host the AI version of your English pages and your Spanish pages under /es-US, each fact tied to the live page it came from.
  2. We run the pre-launch test matrix on your Vercel preview and share every raw result.
  3. We take the "before" measurements: the GEO score, SEN, RR, RTC and the answer-share prompt set, so each readout compares with the same instruments.

Production enable

Deploy the rule to production on www

Together

Your team merges and deploys the rule in a deployment of its own, in a slot when Stephen Marston and our engineer are both online. We repeat the core tests against www within the first hour.

  1. Book the cutover call for a weekday and time when Stephen and our engineer are both online. We confirm the slot at least 48 hours ahead.

Click flow: Book the cutover call > pick a date and time > Confirm

You should see: a confirmation page with the date and time, and a calendar invitation in your inbox.

Book the cutover call

Then, on the call:

Click flow: your Git host > the Texas First Rentals repository > the pull request with the rule > Merge: merged; then vercel.com > your team > the Texas First Rentals project > Deployments > Production: Ready. We confirm the exact menu names on the call.

You should see: a Production deployment with the status Ready, and our core tests passing on www.

To revert at any time:

Click flow: vercel.com > your team > the Texas First Rentals project > Deployments > the production deployment before the rule > Instant Rollback: confirm

You should see: the earlier deployment marked as Production, and the rule no longer active.

After production

Seven-day soak

AnswerShare

We check every minute that search crawlers and browsers still get your normal pages, that AI crawlers get the AI version, and that error rates and response times stay inside the agreed limits. Our AI-crawler traffic watch alerts us if AI-crawler traffic stops.

  1. Done when seven consecutive days pass with no stop condition.
  2. You can ask for a revert for any reason, with no justification needed.

Handover call

Together

After day 7 of the soak we walk your team through the AnswerShare dashboard and give dashboard access on this call. Access is given only at the handover, after the soak. The date is fixed once the production slot is agreed. Question for HOLT: Who on your team needs a dashboard account?

  1. Readouts compare results with the baseline taken before launch: at the handover call, 30 days after enable, and 90 days after enable. [Kevin to confirm: readout cadence]

FAQ review, after go-live

You

The FAQ review is a post-launch task, and nothing before production waits on it. Until you approve the FAQ, the AI version carries only FAQ content already published on your site, never the draft. The draft we sent on 18 October moves to this step.

  1. Edit or comment in the shared Google Doc. Nothing is published until your content approver approves it.

Your current setup

ItemValue
OwnerTexas First Rentals is a Texas equipment-rental business within HOLT Companies, according to its AnswerShare proposal.HOLT Group. Shane Wall owns the test run; Stephen Marston is the technical contact.
DNSNot touched. The www record keeps pointing at Vercel. Read on 8 October 2026.Network Solutions (ns95 and ns96.worldnic.com)
WebsiteServer-rendered, not a single-page app. Many pages are prerendered, which is why the rule sits in next.config.js and not in vercel.json.Next.js App Router, hosted on Vercel
PagesSitemap read on 8 October 2026.497 page addresses: 377 equipment, 42 locations, 42 news and 36 other
LanguagesYour language routing is untouched. The rule runs after it, so it covers both.English at / and Spanish under /es-US
How AnswerShare connectsOne rewrite rule in beforeFiles. No middleware, no code on any visitor's request, no credential in your project.A rewrite rule in next.config.js, reviewed, merged and deployed by your team
EmailMail runs on a different part of your setup and is not touched. Read on 8 October 2026.Proofpoint for mail routing, Microsoft 365 in the SPF record
Web analyticsWe could not see the GA4 property ID. See the Tasks tab.Google Tag Manager detected
Search ConsoleNo verification record was visible.Not detected
How content stays currentWebhook, not polling. Our page fetcher uses its own user agent, which the rule does not match, so a refresh always reads your normal page.A signed publish notice from your deploy, with the addresses of changed pages
What you approve firstEach is a written approval with a named approver and a retained timestamp.The rule version, the data processing agreement and the preview pages
Dashboard accessNever at kickoff or at production enable.At the handover call, after the 7-day soak

Where you start, before the rule

MeasureValue
GEO scoreMedian of five engines. Measured 6 October 2026 23:07 UTC, comparison_scores row 0d5e398e-82ef-4d4f-a334-9ac99bf0f223. Grok 49, Perplexity 47, Claude 31, Gemini 50, OpenAI 55; Claude dropped as an outlier.49.5
SEN (brand sentiment)Same row. Grok 65, Perplexity 0, Claude 5, Gemini 50, OpenAI 50.50
RR (Relevance Ratio)Same row. Home page: 1,267 characters of content out of 2,299 visible.0.5511
RTC (Retrieval Token Cost)Same row. Home page: 67,753 tokens, 0.052 seconds to last byte, 1,267 useful characters.2.7807
Answer shareNo prompt set exists yet. We build it from your data and review it with you before the first run. Checked 21 October 2026.Not yet measured
AI-crawler visitsWe have no view of your traffic until the rule is live. Your Vercel counts are the only before source.Not yet measured

What we can and cannot see or change

  • We never ask for a password or a login to any of your systems.
  • No secret or credential goes into your Vercel project.
  • People, Googlebot, Bingbot and the other search crawlers never match the rule and get texasfirstrentals.com exactly as they do today.
  • The rule reads the User-Agent header only. It never looks at IP addresses or networks, and it skips Next.js internals, /api/, form submissions and any path that ends in a file extension.
  • Your DNS, Vercel firewall and bot protection, site code, language routing and analytics are not changed.
  • AnswerShare never receives data about your visitors, and the data processing agreement says so.
  • Your team reviews, merges and deploys every change. We send any change to the rule or the crawler list as a pull request.
  • Reverting takes one step: roll back to the production deployment before the rule, or remove the rule and redeploy.
  • A rewrite rule has no built-in fallback for the AI-crawler request itself. If our service cannot answer, Vercel returns an error to that crawler for that request, and the crawler retries later. People and search crawlers are never affected.

How AnswerShare fits your stack

  1. A request for www.texasfirstrentals.com → Vercel
  2. Vercel → the rewrite rule in next.config.js, which reads the User-Agent only
  3. Rewrite rule (people and search crawlers) → your Next.js site, unchanged
  4. Rewrite rule (named AI crawlers only) → the AnswerShare edge service, which returns the AI version of the same page at the same address
Request to www.texasfirstrentals.com
A person, Googlebot, or an AI crawler
Vercel
Already serves www today; DNS at Network Solutions is not touched
Rewrite rule in next.config.js
Reads the User-Agent only. Reviewed, merged and deployed by your team
Your Next.js site
Unchanged, English at / and Spanish under /es-US
AnswerShare edge service
AI version of the page, built from approved content
  • Your DNS, Vercel firewall and bot protection, site code, language routing and analytics are not changed. The only change is one rewrite rule your team deploys.
  • People and search engines such as Googlebot keep getting texasfirstrentals.com exactly as they do today. Only named AI crawlers are routed to AnswerShare.
  • If a page has no AI version yet, or our content service is slow, our edge service fetches your normal page and returns it unchanged to the AI crawler.
  • If our edge service is unreachable, Vercel returns an error to that AI crawler for that request, and the crawler retries later. This is the cost of having no code on your visitors' requests.
  • Every response we send is marked Cache-Control: private, no-store, so an AI copy never sits in a cache where a visitor could get it.
  • Content stays current through the signed publish webhook from your deploy, not through polling.
  • Removing AnswerShare takes one step: roll back to the production deployment before the rule, or remove the rule and redeploy.

Requested details

Shane Wall asked for the detail behind the test run. It is collected here, in the order your team will need it. Each section links to its full document. Everything on this tab is a draft for your review, and points marked for confirmation are settled at kickoff.

On this tab

Stop conditions, revert and who does what

What we need from HOLT

Each item links to the place on these pages where we ask it. Answers on a call or by reply are fine.

  1. Kickoff date (plan and timeline, phase 1)
  2. Production deploy weekday and time (plan and timeline, phase 4)
  3. Vercel log retention and AI-crawler counts for the last 30 days (access we ask for)
  4. Preview access: your team runs our test script, or a protection-bypass value on a call (access we ask for)
  5. Stop limits for AI-version failures (stop conditions)
  6. Stop limit for page speed (stop conditions)
  7. Final list of pages under test (preview testing)
  8. Firewall and bot protection settings on the preview (preview testing)
  9. Any account or transaction paths on www (the rule)
  10. Your Next.js version (the rule)
  11. Whether you use Instant Rollback on your Vercel plan (the rule)

Stop conditions and revert

The rule is revertible in one step: roll back to the production deployment before the rule (Vercel's Instant Rollback, no rebuild), or remove the rule and redeploy. Because the rule ships in a deployment of its own, a rollback removes nothing else. Details are on the rule page.

ConditionAction
Any browser or search crawler receives the AI version of any pageRevert at once, then investigate.
The AI version fails (5xx or timeout) for more than 1% of AI-crawler requests in any hour, or for 15 minutes in a row

Question for HOLT: Do these limits (more than 1% failures in an hour, or 15 minutes in a row) suit Stephen's team, or would you set different ones?

Revert, or fix within the hour if the cause is known and on our side.
Your normal pages get slower for people after the rule ships (median time to first byte more than 10% above the week before)

Question for HOLT: Is a 10% rise in median time to first byte the right trigger for your team, or would you set a different limit?

Revert and investigate.
HOLT asks for a revert for any reasonRevert. No justification needed.

Who does what

HOLT / Texas First RentalsAnswerShare
Reviews and owns the rule; removes any crawler name it does not want.Writes the rule and the crawler list; sends any change as a pull request.
Creates the Vercel preview; runs its own checks, the form test and the revert test.Runs the pre-launch test matrix and shares every raw result.
Deploys to production in the agreed slot; can revert at any time.Builds and hosts the AI versions of your pages; keeps them current from your webhook.
Adds the webhook step to your deploy.Monitors every minute and alerts on a stop.
Grants read-only analytics access.Takes the baseline and writes each readout.
Reviews the FAQ after go-live.Signs the data processing agreement; never receives data about your visitors.
Open points are settled at kickoff; the questions for your team are collected under What we need from HOLT. Nothing here has been deployed. AnswerShare does not deploy to your project; every change goes through your review.

Our page fetcher

Our page fetcher identifies itself with its own user agent, which the rule does not match, so a refresh always reads your normal page. We give you that user agent and its IP address before the webhook test so you can recognise it, or allow it in your Vercel firewall. [CONFIRM: fetcher user agent and IP]

Full plan and timeline

The rule, for your team's review

Rule version 0.1, draft of 21 October 2026. Nothing here is deployed. Your team reviews, edits, merges and deploys it.

What we propose, and why

We propose a Next.js rewrite rule in next.config.js, in the beforeFiles phase, that sends page requests from named AI crawlers to AnswerShare as an external rewrite. We are not proposing middleware, and the rule does not go in vercel.json.

  • Why not vercel.json. Our 19 October email said the rule would go in vercel.json. That was a mistake; the diagram we sent with it shows the correct place, next.config.js. Vercel applies vercel.json rewrites only after it checks for a matching file ("precedence is given to the filesystem prior to rewrites being applied", Vercel's vercel.json documentation). Your pages are prerendered: on 21 October your home page and /es-US both answered with x-nextjs-prerender: 1. A vercel.json rule would therefore be skipped for most of your pages. Next.js beforeFiles rewrites are checked before files and pages, so the rule works on prerendered pages.
  • Why not middleware. A rewrite rule is configuration. Next.js reads rewrites() once, at build time, and no code of ours runs on any request. Middleware would run on every page request, including your visitors' requests. It would also need a credential in your Vercel environment variables, and it would have to be kept current with Next.js releases. Your 21 October reply said the move to the rewrite rule addressed your biggest concerns, so we kept it.
  • The trade-off, stated plainly. A rewrite rule has no built-in fallback. If AnswerShare cannot answer, Vercel returns an error to that AI crawler for that request. People and search engines are never affected. The section "If AnswerShare errors or times out" gives each case and what we do about it.

How it decides

  1. User agent only. The rule reads the request's User-Agent header. It never looks at IP addresses or networks.
  2. Named AI crawlers in. A request is routed only if its user agent contains one of the AI crawler names in the list below. The list comes from AnswerShare's canonical crawler classification, the AI_BOTS set in src/bot-classification.ts, at commit b43382d of 2 October 2026. Changes reach you only as pull requests.
  3. Search crawlers out, always. The rule refuses any user agent that contains a search crawler's name, even one that also contains an AI name. That list is our SEARCH_BOTS set from the same file: Googlebot in all its variants, Google-InspectionTool (Search Console's inspection tool), Bingbot, Applebot, DuckDuckBot, YandexBot, Baiduspider and PetalBot. Everyone else, including every person, gets your site untouched.
  4. Pages only. The rule skips Next.js internals (/_next/), /api/, /_vercel/, /.well-known/ and any path ending in a file extension: images, scripts, styles, icons, robots.txt, sitemap.xml and manifest.webmanifest. None of the 497 page addresses in your sitemap ends in a file extension, so every page is covered and every asset is excluded.
  5. Not in-app requests or form submissions. The rule also skips any request carrying the RSC header (Next.js in-app navigation data) or the Next-Action header (Next.js form submissions), and /api/ is excluded by path. We found no checkout, cart or account pages on www; the rental portal sign-up page is an ordinary page with a form.

    Question for HOLT: Does www have any other account, checkout or transaction paths we should exclude from the rule?

  6. English and Spanish alike. Next.js runs your existing language middleware first and this rule after it, so the rule covers English pages at / and Spanish pages under /es-US. We test both on the preview.

Matching is case-sensitive, because Next.js header patterns are. Each name matches as written in the list and in lower case, which covers the published user agent of every crawler on the list. A crawler that spells its name with some other capitalisation gets your normal page, which is the safe direction.

What reaches AnswerShare

Only requests that match the rule. Vercel forwards the crawler's request as it arrived: the page path and query, the crawler's user agent and its other request headers, plus Vercel's standard forwarding headers (x-forwarded-for, x-real-ip, x-forwarded-host, x-forwarded-proto), which carry the crawler's IP address. Requests from people and search crawlers never match, so nothing from them reaches us. This is the same description we gave in our answer to your question 13.

Every response we send back is marked Cache-Control: private, no-store. Vercel honours upstream cache headers on external rewrites, so it does not store the AI version, and an AI copy never sits in a cache where a visitor could get it.

If AnswerShare errors or times out

The rule points at an AnswerShare edge service that builds each response. Here is what an AI crawler gets in each case. In every case, people and search crawlers get your normal page, because their requests never reach us.

CaseWhat the AI crawler gets
NormalThe AI version of the page, status 200.
The page has no AI version yet (for example, a page you published minutes ago)Your normal page. Our edge service fetches it from your site and returns it unchanged. That fetch carries a pass-through header the rule excludes, so it cannot loop back to us.
Our content service fails or is slowYour normal page, the same way, once our time budget runs out [CONFIRM: time budget, proposed 2.5 seconds].
Your site is slow or down when our edge service fetches your pageStatus 502 from our edge service, if your page has not arrived within 10 seconds or the fetch fails.
Our edge service itself is down or unreachableAn error from Vercel, status 502 (ROUTER_EXTERNAL_TARGET_CONNECTION_ERROR). There is no fallback to your page in this case.
Our edge service accepts the connection but never answersVercel waits up to its 120-second limit for external rewrites, then returns 502 (ROUTER_EXTERNAL_TARGET_ERROR).

The last two cases are the cost of having no code on your visitors' requests. A crawler that gets an error retries later. The stop conditions in the plan call for a revert if failures pass 1% of AI-crawler requests in an hour or last 15 minutes.

The fall-back to your normal page in the second and third rows is built and running on our side. On 22 October 2026 we sent GPTBot requests for your home page and for /es-US to our edge service. Each got your own page back with status 200, marked Cache-Control: private, no-store and x-answershare-variant: passthrough, in under 2 seconds. We test it again on your preview (tests T14 and T15).

Blast radius of each failure

For each failure below: what your human layer gets (your visitors, plus Googlebot and the other search crawlers), what our layer gets (the AI crawlers on the list, and the records we keep), how the failure is detected, and how it is contained. Three things hold in every case.

  • People and search crawlers stay outside it. The rule matches on user agent only, and it lists every search crawler under missing, so their requests never reach us. A failure on our side cannot change what they get or how fast they get it. The exceptions are the link previews and the two optional files, noted where they apply.
  • Nothing is left behind in a cache. Every response from our edge service, its errors included, is marked Cache-Control: private, no-store, so Vercel keeps no copy. Once a failure ends, the next request gets the right page.
  • Today we record only the AI version. We record a crawler visit when we serve the AI version of a page. A fall-back or an error leaves no record on our side. Your Vercel logs still show the request. Before the preview we will record every fall-back too, with its reason, so the crawler visits on measuring results include them.
The page has no AI version yet
Your human layerNo change. Visitors and search crawlers get your page as they do today, on every page, at its normal speed.
Our layerThe AI crawler gets your normal page, status 200, instead of the AI version. This affects that page only, until its AI version is published. The crawler waits slightly longer: 0.7 to 1.7 seconds for the whole round trip in our 22 October check. If the rule went live today this would apply to every page, English and Spanish: the AI versions are still in review and none is live. Today this leaves no record on our side.
Detected byThis is the designed behaviour, not an alarm. Each such response is marked x-answershare-variant: passthrough and x-answershare-passthrough-reason: miss.
Contained byThe fall-back, automatically, on each request. There is nothing to revert. It ends for a page when that page's AI version is published.
Our content service fails or is slow
Your human layerNo change.
Our layerThe AI crawler gets your normal page, status 200, instead of the AI version. It gets it at once if our content service errors, or after our time budget if the service is slow. This covers every page for as long as the fault lasts. Nothing is recorded on our side today.
Detected byOur every-minute uptime check, once your site is added to it (see the note below).
Contained byThe fall-back, automatically, on each request. We fix the cause on our side. If it is not fixed within the hour, the stop conditions call for a revert.
Your site is slow or down when our edge service fetches your page
Your human layerWhatever your site gives visitors at that moment. The rule adds nothing to it, because their requests never reach us.
Our layerThis happens only when a page also has no AI version, or our content service has failed. Our fall-back fetch then waits up to 10 seconds for your page. If your page has not arrived by then, or the fetch fails, the AI crawler gets status 502 from us instead of your slow page. Without the rule, it would have waited on your site directly. This lasts as long as your site is slow, and it leaves no record on our side today.
Detected byYour own monitoring of your site. Our check sees a 502 marked x-answershare-passthrough-reason: live-failed.
Contained byIt ends when your site recovers. There is nothing to revert.
Our edge service is down or unreachable
Your human layerNo change for visitors or search crawlers. Two side effects reach people:

(1) If FacebookExternalHit stays on the list, links to your pages shared on Facebook, Messenger or WhatsApp during the outage may appear without a title and image. This applies to pages Meta has not already stored a preview for. Removing that entry removes this effect.

(2) If you keep Rule 2, /llms.txt and /llms-full.txt return an error to everyone during the outage. Both return 404 today.
Our layerEvery AI-crawler page request gets Vercel's 502, on every page, English and Spanish, for as long as the outage lasts. That includes user-triggered fetchers such as ChatGPT-User, Claude-User and Perplexity-User: an assistant fetching your page for a person's question gets no page. Nothing reaches us, so we record nothing. Only your Vercel logs show these requests.
Detected byOur every-minute uptime check, once your site is added to it. It marks a check as down after 3 failures in a row, about 3 minutes.
Contained byA revert, which only your team can make, because the rule lives in your deployment. The stop conditions call for one when failures pass 1% of AI-crawler requests in an hour, or run 15 minutes in a row. Instant Rollback takes effect without a rebuild. We time it on the preview (test T18). Until the rollback lands, AI crawlers keep getting 502. People and search crawlers are unaffected throughout.
Our edge service accepts the connection but never answers
Your human layerThe same as the case above. Visitors and search crawlers see no change. Shared-link previews and the two optional files wait up to 120 seconds and then fail.
Our layerEach AI-crawler request waits up to Vercel's 120 seconds, then gets 502. Our edge service caps its own work at 2.5 seconds for the AI version plus 10 seconds for the fall-back. So this case arises only if the edge platform itself hangs. Nothing is recorded on our side.
Detected byThe same every-minute check. It counts a check as failed if no answer arrives within 15 seconds.
Contained byThe same revert as the case above.
Detection is not in place for your site yet. Our every-minute uptime check does not watch Texas First Rentals today. It also cannot yet send an AI crawler's user agent, so it would not see the failures above. Before the preview we add three checks of one of your pages, each run every minute: as GPTBot through your rule, as a browser, and as Googlebot. Until the rule is live, the GPTBot check goes straight to our edge service. Each check alerts after 3 failures in a row. Until then, the failure cases above depend on your Vercel logs and on the tests we run on the preview.

The alternative, if you prefer it. If HOLT would rather AI crawlers always fall back to your page, even when our edge service is down, the way to do that is a small Next.js middleware with a timeout: if we do not answer within 2.5 seconds, the request falls through to your normal page. That is the middleware design in our 8 October overview, with the credential kept in your environment variables as you asked. Its costs are the ones listed above: code on every page request, a credential in your environment variables, and upkeep across Next.js releases. We recommend the rule. We will provide the middleware for review if you choose it.

The snippet

For next.config.js. If your config is next.config.mjs or next.config.ts, the same object goes in your existing export. If you already have rewrites, keep them: a rewrites() that returns an array maps to afterFiles below.

// AnswerShare AI-crawler rule for www.texasfirstrentals.com (rule v0.1, test run)
// Crawler names: AnswerShare src/bot-classification.ts,
// AI_BOTS and SEARCH_BOTS at commit b43382d (2 October 2026).
// Matching is by user agent only. No IP or network lookups.
// To remove: delete this block and the answershareRewrites entry in rewrites().

const ANSWERSHARE_ORIGIN = 'https://customers.texasfirstrentals.production.answershare.com';

// AI crawlers and AI agents that get the AI version of a page.
const AI_CRAWLERS = [
  // OpenAI
  'GPTBot', 'OAI-SearchBot', 'ChatGPT-User', 'ChatGPT',
  // Anthropic
  'ClaudeBot', 'Claude-SearchBot', 'Claude-User', 'claude-web', 'anthropic-ai',
  // Perplexity
  'PerplexityBot', 'Perplexity-User',
  // Google AI agents: not search crawlers. Remove any you prefer.
  'Gemini-Deep-Research', 'Gemini-Research', 'Gemini-User', 'GeminiBot', 'Gemini-AI',
  'GoogleAgent-Mariner', 'GoogleAgent-URLContext', 'Google-CloudVertexBot',
  'GoogleOther', 'Google-Extended',
  // Apple: AI only. Plain Applebot is a search crawler and is excluded below.
  'Applebot-Extended',
  // Meta
  'Meta-ExternalAgent', 'FacebookExternalHit',
  // Others
  'Bytespider', 'Amazonbot', 'YouBot', 'Diffbot', 'CCBot', 'Cohere-AI',
  'DeepSeekBot', 'MistralAI-User', 'Qwen-Bot', 'GrokBot', 'xAI-Grok', 'Grok-DeepSearch',
  // AnswerShare's own measurement crawler
  'AnswerShareBot',
];

// Search crawlers always get your normal site, even if a user agent
// also contains a name from the list above.
const SEARCH_CRAWLERS = [
  'Googlebot', 'Googlebot-Image', 'Google-InspectionTool', 'Bingbot', 'Applebot',
  'DuckDuckBot', 'YandexBot', 'Baiduspider', 'PetalBot',
];

// Next.js anchors header patterns (^...$) and matches them case-sensitively.
// Each name matches as written above and in lower case.
// Names contain only letters, digits and hyphens, so no escaping is needed.
const uaPattern = (names) =>
  `.*(?:${[...new Set(names.flatMap((n) => [n, n.toLowerCase()]))].join('|')}).*`;

const answershareRewrites = [
  // Rule 1: page requests from a named AI crawler get the AI version of that page.
  {
    // Every page path except /_next/, /_vercel/, /api/, /.well-known/
    // and any path ending in a file extension (assets, robots.txt, sitemap.xml).
    source: '/:path((?!(?:_next|_vercel|api|\\.well-known)(?:/|$)|.*\\.[A-Za-z0-9]+$).*)',
    has: [{ type: 'header', key: 'user-agent', value: uaPattern(AI_CRAWLERS) }],
    missing: [
      { type: 'header', key: 'user-agent', value: uaPattern(SEARCH_CRAWLERS) },
      { type: 'header', key: 'rsc' },                       // in-app navigation data
      { type: 'header', key: 'next-action' },               // form submissions
      { type: 'header', key: 'x-answershare-passthrough' }, // our fall-back fetch; stops loops
    ],
    destination: `${ANSWERSHARE_ORIGIN}/:path`,
  },
  // Rule 2: two public files, identical for every visitor and crawler.
  // Both return 404 on your site today.
  { source: '/llms.txt', destination: `${ANSWERSHARE_ORIGIN}/llms.txt` },
  { source: '/llms-full.txt', destination: `${ANSWERSHARE_ORIGIN}/llms-full.txt` },
];

module.exports = {
  // ...your existing settings, unchanged...
  async rewrites() {
    return {
      beforeFiles: answershareRewrites,
      afterFiles: [], // your existing rewrites, if any
      fallback: [],
    };
  },
};

Requires Next.js 13.3 or later (for missing).

Question for HOLT: Which Next.js version does the site run?

Rule 2 is optional for the test run. It adds two files that do not exist today and serves them the same way to everyone, so it changes nothing that people or search engines currently get. If you would rather leave it out, delete those two lines. Vercel does not allow rewrites of /.well-known/, so any file we supply for that folder would be a static file you commit. We are not asking for one in the test run.

What your team does

Nothing goes live from these steps; they only prepare your preview.

  1. Put the rule in next.config.js.
    Click flow: your code repository for www.texasfirstrentals.com (GitHub, GitLab or Bitbucket, whichever you use) > the project root folder > next.config.js (or next.config.mjs / next.config.ts) > the rewrites() function > the "beforeFiles" list.
    Required state: the AnswerShare block from the attached rule file sits inside "beforeFiles". Keep your existing rewrites where they are (they stay in "afterFiles").
    You should see: a rewrites() function that returns beforeFiles, afterFiles and fallback, with the AnswerShare block first.
  2. Make sure vercel.json has no AnswerShare rule.
    Click flow: the same repository > the project root folder > vercel.json > the "rewrites" array.
    Required state: no entry whose destination contains answershare.com.
    You should see: either no vercel.json rewrites at all, or only your own.
  3. Put the change in its own deployment, so Instant Rollback removes only this.
    Click flow: your repository > create a branch > commit the next.config.js change > open a pull request.
    Required state: the pull request contains only the next.config.js change.
    You should see: Vercel adds a Preview deployment to the pull request.
  4. Open the Preview deployment so we can test it.
    Click flow: https://vercel.com/dashboard > your Texas First Rentals project > Deployments > the newest "Preview" row > Visit.
    Required state: the deployment status is Ready.
    You should see: your normal site in the browser. Nothing changes for a person visiting.
  5. Tell us the Preview address and how we get through Vercel Deployment Protection.
    Click flow: Vercel dashboard > your project > Settings > Deployment Protection.
    Required state: either "Protection Bypass for Automation" is enabled and you read the value to us on a call (never in email), or you allow our test server address for the preview.
    You should see: the setting shown as Enabled, with a bypass value you can reveal.
The crawler list, entry by entry

"User-triggered" means the crawler fetches a page because a person just asked an assistant something. "Crawler" means a background index or training crawl. We use this split for the user-intent share on measuring results. Entries marked "Review" are ones we suggest your team looks at.

Name in the ruleOperatorTypeNote
GPTBotOpenAICrawler
OAI-SearchBotOpenAIUser-triggeredChatGPT search.
ChatGPT-User, ChatGPTOpenAIUser-triggered"ChatGPT" also catches other ChatGPT fetchers.
ClaudeBotAnthropicCrawler
Claude-SearchBot, Claude-UserAnthropicUser-triggered
claude-web, anthropic-aiAnthropicCrawlerOlder names.
PerplexityBotPerplexityCrawler
Perplexity-UserPerplexityUser-triggered
Gemini-User, Gemini-Deep-ResearchGoogleUser-triggeredReview: Google AI agents, not search crawlers.
Gemini-Research, GeminiBot, Gemini-AIGoogleCrawlerReview: Google AI agents, not search crawlers.
GoogleAgent-Mariner, GoogleAgent-URLContextGoogleUser-triggeredReview. URLContext is the fetcher Gemini uses when a person hands it a URL.
Google-CloudVertexBotGoogleCrawlerReview. Vertex AI Agent Builder; no effect on Google Search.
GoogleOtherGoogleCrawlerReview. Google's general-purpose crawler outside Search.
Google-ExtendedGoogleCrawlerA robots.txt token. Google crawls with Googlebot, which is excluded, so this entry is not expected to match any request.
Applebot-ExtendedAppleCrawlerA robots.txt token. Apple crawls with Applebot, which is excluded, so this entry is not expected to match any request.
Meta-ExternalAgentMetaCrawler
FacebookExternalHitMetaCrawlerReview. Meta also uses this agent to build link previews when people share your pages on Facebook, Messenger or WhatsApp. If it stays, those previews are built from the AI version, and the AI versions we build today carry no Open Graph title, description or image (checked on the five sample pages). Remove this entry if you want shared links to keep your own preview.
BytespiderByteDanceCrawler
AmazonbotAmazonCrawler
YouBotYou.comUser-triggered
DiffbotDiffbotCrawler
CCBotCommon CrawlCrawler
Cohere-AICohereCrawler
DeepSeekBotDeepSeekCrawler
MistralAI-UserMistralUser-triggered
Qwen-BotAlibabaCrawler
GrokBot, xAI-Grok, Grok-DeepSearchxAICrawler
AnswerShareBotAnswerShareCrawlerOur own measurement crawler, so our scores read what AI crawlers read. Review: you may remove it, and our measurements would then read your normal page.
This rule is for review only. AnswerShare has not deployed it and does not deploy to your project. Open points are settled before the preview; the questions for your team are collected on the plan page.

Full rule page, including the blast radius of each failure

Pre-launch testing on a Vercel preview

Every test runs on a Vercel preview of your site with the rule in place, before anything reaches production.

Set-up

  • Two previews from the same branch point. Preview A has the rule. Preview B is the same commit without the rule, as the control. Your team creates both.
  • Pages under test. The five side-by-side pages (three English, two Spanish), plus the home page, /es-US, one equipment page, one location page, one news page and the rental portal sign-up page.

    Question for HOLT: Please confirm the final list of pages under test, and add any page your team wants covered.

  • User agents. The published user agent of every crawler on the rule's list, plus Chrome (desktop), Safari (iPhone) and Firefox for people, and Googlebot (desktop and smartphone), Googlebot-Image, Google-InspectionTool, Bingbot, Applebot, DuckDuckBot, YandexBot, Baiduspider and PetalBot for search. The exact strings ship with the test script.
  • Where we test from. Our evidence server, IP 143.244.215.194. Every request and response is saved with its headers, status, timing and a SHA-256 hash of the body, and you get the full results file.
  • Access to the preview. Vercel previews are often protected. Either your team runs our test script, or you give us a protection-bypass value on a call (never by email) for the test window. Our question on which you prefer is in the plan.
  • Firewall. Vercel's bot protection may challenge a crawler user agent that arrives from our test server rather than from the crawler's own network. If it does, we ask for a temporary allow rule for 143.244.215.194 on the preview only, or your team runs those tests. Real crawlers in production arrive from their own networks.

    Question for HOLT: Is Vercel's bot protection or a firewall rule active on the preview or on www, and can your team add the temporary allow rule?

How "unchanged" is checked

Within one deployment, your pages are byte-identical from request to request when they are served from Vercel's cache. So on Preview A we compare the SHA-256 of the body a search crawler or browser receives with the SHA-256 of the body Chrome receives for the same URL at the same time. They must be equal. Between Preview A and Preview B, file names of scripts and styles can differ because the builds differ, so there we compare the parts that matter: status code, title, main heading, meta description, canonical link, language tags, structured data and visible text, each by hash. For any page not served from cache, where bytes can differ between requests, we use the same parts comparison and say so in the results.

Test matrix
IDTestHowPass whenRuns it
T1AI crawlers get the AI versionEvery AI user agent on the list, against every page under test, on Preview A.Status 200; the body equals what our service returns for that page; the response carries Cache-Control: private, no-store. Every name on the list routes.AnswerShare
T2People get the live page, unchangedChrome, Safari (iPhone) and Firefox against every page, on Preview A and Preview B.On Preview A, body SHA-256 equals Chrome's for the same URL. Between A and B, every part hash matches. No AnswerShare header on any response.AnswerShare; HOLT spot-checks from its own network
T3Search crawlers get the live page, unchangedEvery search user agent above against every page, on Preview A.Body SHA-256 equals Chrome's for the same URL. Status codes equal Chrome's.AnswerShare; HOLT spot-checks
T4The search exclusion winsA made-up user agent containing both "Googlebot" and "GPTBot".Gets the live page (hash equals Chrome's).AnswerShare
T5Unlisted agents and edge casesNo user agent, an empty user agent, an unknown bot, and "GPTBOT" in capitals.Each gets the live page. (Capitals are not matched; the rule matches each name as published and in lower case.)AnswerShare
T6Status codesFor each user agent class: a page that does not exist, /en-US, a trailing-slash address, and a HEAD request.AI crawlers get the same status code and redirect target as Chrome for the missing page and every redirect. Redirects run before the rule, so they are unchanged.AnswerShare
T7Assets and internal paths are never rewrittenAI user agents against /_next/static/ files, /_next/image, an /api/ path, /favicon.ico, /manifest.webmanifest, an image and a /.well-known/ path.Body SHA-256 equals Chrome's for each.AnswerShare
T8robots.txt and the sitemap are untouchedChrome, Googlebot and GPTBot against /robots.txt and /sitemap.xml, on Preview A and on production today.All bodies identical across user agents. Compared with production, robots.txt is identical, and the sitemap differs only where your own build changes it (for example, dates).AnswerShare
T9The two new files (rule 2, if kept)Chrome, Googlebot and GPTBot against /llms.txt and /llms-full.txt.Status 200, plain text, identical body for every user agent.AnswerShare
T10No AI copy is ever cached for visitorsFor every page: GPTBot, then Chrome straight after, 20 times; repeated after the page is warm in Vercel's cache.Chrome always gets the live page (hash equals the control). No AI response is served from Vercel's cache.AnswerShare
T11In-app navigation and forms work as todayGPTBot user agent with the RSC header, and with the Next-Action header. Your team submits the quote and portal sign-up forms in a browser on Preview A.Requests with those headers are not rewritten. Form submissions reach your systems exactly as on Preview B.AnswerShare (headers); HOLT (forms)
T12English and Spanish with your language routing in placeAI, browser and search user agents against /, /es-US and the Spanish pages under test.AI crawlers get the AI version in the right language; browsers and search crawlers get the live page. We record the path our service receives for English pages, because your language routing serves / from /en-US internally, and confirm it maps to the right page.AnswerShare; HOLT confirms routing
T13Speed50 requests per page for Chrome, Googlebot and GPTBot on Preview A and Preview B, from the same place, at the same time.Chrome and Googlebot: median time to first byte on A within 10% of B. GPTBot: median time to last byte of the AI version no slower than the live page's, and 95th percentile under 1 second [CONFIRM: thresholds].AnswerShare
T14Fall-back and error cases(a) GPTBot asks for a page that has no AI version. (b) Our service is made to fail for one test page. (c) A third preview points the rule at an address that refuses connections. (d) A test page on our side that answers only after 10 seconds.(a) and (b): the crawler gets your live page, status 200, hash equal to Chrome's. (c): the crawler gets Vercel's 502, and browsers and search crawlers are unaffected. (d): result recorded against our time budget. [CONFIRM: time budget]AnswerShare
T15No loopsGPTBot with our pass-through header; then (a) above while we watch our service's logs.The pass-through request gets the live page. Our fall-back fetch reaches your site once and never returns to us.AnswerShare
T16Nothing from people reaches usOur service's logs for the whole test window, compared with the requests we sent.Every request we received carries an AI user agent from the list. None carries a browser or search user agent.AnswerShare; log extract shared with HOLT
T17Your firewall and bot protection still workYour team reviews Vercel's firewall view for the test window.Your rules and bot protection saw every request, including the AI-crawler ones, before the rule ran.HOLT
T18RevertOn Preview A, remove the rule and redeploy; separately, promote the pre-rule deployment. Then repeat T1 for three pages.AI crawlers get the live page after each revert. Time to revert is recorded.HOLT; AnswerShare re-tests
T19Content updates by webhookYour deploy step sends a signed test event for one page; we refresh it.Our log shows the event verified; the refreshed AI page matches the changed live page; our refresh fetch was not rewritten by the rule.HOLT sends; AnswerShare verifies

Passing the gate to production

  • Every test must pass. A failure in T2, T3, T4, T7, T8, T10 or T11 protects your visitors or search, so any one of them stops the launch until it is fixed and the whole matrix is re-run.
  • A failure in T1, T6, T12, T13, T14 or T15 is ours to fix; we fix it and re-run the affected tests.
  • The day we enable production, we re-run T1, T2, T3, T7, T8 and T10 against www within the first hour.
  • You get the full results file for every run: each request, the user agent, the status, the headers, the timing and the body hash.
Nothing is tested against your production site before your team deploys the rule. Open points are settled at kickoff; the questions for your team are collected on the plan page.

Full preview testing plan

How we measure results against a baseline

Every figure gives its date and the stored record it comes from. A missing figure is never shown as zero. Today's baseline is on the Setup tab.

The measures

MeasureWhat it is
GEO scoreHow accurately and consistently AI engines describe and recommend Texas First Rentals, scored 0 to 100 by each of five engines (ChatGPT, Claude, Gemini, Perplexity and Grok) on the same rubric. We report the median, with an outlier dropped when one engine is far from the rest.
SENBrand sentiment: how favourably the same five engines describe Texas First Rentals. We report the median.
RR, Relevance RatioThe share of the visible text on your home page that is page content rather than navigation and footer. Higher is better.
RTC, Retrieval Token CostWhat a page costs an AI crawler to read: the page's size in tokens, multiplied by the seconds to receive it, divided by the characters of useful content. Lower is better.
AI crawler visitsRequests from each AI crawler on the rule's list, by day and by crawler.
U/T, user-intent share of AI crawler trafficThe share of AI visits made while an assistant is looking for information to answer a person's question. We identify these visits by the type of AI crawler. It is evidence that AI is coming to your site for information while preparing a response. It does not measure whether that response names you or cites your website.
Answer shareFor a fixed, versioned set of questions your customers ask, the share of AI engine answers that name Texas First Rentals or cite your site.
AI-referred sessionsVisits to your site from AI assistants (for example chatgpt.com, perplexity.ai, claude.ai, gemini.google.com and copilot.microsoft.com), from your Google Analytics 4 property.

Every measurement of your site so far

Results move from run to run even when nothing on your site changes, because AI engines do not answer identically every time and response times vary. These are all five runs on prompt set 5.5.1. We read any later change against this spread, not against a single number.

Measured (UTC)Source rowJudge panelGEOSENRRRTCTTFB
2026-09-26 18:4127c2a91d2026-09-15.pplx-agent-sonar47600.55132.831652 ms
2026-09-29 15:434cdc0d132026-09-15.pplx-agent-sonar45150.55132.885053 ms
2026-10-01 19:07428b88dd2026-09-15.pplx-agent-sonar49550.55133.739868 ms
2026-10-03 20:2993f2ede12026-09-15.pplx-agent-sonar49500.55133.419363 ms
2026-10-06 23:070d5e398e2026-10-04.claude-sonnet-5-549.5500.55112.780752 ms

Across these runs GEO ranged from 45 to 49.5, SEN from 15 to 60 and RTC from 2.78 to 3.74. The 26 September run is the baseline we recorded when the work began. The "Now" figures in our 19 October email (RTC 3.4, about 60 ms) come from the 3 October run.

Before launch: completing the baseline

  1. One more full run in the preview week, on the instrument versions current then. We fix those versions (prompt set and judge panel) for every later run in the test.
  2. The first answer-share run, on a prompt set built from your Google Analytics and Search Console data, any keyword exports you share, and real customer questions, and reviewed with your lead. The prompt set gets a version number and does not change during the test.
  3. RR and RTC for the five side-by-side pages, as AI crawlers receive them today, using the same metric code as the home page.
  4. Google Analytics and Search Console history, read once access exists, back 13 months by month and 90 days by day.
  5. Your Vercel request counts by AI crawler for the last 30 days, if your plan keeps them. If not, crawler visits are reported from launch onward, and we say so in every readout. Our question about your Vercel log retention is in the plan.

After launch: the same measures, the same instruments

MeasureHow it is taken after launchFirst reported
GEO and SENSame prompt set and same judge panel version as the pre-launch run. If an instrument has to change during the test, we re-run the baseline on the new version and compare like with like, never across versions.30 days after enable
RR and RTCThe home page and the five side-by-side pages, fetched through the live rule as an AI crawler receives them, with the same metric code.Handover call
AI crawler visits by typeCounted at AnswerShare for every request the rule sends us, by crawler and by day. Your Vercel request counts give an independent check.Handover call, then daily on your dashboard
U/TUser-triggered AI visits divided by all AI crawler visits, with the crawler types listed on the rule page.Handover call
Answer shareSame prompt set version, same engines, same scoring.30 days after enable
AI-referred sessionsGoogle Analytics 4, aggregate reports only, by assistant, compared with the same weeks before launch and the same period a year earlier.30 days after enable
Google-side searchSearch Console clicks and impressions. The rule does not touch Google Search, so this series shows change that has other causes.30 days after enable

Readouts are at the handover call after the 7-day soak, and at 30 and 90 days after enable [CONFIRM: cadence].

Separating our effect from other changes

  • Crawler-side measures are direct. AI crawler visits, U/T, RR and RTC of the AI version exist only on requests the rule sends us, so they measure the rule itself.
  • Outcome measures can move for other reasons. Answer share, GEO, SEN and AI-referred sessions can also move because of your own site changes, engine updates or the season. We keep a dated log of every such change we know of: your deploys (from the webhook events), the rule's enable date, the FAQ's publication, and engine updates. Each readout reads results against that log.
  • We compare against the spread, not one number. A change smaller than the run-to-run spread above is not reported as an effect.
  • Google's side is a comparison series. Google Search, AI Overviews and AI Mode keep reading your normal site, so their trend shows what happens without the AI layer.

How results are recorded

Every run keeps the complete response from each engine, with its run and attempt IDs, timestamps, instrument versions and a SHA-256 hash. A retry never overwrites an earlier attempt or inflates a count. If a capture fails, the readout says the run is incomplete and shows what was recovered; it never fills the gap with zero. We read your analytics with read-only access and aggregate reports only: no revenue, transactions, conversions, funnels or user-level data.

Full measurement plan

Side-by-side pages

Five of your pages, three English and two Spanish, each beside its AI version. Every fact block shows the live page it came from and the date it was captured.

PageLanguageLive
HomeEnglishLive and AI version
ExcavatorsEnglishLive and AI version
San Antonio locationEnglishLive and AI version
InicioEspañolLive and AI version
Ubicación San AntonioEspañolLive and AI version

Data processing agreement

A draft for your counsel. AnswerShare never receives data about your visitors, and the agreement says so in writing. Nothing in it is in force until both parties sign.

It covers the roles of the parties, the processing instructions, the data involved, retention, security and incidents, subprocessors and deletion at the end of the test run, with annexes on the data processed, the security measures and the subprocessors.