Just after 1am, three exact-match terms in a home services account had fallen from Quality Scores of 7 to 3. I was at the kitchen table with a spreadsheet open and a cold mug beside the keyboard. The account was spending, say, $20,000 a month. CPCs were up 22 percent in two days. I had not touched the bids or the ads.

I clicked the ad preview because I had run out of normal explanations. The URL was the same. The page at the end of it was not. The headline I had written the ads to match was gone, replaced with a wide brand banner. The price list and service area block my ads promised sat two scrolls down, under a stock photo. Someone on the client side had swapped the landing page without telling anyone.

I went down the list in order, because guessing at that hour costs money. Change history was clean. Bids were where I left them. Ad strength had not moved. Auction Insights showed roughly the same competitors and impression shares, which ruled out the story I wanted to believe: that someone new had bid up the auction. Then I pulled the Quality Score components by keyword. Expected CTR was steady, ad relevance had slipped, and landing page experience was below average on the terms that had fallen. Google describes that component in plain terms: useful, relevant information; easy navigation; a page that meets the ad’s promise. My ads still promised the old page.

The old version had been ugly in the way that converts. Service and city in the headline. Phone number at the top right. Three bullet points lifted from the top search terms. A short form above the fold. The new version was pretty in the way that costs you: full-width hero image, a headline about trust, a video block above the form, and those three bullet points gone. Same URL, different promise.

The URL had stayed put. The page the ads depended on had moved.

Nobody had told me. That was the part that stuck. The designer had done good work by design standards. The owner had approved it because it looked modern. To a human eye, the page still said roughly the same thing. But the connection between query, ad and page had thinned, and the new image slider had added almost a second to the load time. I sat there doing the math I did not want to do: same budget, more expensive clicks, and less of the information those clicks had come to find.

A bid change would have been easy to spot in my own work. This sat outside the account, on a page I did not control, while the account kept spending as if nothing had happened. That is a rotten combination for an operator: the symptom appears in one place, and the cause lives somewhere else. If I had responded to the CPC increase by changing bids, I would have been adjusting the part that had stayed the same.

I reverted nothing that night. I took screenshots, marked the time, and wrote down what had changed line by line so I would not argue from memory the next morning. That habit has saved me more times than any bid tactic I once swore by. I used to tell clients that Quality Score was mostly about ad copy. I was wrong. The page was part of the ad, whether or not I had access to edit it.

At 9am, I called and got a sentence I have heard in some version ever since. “Oh yeah, we just refreshed the design. Looks better, right?” The owner was proud of it. The designer had moved the phone number into the menu, rewritten my headline into something about values, and replaced the service area list with an interactive map. On a laptop it looked sharp. On my spreadsheet it was a 22 percent tax on clicks from the exact terms that used to convert.

I did not argue about taste. I read back what a visitor arriving from those searches would find: the headline no longer used the words they searched, the page answered them slower, and the form took two extra actions to reach. The owner did not need a lecture on design principles. I needed to show what the redesign had changed for a person who had already searched for a service in a city and clicked an ad expecting to find it.

I proposed a test I could defend. Keep the new design, but restore a plain service-and-city headline and the bullet list as text above the fold. Move the form back up for half the traffic. Give it two weeks, I said, and we could judge the redesign by cost per booked job instead of by how it looked in a meeting.

Within ten days, the restored version was back to 6s and 7s, CPCs settled, and the prettier version kept losing. We had not fixed a bid. We had put the page’s answer back where people could find it.

The site refresh with a missing answer

Years later, that night has an AI-search version. Here is a typical composite of how it plays out: a client sends a proud note about a site refresh. Cleaner templates. Better photos. Pages that are faster to edit. Two weeks later, brand mentions inside AI answers thin out. Rankings have barely moved. The pages still look fine on a phone. That last detail is the tell.

The owner asks whether AI visibility is a content problem. Do we need more blog posts? I would start where I started at 1am. When several terms fall after a design change, new ads are not the first fix. Read the page the way the next system reads it. This time the systems include ChatGPT, Perplexity and Google’s AI Overviews, looking for passages they can use in an answer.

