What did the check find?
- 188 of 1,672 sites (11.2%) had no working home page. For 74 of them (4.4% of all 1,672), the web address no longer resolves at all.
- Of the 1,410 working pages on the business's own domain, 789 (56.0%) carry Organization or LocalBusiness structured data. 331 (23.5%) carry all three AI search signals I checked: business structured data, an llms.txt file, and no AI crawler blocked in robots.txt.
- 66 (4.7%) block at least one of five AI crawlers in robots.txt, and 435 (30.9%) publish an llms.txt file.
- 96 (6.8%) never reach https, 332 (23.5%) have no meta description. The median time to first byte came to 966 ms, on a connection that ran slower than during the Alabama run.
The figures cover all 1,672 business domains that OpenStreetMap lists for Cobb County, so they count the whole list rather than a sample of it. Percentages for page checks use the 1,410 pages that stayed on the business's own domain as the base.
How does Cobb County compare with Alabama?
The Alabama study ran the same query, filters and scripts from the same computer, 3 hours before this run. Its statewide figures come from a random draw of 700 sites, so each one carries a margin of error, shown below at 95% confidence. A gap smaller than that margin may come from chance alone.
| Measure | Cobb County (every listed site) | Alabama (random sample) | Alabama 95% margin | Gap in points |
|---|---|---|---|---|
| No working home page | 188 of 1,672 (11.2%) | 108 of 700 (15.4%) | ±2.7 | -4.2 |
| Organization or LocalBusiness JSON-LD | 789 of 1,410 (56.0%) | 268 of 552 (48.6%) | ±4.2 | +7.4 |
| All three: business JSON-LD, llms.txt, no AI crawler blocked | 331 of 1,410 (23.5%) | 92 of 552 (16.7%) | ±3.1 | +6.8 |
| Blocks at least one of the five AI crawlers | 66 of 1,410 (4.7%) | 21 of 552 (3.8%) | ±1.6 | +0.9 |
| llms.txt file | 435 of 1,410 (30.9%) | 139 of 552 (25.2%) | ±3.6 | +5.7 |
| Plain http only, never https | 96 of 1,410 (6.8%) | 49 of 552 (8.9%) | ±2.4 | -2.1 |
| Median time to first byte | 966 ms | 617 ms |
The timing rows do not compare. Right after the Cobb run I timed 60 randomly chosen Alabama sites again with the same script. Their median first byte came to 1,056 ms, against 658 ms for the same sites during the Alabama run. The connection was slower during the Cobb run, so the Cobb timings measure that evening's network as much as the sites.
Where in Cobb County are the sites?
Each domain belongs to the city whose limits hold its listing. Many businesses with a Marietta or Smyrna mailing address sit outside any city limit, in unincorporated Cobb. This study reports its checks for the county as a whole, so the table gives counts only.
| Area | Domains | Share of county |
|---|---|---|
| Marietta | 481 | 28.8% |
| Kennesaw | 174 | 10.4% |
| Smyrna | 78 | 4.7% |
| Acworth | 16 | 1.0% |
| Mableton | 9 | 0.5% |
| Austell | 1 | 0.1% |
| Powder Springs | 1 | 0.1% |
| Outside any city limit | 912 | 54.5% |
| Whole county | 1,672 | 100.0% |
Full results by check
Each table lists the count, the share and the base n for Cobb County, with the Alabama statewide sample below it. Download every Cobb County figure as a CSV file. It holds counts, bases and percentages only.
Does the home page work?
| Area | Base n (domains checked) | Working home page (status 200) | No working home page | Web address no longer resolves | Working page ends on a different domain |
|---|---|---|---|---|---|
| Cobb County | 1,672 | 1,484 (88.8%) | 188 (11.2%) | 74 (4.4%) | 74 of 1,484 (5.0%) |
| Alabama (random sample) | 700 | 592 (84.6%) | 108 (15.4%) | 57 (8.1%) | 40 of 592 (6.8%) |
In Cobb County, the 188 failures break down as 74 addresses that did not resolve, 33 404 errors, 25 403 errors, 9 certificates that failed verification, 15 timeouts and 32 other errors. A page that ends on a different domain counts as working but leaves the base for the checks below.
Basics on the business's own page
| Area | Base n (own-domain pages) | Ends on https | Plain http only, never https | Viewport tag for phones |
|---|---|---|---|---|
| Cobb County | 1,410 | 1,314 (93.2%) | 96 (6.8%) | 1,342 (95.2%) |
| Alabama (random sample) | 552 | 503 (91.1%) | 49 (8.9%) | 521 (94.4%) |
| Area | Base n (own-domain pages) | Page title | Meta description | No meta description | All four: https, viewport, title, meta description |
|---|---|---|---|---|---|
| Cobb County | 1,410 | 1,372 (97.3%) | 1,078 (76.5%) | 332 (23.5%) | 1,027 (72.8%) |
| Alabama (random sample) | 552 | 526 (95.3%) | 405 (73.4%) | 147 (26.6%) | 379 (68.7%) |
Structured data
| Area | Base n (own-domain pages) | Any JSON-LD | Organization or LocalBusiness JSON-LD |
|---|---|---|---|
| Cobb County | 1,410 | 948 (67.2%) | 789 (56.0%) |
| Alabama (random sample) | 552 | 340 (61.6%) | 268 (48.6%) |
AI crawlers and llms.txt
| Area | Base n (own-domain pages) | robots.txt present | Blocks at least one of the five AI crawlers | Blocks all five | llms.txt file | All three: business JSON-LD, llms.txt, no AI crawler blocked |
|---|---|---|---|---|---|---|
| Cobb County | 1,410 | 1,301 (92.3%) | 66 (4.7%) | 14 (1.0%) | 435 (30.9%) | 331 (23.5%) |
| Alabama (random sample) | 552 | 510 (92.4%) | 21 (3.8%) | 4 (0.7%) | 139 (25.2%) | 92 (16.7%) |
| Area | Base n (own-domain pages) | Blocks GPTBot | Blocks ClaudeBot | Blocks PerplexityBot | Blocks Google-Extended | Blocks CCBot |
|---|---|---|---|---|---|---|
| Cobb County | 1,410 | 62 (4.4%) | 55 (3.9%) | 22 (1.6%) | 54 (3.8%) | 62 (4.4%) |
| Alabama (random sample) | 552 | 17 (3.1%) | 17 (3.1%) | 6 (1.1%) | 17 (3.1%) | 20 (3.6%) |
Speed
| Area | Base n (own-domain pages) | Median first byte | 75th percentile first byte | First byte over 800 ms | Median HTML download | HTML download over 2 seconds | Median HTML size |
|---|---|---|---|---|---|---|---|
| Cobb County | 1,410 | 966 ms | 1,401 ms | 892 (63.3%) | 1,330 ms | 321 (22.8%) | 169 KB |
| Alabama (random sample) | 552 | 617 ms | 828 ms | 147 (26.6%) | 738 ms | 45 (8.2%) | 140 KB |
The two rows ran under different network conditions. The control above shows the same Alabama sites answering about 398 ms slower at the median during the Cobb run.
The OpenStreetMap listing
| Area | Base n (domains checked) | Listing has opening hours | Listing has a phone number |
|---|---|---|---|
| Cobb County | 1,672 | 1,339 (80.1%) | 1,493 (89.3%) |
| Alabama (random sample) | 700 | 400 (57.1%) | 568 (81.1%) |
Social pages in place of a website
| Area | Base n (listed web addresses) | Social page |
|---|---|---|
| Cobb County | 1,680 | 8 (0.5%) |
| All of Alabama | 2,191 | 89 (4.1%) |
Method
Sample frame
Business listings came from OpenStreetMap through the public Overpass API on 9 November 2026. The county query ran at 23:54 UTC and the seven city queries between 23:56 UTC on 9 November 2026 and 01:51 UTC on 10 November 2026, all on overpass-api.de. A network outage stopped the first try at the last city queries, so they ran again later. The query asks for every Cobb County listing tagged shop, craft or office, every restaurant, cafe, bar, fast food outlet, dentist, doctor's office, clinic and veterinarian, every hotel and every fitness centre, where the listing has a website or contact:website tag. The tag set matches the Alabama query line for line. Only the area line differs.
Cobb County is the OpenStreetMap boundary with Wikidata id Q484247. Before the run I queried that boundary and confirmed its name, Cobb County, and its admin_level, 6, the county level in Georgia.
[out:json][timeout:180];
area["wikidata"="Q484247"]["boundary"="administrative"]["admin_level"="6"]->.a;
(
nwr["shop"]["website"](area.a);
nwr["shop"]["contact:website"](area.a);
nwr["craft"]["website"](area.a);
nwr["craft"]["contact:website"](area.a);
nwr["office"]["website"](area.a);
nwr["office"]["contact:website"](area.a);
nwr["amenity"~"^(restaurant|cafe|bar|dentist|doctors|clinic|veterinary|fast_food)$"]["website"](area.a);
nwr["amenity"~"^(restaurant|cafe|bar|dentist|doctors|clinic|veterinary|fast_food)$"]["contact:website"](area.a);
nwr["tourism"="hotel"]["website"](area.a);
nwr["tourism"="hotel"]["contact:website"](area.a);
nwr["leisure"="fitness_centre"]["website"](area.a);
nwr["leisure"="fitness_centre"]["contact:website"](area.a);
);
out tags center;Each city query swaps the second line for the line below, with the Wikidata id of the city: Q852684 for Marietta, Q1001316 for Kennesaw, Q958676 for Smyrna, Q344933 for Acworth, Q2688463 for Austell, Q3261052 for Powder Springs, and Q2656942 for Mableton. A city query only places county listings in a city. Listings from the part of Austell that lies in Douglas County drop out.
area["wikidata"="QID"]["boundary"="administrative"]["admin_level"="8"]->.a;Chains, government and social pages
The county query returned 3,157 listings. I dropped national and regional chains with the same rule as the Alabama study. A listing counts as a chain when it carries a brand or brand:wikidata tag, and any website shared with a brand-tagged listing went too. That step removed 1,225 listings and 416 chain domains. I also dropped 47 government, school, religious, nonprofit and association listings, including any .gov, .edu, .mil or .ga.us address, and 2 listings with an unusable address. 8 Facebook, Instagram and Linktree addresses went into the social page count. That left 1,672 unique business domains, 760 of them inside a city limit.
The draw
There is no draw. The study checked every one of the 1,672 domains, so the county figures have no sampling error. They still depend on which businesses volunteers have mapped.
The checks
One script ran once on 10 November 2026, from 01:52 to 02:11 UTC, on one computer in Tuscaloosa, Alabama. It is the same script as the Alabama study. It read the home page only, ran at most four sites at a time, allowed 10 seconds per request and sent an ordinary Chrome user agent. It requested http://domain/ and followed redirects. If that address refused the connection, it tried https://domain/ once. It made no other retries.
- Working home page. The final response has status 200.
- Own domain. The final address stays on the listed domain. Pages that end on another domain leave the base for every check below.
- https. The final address uses https.
- Viewport, title, meta description. The page has a viewport meta tag, a title with text in it and a meta description with text in it.
- Business structured data. The page has JSON-LD with a type that schema.org lists under Organization, which takes in LocalBusiness and its subtypes such as Restaurant and Dentist.
- AI crawler blocked. The script read robots.txt under RFC 9309. A crawler counts as blocked when the group that applies to it, its own named group or else the group for all crawlers, disallows the home page. The five crawlers are GPTBot (OpenAI), ClaudeBot (Anthropic), PerplexityBot (Perplexity), Google-Extended (Google AI training control) and CCBot (Common Crawl).
- llms.txt. The file returns status 200 as plain text with a markdown heading or quote line. An HTML page or a copy of robots.txt does not count. The script fetched every hit a second time to apply this test.
- All three AI signals. Business structured data, an llms.txt file and none of the five crawlers blocked.
- Time to first byte and HTML download. Wall-clock time from the request to the first byte and to the end of the HTML, including redirects and connection setup.
- Opening hours and phone. These come from the OpenStreetMap tags, not from the website.
Limits
- The timings come from a computer in Tuscaloosa, about 200 miles from Cobb County, on a connection that ran slower than during the Alabama run. Treat them as an upper bound, and do not compare them with the Alabama timings. They say nothing about PageSpeed or Core Web Vitals.
- Each site got one try. A site that was down for a few minutes counts as not working, and some sites that block automated requests may show up as not working too.
- OpenStreetMap depends on volunteers. A business appears only if someone mapped it with a website, and mapping density differs between Cobb County and Alabama, so the two lists may hold different kinds of business.
- The Alabama figures come from a random sample and the Cobb figures from the full list. Read the comparison with the Alabama margin of error in mind.
- The city counts depend on city limits. Unincorporated Cobb holds many businesses with a city name in their mailing address.
- robots.txt states a request to crawlers. It does not show firewall or hosting rules that turn AI crawlers away, which some hosts apply by default.
- Many sites get structured data, robots rules and llms.txt from their website platform or an SEO plugin. The figures describe what visitors and crawlers receive, whoever made the choice.
- Python's certificate store judged the certificates, and it can reject a few sites that a browser would load.
- The structured data check read JSON-LD only, so it missed microdata and RDFa.
- A few regional businesses with several locations and no brand tag remain in the data.
What owners can fix
- Run the free AI visibility check on your own site. It reads your robots.txt, llms.txt and home page and lists what to fix.
- If your web address no longer works, claim your Google listing first, so customers can still find your phone number and hours.
- Add a plain sentence that names the business, what it does and the town it serves. The post on how to write a page an AI will quote shows the sentence shape.
- For structured data, llms.txt and crawler rules in one place, read AI websites for small businesses.
Common questions
What did the Cobb County small business website study measure?
It checked the home page of each business website for a working response, https, a viewport tag, a title, a meta description and Organization or LocalBusiness JSON-LD. It also read robots.txt for five AI crawlers, looked for an llms.txt file and timed the first byte and the HTML download from one computer in Tuscaloosa, Alabama.
How was the sample chosen?
Business listings with a website came from OpenStreetMap through the Overpass API on 9 and 10 November 2026, UTC. After removing chains, government and nonprofit offices and social media pages, 1,672 business domains remained in Cobb County. The study checked every one of them, so the county figures count the whole list.
How does Cobb County compare with Alabama?
The page sets the Cobb County figures beside the statewide random sample from the Alabama study, which used the same query, filters and scripts a few hours earlier. The Alabama figures carry sampling error and the Cobb figures do not, so small gaps between them may come from chance.
Can I check my own website the same way?
Yes. The free AI visibility check at purcellventures.co/ai-visibility-check reads your robots.txt, llms.txt and home page, including the title, meta description, structured data and https, and lists what to fix.
Can I use the data?
Yes. The aggregate figures and the CSV carry a Creative Commons Attribution 4.0 license. Credit Purcell Ventures and OpenStreetMap contributors, whose listings under the Open Database License formed the sample frame. The file holds counts and percentages only, with no domains or business names.
Data credit and license
Listing data © OpenStreetMap contributors, available under the Open Database License. The aggregate figures on this page and in the CSV carry a Creative Commons Attribution 4.0 license. Credit Purcell Ventures and OpenStreetMap contributors when you use them.