What actually makes a website AI-ready (it is not GEO)
Crawlers need HTML, one job per page, and facts someone can quote. The rest is theater.
"Optimize for AI" is for sale again. It looks like the old SEO pitch with new initials. GEO, AEO, "answer engine optimization." Most of it is a slide deck.
What actually makes a site usable to ChatGPT, Google's AI answers, and whatever comes next is boring. HTML a crawler can read. One job per page. Facts a model can quote without inventing the rest.
We already say this in public: people-first is machine-friendly. No magic GEO. Here is what that means when you run a shop in Utah.
Crawlers read text. They do not read your brand video.
If the important facts live in an image, a canvas animation, or a PDF of last year's flyer, a lot of systems will miss them.
Put this in HTML text, not in a graphic:
- Business name
- Phone number
- Address or service area
- Hours
- Towns you serve
- What you actually sell
A clickable tel: link in the header is for humans. The same number in the footer, in text, is for humans and machines. Hours written as "Monday through Friday, 8 a.m. to 5 p.m." on the contact page will get used. Hours baked into a stylish clock graphic will not.
JavaScript-heavy pages can still work if the content is in the HTML when the page loads. If the whole page is an empty shell until a script runs, some crawlers get nothing. You should not have to think about this. Your site should not be an empty shell.
One page, one job
This is the same advice as a good brochure, and it is the main thing answer engines need.
A page titled "AC installation in Ogden" should be about AC installation in Ogden. It can mention that you also repair furnaces. It should not also try to cover commercial refrigeration, duct cleaning, and a speech about why you care.
When a model is asked a specific question, it looks for a passage that answers that question. Mixed pages produce mixed passages. Mixed passages get skipped, or they get quoted with the wrong service attached.
Headings should say the thing. Use an H2 like "Same-day furnace repair in Logan." Then a paragraph that is actually about that. Not "Our Services" followed by a grid of icons.
A clinic page about Saturday hours should say the hours in a sentence. A plumber page about water heaters should say tank versus tankless, gas versus electric, and whether you can often do it the same day. One topic. Enough detail to cite.
Cite-able facts beat adjectives
A language model is more willing to name you if it can point to a concrete line.
Cite-able:
- "We serve Smithfield, Hyde Park, and North Logan."
- "New patients are welcome. We are open Saturdays, 8 a.m. to 1 p.m."
- "Water heater replacements are often same-day if you call before noon."
- "Utah contractor license" plus the number, if you publish it
- Public prices, when you have them. We publish ours on pricing because hiding the number helps no one.
Not cite-able:
- "Top-rated and trusted by the community."
- "A full range of solutions tailored to your needs."
- Anything you would not say out loud to a neighbor.
Do not invent numbers to look cite-able. Empty proof is worse than no proof. If you do not offer same-day service, do not write it because it sounds like a fact. If you have three Google reviews, do not write "hundreds of happy customers."
Accurate entity data is the unsexy half of AI
Entity is a fancy word for "who you are as a record." Name, address, phone, URL, hours, category.
Those fields should match across the website and the Google Business Profile. If they drift, models and search engines treat you as two slightly different businesses, or they trust the source that looks more consistent (often Google, sometimes a directory you forgot you had).
Schema markup is a structured copy of the same facts. Use it to repeat what is already on the page. Do not use it to claim extra cities, extra stars, or a different phone.
What you can skip
You can skip:
- A blog post every week about the history of plumbing
- Hidden keyword paragraphs
- Copy written to sound like it was aimed at a bot
- Paying someone to "submit your site to AI"
- Ten schema types, FAQ spam, and extra markup theater on a five-page contractor site
- Renaming your pages to match whatever acronym is trending this quarter
If a tactic would look silly explained to a dentist in Provo over the hood of a truck, it is probably theater.
GEO as a product is usually a rename of work you already needed: crawlable pages, focused topics, direct answers, accurate NAP. Buying a new label does not replace writing "We replace water heaters in Cache Valley" in HTML.
A short technical bar
You do not need to become a developer. You can ask whoever touches the site whether these are true:
- Pages return real HTML with the main copy in it
- Important text is not trapped in images
- Each URL has a unique title and a unique main heading
- The site loads in a reasonable time on a phone
- There is a simple internal link from home to each service page
- robots.txt is not blocking the whole site
- HTTPS works
- Name, address, and phone in the footer match Google
That list is older than ChatGPT. It still decides whether you get found.
Do this week
Pick one service you actually sell. Write a paragraph a stranger could quote: what it is, which towns, how to start, any real limit (weekdays only, no new patients on Fridays, gas lines you do not touch). Put that paragraph on its own page or under its own heading.
Then read your homepage out loud. Cut every sentence that does not tell a person or a machine what you do.
Put hours in a sentence. Put the phone in a tel: link. List towns in text.
This is the same work we do for Utah service businesses. Clear pages. True facts. No fog.