In PPC, the damage gave me a number I checked daily. In AI search, the damage can look like absence. Nobody emails you to say a passage stopped being cited. The page can still load, the headline can still look good, and someone checking it on a phone can reasonably say it works. That check tells you what a visitor sees after the page finishes loading. It does not settle what a crawler can retrieve, or whether the useful passage remains available to quote.

So I pull apart the refreshed page. To a person, it still works. For a machine trying to retrieve an answer, three things have changed. The clear paragraph that used to sit under an H2 now lives in a tab that opens on click. A comparison table appears only after a script runs. A block of bot rules, copied from a template, puts search-related crawlers beside training crawlers under the same restriction. Each change has a different owner. Together they can make a useful page much harder to quote.

None of those changes announces itself as a decision about AI visibility. The tab makes the layout tidier. The table looks better when it loads. The bot rules look like a precaution. That is why the refreshed page reminds me of the landing page: nobody has to set out to hide the answer. It is enough for each person to finish a separate job without checking what the next system receives.

A study of more than 7,000 evaluation-stage AI citations found that owned pages carry considerable weight: ranking can make a page eligible, while a specific, self-contained passage gives an answer system something to lift. A passage hidden behind interaction is a poor candidate. Tests summarized from Vercel log data found that major AI crawlers in those tests did not execute JavaScript. If the useful text appears only after client-side rendering, a crawler may miss it. And a blanket bot rule can shut out crawlers needed for search visibility if applied carelessly.

A redesigned page visible to a person but obscured from a bot

The robots file is the one I would be most likely to miss, because it looks responsible. Someone wants to keep training bots off the site. Fair enough. But OpenAI provides separate robots.txt settings for its search and training crawlers. A rule intended for training should not casually become a rule against search. In this composite, the pasted block lumps bot names together. One file, changed once, can quietly keep the brand out of an answer it hoped to appear in.

There is another lock on the door. For Google’s AI answers, a page needs to be indexed and eligible to appear with a snippet. A restrictive snippet setting can undermine that eligibility; a passage available only after scripts run can leave the useful answer hard to find. In the refreshed page, the comparison text is behind JavaScript, while an old SEO plugin’s snippet limit restricts the passage worth quoting. The phone view gives no hint that either setting exists.

Recovery guides describe AI Overview sources as subject to reassessment: clearer passages may replace weaker ones, and technical friction can cost a page visibility. That is why a stable ranking does not settle the owner’s question. Nor does an attractive page settle it. Before asking writers for another post, I want to know whether the page that already answers the question is still offering that answer in a form the relevant systems can use.

Four checks before another post

Back at the refreshed page, I check four things, in order. Each one tests a possible break between the answer a person sees and the one a machine can reach:

  1. Robots rules: Are search crawlers treated separately from training crawlers, or has a broad block caught both?
  2. Rendering: What text is present in the page’s HTML before scripts run? Is the answer there, or only inside a tab or rendered table?
  3. Structure: Does a plain heading lead to a passage that answers the question on its own?
  4. Snippet eligibility: Is a tag or plugin setting restricting what Google can show?

I run the 45-minute curl and robots check before spending anything on new content. New copy cannot rescue a page the relevant crawler cannot reach or read. The order matters: if a rule blocks the crawler, polishing the paragraph behind it changes nothing. If the paragraph appears only after a script runs, a better heading alone will not bring it into the HTML the crawler receives. I want to find the break, not prescribe the most visible fix.

Calling this an annual audit misses the problem. Sites do not sit still for a year. Someone updates a template, a plugin or a consent banner; someone decides the answer paragraph would look cleaner inside a tab. Each person sees the change they made. Nobody necessarily sees the machine’s view of the finished page. It is the same gap I had at the kitchen table: the person making the page change and the person watching search performance were looking at different surfaces.

For the composite refresh, the repair is boring. Put the answer paragraph back in plain HTML under its heading. Separate the training and search bot rules. Remove the restrictive snippet setting. Leave the photos if they are not causing the problem. No fresh campaign of blog posts, no heroic rewrite of pages that were already answering the question. First make the old answer available again; then check whether citations return.

That is the order I followed with the landing page: find the changed surface before changing the message that points to it. I still think about the cold mug on the kitchen table, beside a spreadsheet full of 3s and a URL that looked exactly as it had the day before.