One of eight furniture stores tells an AI when it's open. Here's the 20-minute check.
I ran a raw-HTML crawler test against eight independent furniture and home furnishings stores in Tiverton and the towns next door. Nobody is blocking the AI crawlers. Almost nobody is feeding them. Here is the exact procedure, so you can run it on your own site today.

There is a particular kind of store you find at Tiverton Four Corners and along Main Road. Someone drove to an estate sale in Little Compton at seven in the morning to buy the sideboard in the window. Someone knows which of the two grey linens actually holds up against a dog. That knowledge is the whole business, and it is not written down anywhere, because it lives in a person who is standing in the showroom.
Now a customer in Portsmouth types "where can I buy a solid wood dresser near Tiverton" into ChatGPT instead of Google. The assistant does not drive to Four Corners. It does not open a browser and look at your beautiful photographs. It reads whatever a crawler fetched from your server, in plain text, weeks ago.
So I measured what the crawler actually gets.
What I ran, and on whom#
On 7 August 2026 I tested eight independent furniture and home furnishings stores: five in Tiverton, one in Westport, two in Fall River. No chains, no Wayfair, no Bob's. Every business is anonymised as Site A through Site H. They did not ask to be graded and I am not going to name them.
For each one I did three things:
- Requested the homepage three times, once as GPTBot (OpenAI), once as ClaudeBot (Anthropic), once as PerplexityBot — using their real published user-agent strings — and recorded the HTTP status each got back.
- Fetched
robots.txtand parsed it for rules aimed atGPTBot,ClaudeBot,anthropic-ai,PerplexityBot,CCBotandGoogle-Extended. - Took the HTML GPTBot itself received, stripped the tags, and searched the remaining plain text for a phone number, a street address with a ZIP, and opening hours. Then checked for structured data.
No JavaScript was executed at any point. That is not a shortcut, it is the test. These crawlers are raw-HTML fetchers. A site that looks perfect in Chrome and fails here has not been unfairly caught out — that gap is the finding.
Keep in mind that server-side or pre-rendering is still a great idea because it makes your website faster for users and crawlers, and not all bots can run JavaScript.
The results#
Every single site let the crawlers in. Not one robots.txt contained a rule telling an AI bot to go away — two sites had no robots.txt at all, which under the standard means everything is allowed. The doors are open. The shelves are empty.
| Site | Town | Bots served 200 | robots.txt | Phone in text | Address in text | Hours in text | Local schema |
|---|---|---|---|---|---|---|---|
| Site A | Tiverton | 3 of 3 | AI allowed | yes | no | no | yes |
| Site B | Tiverton | 3 of 3 | AI allowed | yes | no | yes | no |
| Site C | Tiverton | 2 of 3 | AI allowed | no | no | no | no |
| Site D | Tiverton | 3 of 3 | AI allowed | yes | yes | no | no |
| Site E | Tiverton | 3 of 3 | AI allowed | no | yes | no | no |
| Site F | Westport | 3 of 3 | AI allowed | no | no | no | yes |
| Site G | Fall River | 3 of 3 | none (allowed) | no | yes | no | see note |
| Site H | Fall River | 3 of 3 | none (allowed) | yes | yes | no | no |
Four of eight put a phone number in the text a bot can read. Four of eight put a street address there. One of eight publishes its opening hours in a form a machine can find — and "are they open right now" is close to the only thing a person asks an assistant before getting in the car.
Site C is the extreme case. Its homepage, as GPTBot receives it, contains 31 words. Thirty-one. Everything else on that page is painted in by JavaScript after the browser loads, so the crawler sees a near-empty shell. In a browser it is a good-looking site. To an AI it is a blank sheet of paper with the shop's name at the top. Site C also returned 403 to ClaudeBot while serving GPTBot a clean 200 — that is a firewall making a judgement call on the user-agent string, not a decision anybody at the store made.
Across the eight, the raw text a crawler receives ranged from 31 words to 628, median 348.
Where my own tool got it wrong#
Site G has structured data on the page declaring itself a FurnitureStore with an OpeningHoursSpecification block. My scorer marked it as having no local schema, because the list of business types it checks against does not include FurnitureStore. That is a bug in my tool, not a fault of the site. Site G's hours are machine-readable — just not as visible page text, and not in a form my script counted. Its score of 2 out of 5 understates it.
I am telling you that because the whole point of publishing numbers is that someone can check them. A measurement you cannot criticise is not a measurement.
For context: when I audited 20 furniture stores in Fairhaven on 1 August, 8 of the 11 with live sites had no LocalBusiness schema at all, and the median mobile load was 4.6 seconds against Google's 2.5-second threshold. This is not a Tiverton problem. It is what small retail websites look like right now.
The procedure: do this yourself in about 20 minutes#
You do not need my script. You need a browser.
Step 1 — Read your own robots.txt (2 minutes).
Type your domain followed by /robots.txt — for example yourstore.com/robots.txt. Read what comes back. You are looking for any block that says User-agent: GPTBot (or ClaudeBot, PerplexityBot, CCBot, Google-Extended) followed by Disallow: /. If you see that and you want to be found in AI answers, that line has to go. If you get a 404, that is fine — no robots.txt means everything is allowed.
Step 2 — Look at what the bot actually gets (7 minutes). On your homepage, press Ctrl+U (Cmd+Option+U on a Mac). That opens the raw HTML source — the same thing the crawler downloads, before any JavaScript runs. Now press Ctrl+F inside that source view and search for, one at a time:
- your phone number, digits only, e.g.
4015550142 - your street number, e.g.
3913 - the word
Saturday
If you can see all three on the live page but cannot find them in the source, JavaScript is putting them there and the crawler never sees them. That is the finding. Write down which ones failed.
Step 3 — Check for structured data (3 minutes).
Still in the source view, Ctrl+F for ld+json. If there are no hits, you have no structured data. If there are, paste your URL into Google's Rich Results Test at search.google.com/test/rich-results and see what it reports.
Step 4 — Count your words (3 minutes). Select all the text on your live homepage, copy it, paste it into a blank document and look at the word count. Under about 150 words of real text and there is almost nothing for a language model to ground an answer in. Photographs of your inventory, however lovely, are zero words.
Step 5 — Write down what failed (5 minutes). Three lines is enough. This is the list you hand to whoever maintains your site.
The fix I would give away first#
Put your name, street address, phone number and hours as plain text in the footer of every page. Not an image. Not a graphic of a sign. Not loaded in by a widget. Typed text, in the HTML, on every page.
It looks like this, and it is the most boring thing on your website:
Your Store Name 1234 Main Road, Tiverton, RI 02878 (401) 555-0142 Mon–Fri 10am–5pm · Sat 10am–4pm · Sun 12–4pm
Every website builder — Squarespace, Wix, Shopify, WordPress — has a global footer you can edit. This takes about ten minutes and costs nothing. It fixes the phone gap, the address gap and the hours gap in one pass, for every page on the site at once, for every crawler including Google's ordinary one.
If you are a Tiverton furniture store and you do exactly one thing after reading this: do that. Monday morning, ten minutes, footer.
What I could not measure#
Plenty, and I would rather say so.
- I cannot tell you whether ChatGPT recommends any of these stores. That varies by user, by session, by day. Anybody who claims to measure it from outside is guessing.
- I only tested homepages. Hours might live on a contact page I did not fetch. That still means the homepage does not have them, which is the page a crawler is most likely to hold.
- I did not test Facebook or Instagram presence. Those cannot be verified reliably from a server, so I did not pretend to.
- My hours detector needs two day names and two clock times in the visible text. A site listing only "Open Saturdays" would read as a miss. And as noted, it does not read hours out of structured data — which is exactly how it undercounted Site G.
- This measures machine-readability only. A site can score 5 out of 5 here and still be slow, ugly and bad at selling furniture.
Why this is worth ten minutes of a Monday#
None of this is a reason to panic about AI. Nobody's business is going to be won or lost this quarter on whether a language model can parse a footer.
But the shops on Main Road spent years getting found by people who drove past, asked a neighbour, or searched Google. The way people ask is shifting again, and the cost of keeping up is one paragraph of text in a footer. That is a genuinely good trade — probably the best return available to a small retailer right now, and it does not require buying anything or trusting anyone.
Run the five steps. If everything passes, close the tab and get back to work. If something fails, you now know exactly what, and you can fix most of it yourself before lunch.
If you would rather someone else ran it and handed you the list, that is what I do. I am in Fall River, twenty minutes from Four Corners.
774.559.8992 · Joshua.Amado@AvalonPartner.com
Method, in full: eight independent furniture and home furnishings retailers in Tiverton RI, Westport MA and Fall River MA, tested 7 August 2026. Homepage requested with the published user-agent strings for GPTBot, ClaudeBot and PerplexityBot, plus a mobile Safari string as control. robots.txt parsed for the six common AI-crawler tokens. Plain-text facts extracted from the body GPTBot itself received, with no JavaScript executed. Anything not positively measured is reported as not measured, never as zero. Businesses are anonymised because they did not consent to being graded in public.
Filed under
Want help putting this into practice?
Avalon Partner helps Fall River and South Coast businesses fix the gaps that cost them leads. Call 774.559.8992 or email Joshua.Amado@AvalonPartner.com.

