Technical SEO
Can search engines discover and read the public pages?
5 actionable
Search · software · signals
An evidence-backed look at how PointCast meets search engines, AI assistants and the agents that move between them.
One public-site snapshot. Readiness is measured here; real search rankings and AI citations are not.
Frozen snapshot
Age calculated when opened · Recheck recommended
No live monitoringActionable findings
111 high priority · issues + reviewsPublic URLs sampled
108109 HTTP + document check recordsBot requests sampled
12Synthetic requests · 2 additional policy tokensActual search visibility
—UnmeasuredNo traffic, ranking or citation claim01 / What was checked
Counts describe the saved audit’s scope. A sampled route is not the entire site, and a passing request does not prove indexing.
Can search engines discover and read the public pages?
Can software find useful, documented entry points?
What do declared rules and synthetic requests reveal?
Is there readable evidence for generative search to use?
20 groups accepted from a complete response; path matching tested independently; failed retrieval does not imply access permission
Recursively follows robots declarations and sitemap indexes; 3325 URL entries, 3324 unique exact URLs
All declared URLs inventoried; HTTP responses measured only in bounded cohorts, not all sitemap URLs
Purposive cohort spans identity, publishing, agents, local, articles and interactive pages; not a random sample of 3324 sitemap URLs
Curated discovery/feeds/JSON/OpenAPI/MCP GET cohort; complete machine endpoint universe not enumerated
Unauthenticated GET only; no POST, signing, wallet, payment, action or receipt verification
36 deterministic spread sample from selected HTML; query, action/admin/account and asset hrefs excluded
Root GET only, audit network; 2 additional Extended policy tokens evaluated without HTTP requests
No authorized provider analytics, verified crawler logs or repeatable query/citation study in this snapshot
02 / Evidence → action
Findings are ordered by priority. Open a card for the observation, its impact and the next useful action.
8 unique public-name sitemap URLs match the /me prefix. 5 selected HTML examples returned 200 with self canonicals and no noindex directive.
Compliant search crawlers may skip this public content. This is a crawl-policy collision, not proof of index removal or a noindex response. User-triggered retrieval providers may apply different rules.
Review intended /me scope and explicitly preserve crawl access for public /me-prefixed routes. Validate private-route intent before changing policy.
Disallow: /me is repeated for wildcard and named AI groups; prefix also matches public names
HTTP 200; canonical https://pointcast.xyz/meetups/; noindex false; listed in sitemap; effective rule /me
HTTP 200; canonical https://pointcast.xyz/messages/; noindex false; listed in sitemap; effective rule /me
HTTP 200; canonical https://pointcast.xyz/meditate/; noindex false; listed in sitemap; effective rule /me
HTTP 200; canonical https://pointcast.xyz/mesh/; noindex false; listed in sitemap; effective rule /me
HTTP 200; canonical https://pointcast.xyz/menlo-park/; noindex false; listed in sitemap; effective rule /me
Inventoried sitemap URL; effective rule /me; response not fetched in HTML cohort
Inventoried sitemap URL; effective rule /me; response not fetched in HTML cohort
Inventoried sitemap URL; effective rule /me; response not fetched in HTML cohort
1 of 4 advertised named synthetic root requests retained runtime markup or lacked the promised X-Agent-Mode header. Full HTML remained HTTP 200.
This is a discovery-documentation/runtime mismatch, not an access or indexing failure. Historical payload savings in the manifest are not current performance measurements.
Reconcile the advertised trigger list, classifier and response treatment, and describe Extended tokens as robots controls rather than distinct HTTP User-Agents.
agentMode.trigger: User-Agent prefix "ai:" OR matches GPTBot / ClaudeBot / PerplexityBot / OAI-SearchBot / Atlas / Google-Extended
OAI-SearchBot/1.0; HTTP 200; X-Agent-Mode (absent); 29 non-JSON-LD scripts; 13 style/stylesheet tags
Separately reviewed classifier does not explicitly match OAI-SearchBot; live synthetic requests are the response evidence
The live legacy plugin manifest declares api.type=openapi but its target https://pointcast.xyz/agents.json has no OpenAPI version or paths.
This affects clients that still interpret the legacy manifest as an OpenAPI plugin. Modern MCP/JSON discovery and the two scoped OpenAPI specifications passed separate checks.
Replace the target with an appropriate genuine OpenAPI document, or retire the legacy manifest while preserving current documented integrations.
api.type=openapi; api.url=https://pointcast.xyz/agents.json
JSON discovery manifest, without openapi or paths
Block 0655 JSON reports contributor “codex”; the HTML Article JSON-LD points author to the site-wide person identity.
Attribution inconsistency reduces clarity for systems assessing authorship and provenance.
Represent the actual contributor(s) consistently in visible credits, HTML metadata and JSON-LD; keep publisher identity separate.
author: codex
Article JSON-LD author @id is https://pointcast.xyz/#person
Block 0659 JSON reports contributor “codex”; the HTML Article JSON-LD points author to the site-wide person identity.
Attribution inconsistency reduces clarity for systems assessing authorship and provenance.
Represent the actual contributor(s) consistently in visible credits, HTML metadata and JSON-LD; keep publisher identity separate.
author: codex
Article JSON-LD author @id is https://pointcast.xyz/#person
3 selected public pages returned 200 with deliberate noindex and appeared in declared sitemaps.
This sends inconsistent discovery signals; noindex pages and join/redirect steps are not public-content outages.
Remove intentionally noindex steps from preferred-URL sitemaps while preserving their intended visitor behavior.
HTTP 200; noindex; canonical https://pointcast.xyz/brick-choir/join/; in sitemap
HTTP 200; noindex; canonical https://pointcast.xyz/nouns/drum-club/bandmates/launch/; in sitemap
HTTP 200; noindex; canonical https://pointcast.xyz/rewards/start/; in sitemap
48 of 154 Product nodes on the selected shop front lack Google's documented minimum name/offer/review/rating candidate path. Full rich-result eligibility remains unmeasured.
This limits a possible enhanced appearance; it does not establish crawl/index exclusion or measured search performance. Mixed catalog pages are not the preferred Product snippet target. Availability is recommended rather than a universal required property.
Use truthful, visible product data on suitable individual product pages and validate it with Google tools. Do not invent prices, reviews, ratings or stock status.
48 of 154 Product nodes lack name or an Offer/AggregateOffer/review/aggregateRating candidate path; partial price check only, nested review/rating validity and full Google eligibility unmeasured
Required Product name plus at least one valid offers/review/aggregateRating path; Offer needs price or priceSpecification.price; AggregateOffer needs lowPrice and priceCurrency; availability is recommended
All 1207 dated discovery entries share 2026-10-02. The separately reviewed source generator assigns the build date.
A blanket date does not establish that each page changed significantly; freshness hints lose precision.
Emit lastmod only from verifiable page content changes, or omit it when a reliable date is unavailable.
1207 entries, one lastmod value: 2026-10-02
Source-informed as of this audit: generator assigns today once and applies it to every listed route; not inferred solely from equal live dates
The live llms-full.txt says “9 channels”; live agents.json enumerates 10 channels. The text guide also designates agents.json as current and preserves historical context.
Clients reading the text channel section alone may miss a current channel; this does not imply broken links or treat explicitly dated historical block counts as current.
Reconcile the channel section with the current registry, or clearly date and label that section as historical.
9 channels; agents.json designated current elsewhere in the document
10 channels enumerated
1 of 36 selected HTML routes need review for this check.
A clear primary heading improves page orientation; one h1 is not a search-engine requirement.
Review primary headings on the affected route cohort.
4 h1 element(s); editorial structure check, not a ranking rule
3325 entries reduce to 3324 URLs after normalizing trailing slashes (1 repeated entry).
Repeated sitemap entries add noise to crawl inventories; repetition alone does not prove an indexing problem.
Keep a consistent preferred URL form and remove avoidable cross-family duplication.
index: 1 entries
urlset: 1207 entries
urlset: 428 entries
urlset: 1690 entries
6 of 6 audience/method probes matched published contracts (6 denial/preview responses and 0 documented public status responses); 0 probes remained unmeasured.
Anonymous read probes do not exercise authorized actions, payments, signed identity or receipts. An unexpected 200 on a denied-by-contract route is reviewed separately from a documented public status 200.
Keep expected gates separate from public read failures; exercise authorized actions only in their dedicated test lane.
HTTP 401; Signed agent proof required; anonymous GET is expected to be denied.; agent-proof-required
HTTP 402; Bare GET is a payment quote; no payment is submitted.; Payment Required
HTTP 400; Receipt input is absent; this request cannot verify a receipt.; receipt must be a base64 JSON string or object
HTTP 404; Published action is POST-only; GET is a method mismatch, not a participation test.
HTTP 404; Published action is POST-only; GET is a method mismatch, not an action test.
HTTP 503; Public status may return 200 or a documented 503 preview/availability gate; phase and reason are checked.; collection-not-enabled
25 of 26 selected discovery surfaces passed availability, format and advertised-contract checks; 6 audience/method probes are classified separately.
Machine-readable interfaces reduce parsing work but do not establish search ranking or AI citations. A readable JSON response can still advertise an incorrect integration contract.
Maintain manifest links, typed formats and audience/method contracts together.
HTTP 200; 36057 characters
HTTP 200; 7627 characters
HTTP 200; Valid JSON; application/json
HTTP 200; Valid JSON; application/json
HTTP 200; Valid JSON; application/json; https://jsonfeed.org/version/1.1; 428 items
12 of 12 named synthetic root requests completed with 200 and root policy permission; 0 remained unmeasured. Two Extended policy tokens were evaluated only in robots.
Responses from this audit network cannot verify provider IP access, WAF treatment, actual crawling, rendering or indexing.
Use verified crawler logs and provider tools to measure real bot activity; review the public-path robots mismatch separately.
Named synthetic root requests only; no verified crawler source
20 parsed robot groups
This snapshot measures technical discovery readiness. It contains no provider index coverage, ranking, traffic, search-query study or AI citation measurement.
Available machine formats and crawl permission can support retrieval but cannot establish real search or generative-engine outcomes.
Add authorized Search Console/Bing evidence, verified crawler logs, and a disclosed repeatable AI citation study as separate measured datasets.
Public participation/discovery documentation; not provider visibility evidence
36 of 36 selected HTML pages delivered at least 50 candidate text words outside script/style/template/SVG.
Initial HTML improves readability for clients that do not run page scripts; semantic and factual quality require separate editorial review.
Keep meaningful content and contributor/source context in initial HTML or a linked machine twin.
12063 candidate server-text words
2586 candidate server-text words
3531 candidate server-text words
8367 candidate server-text words
36 deterministic on-origin hrefs selected from 1082 eligible unique links; 0 returned 4xx/5xx; 0 remained unmeasured.
This bounded sample does not certify every link on the site. Transport failures are unmeasured checks, not proof of an outage; a zero-length cohort is unmeasured.
Repair failed destinations or stale hrefs; expand this cohort when new route families publish.
HTTP 200
HTTP 200
HTTP 200
HTTP 200
4 documents contain 3325 URL entries and 3324 unique exact URLs.
This measures sitemap discovery and parsing, not index submission or index coverage.
Keep preferred canonical URLs in sitemaps and verify provider submission separately.
index: 1 entries
urlset: 1207 entries
urlset: 428 entries
urlset: 1690 entries
No findings match these filters. Try another area, status or route.
A boundary worth keeping visible
GEO here means generative-engine optimization: how well the site offers accessible, clear and attributable material for AI search to use.
These checks cannot tell us whether an assistant actually cites PointCast. Search Console indexing, search rankings, referral traffic and controlled AI citation tests require separate measurements.
Real visibility: unmeasured03 / Open the document
109 check records across 108 unique sampled URLs. HTTP status and audit result are separate: an intentional gate or redirect can be expected behavior.
{
"byteCount": 410775,
"topLevelKeys": [
"version",
"title",
"description",
"home_page_url",
"feed_url",
"icon",
"favicon",
"authors",
"language",
"items"
],
"itemCount": 428,
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
https://jsonfeed.org/version/1.1; 428 items
HTTP 200; Valid JSON; application/json; https://jsonfeed.org/version/1.1; 428 items
{
"byteCount": 96,
"gateReason": "collection-not-enabled",
"phase": "preview"
}HTTP 503; Public status may return 200 or a documented 503 preview/availability gate; phase and reason are checked.
HTTP 503; Public status may return 200 or a documented 503 preview/availability gate; phase and reason are checked.
{
"byteCount": 180592
}HTTP 404; Published action is POST-only; GET is a method mismatch, not a participation test.
HTTP 404; Published action is POST-only; GET is a method mismatch, not a participation test.
{
"byteCount": 180592
}HTTP 404; Published action is POST-only; GET is a method mismatch, not an action test.
HTTP 404; Published action is POST-only; GET is a method mismatch, not an action test.
{
"byteCount": 52,
"gateReason": "agent-proof-required"
}HTTP 401; Signed agent proof required; anonymous GET is expected to be denied.
HTTP 401; Signed agent proof required; anonymous GET is expected to be denied.
{
"byteCount": 912,
"gateReason": "Payment Required"
}HTTP 402; Bare GET is a payment quote; no payment is submitted.
HTTP 402; Bare GET is a payment quote; no payment is submitted.
{
"byteCount": 81,
"gateReason": "receipt must be a base64 JSON string or object"
}HTTP 400; Receipt input is absent; this request cannot verify a receipt.
HTTP 400; Receipt input is absent; this request cannot verify a receipt.
HTTP 200
text/html; charset=utf-8
1 title(s); PointCast
1 description(s)
https://pointcast.xyz/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CollectionPage, CreativeWork, GeoCoordinates, ItemList, Organization, Periodical, Person, Place, PostalAddress, SearchAction, WebApplication, WebSite
12063 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title PointCast; canonical https://pointcast.xyz/
HTTP 200
text/html; charset=utf-8
1 title(s); ROW / ROW — Sorority Row and the Social Architecture of 2030 — PointCast
1 description(s)
https://pointcast.xyz/25/magazine/sorority-row/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, GeoCoordinates, Organization, Person, Place, PostalAddress, PublicationIssue, SearchAction, WebSite
2954 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title ROW / ROW — Sorority Row and the Social Architecture of 2030 — PointCast; canonical https://pointcast.xyz/25/magazine/sorority-row/
HTTP 200
text/html; charset=utf-8
1 title(s); About | PointCast
1 description(s)
https://pointcast.xyz/about/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
1 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
2586 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title About | PointCast; canonical https://pointcast.xyz/about/
HTTP 200
text/html; charset=utf-8
1 title(s); PointCast Agent Field Guide — PointCast
1 description(s)
https://pointcast.xyz/agent-field-guide/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
4570 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title PointCast Agent Field Guide — PointCast; canonical https://pointcast.xyz/agent-field-guide/
HTTP 200
text/html; charset=utf-8
1 title(s); Agent-native publishing — PointCast
1 description(s)
https://pointcast.xyz/agent-native-publishing/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: DefinedTerm, GeoCoordinates, HowTo, HowToStep, Organization, Person, Place, PostalAddress, SearchAction, TechArticle, WebSite
3013 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Agent-native publishing — PointCast; canonical https://pointcast.xyz/agent-native-publishing/
HTTP 200
text/html; charset=utf-8
1 title(s); Archive — PointCast
1 description(s)
https://pointcast.xyz/archive/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: BreadcrumbList, CollectionPage, CreativeWork, GeoCoordinates, ItemList, ListItem, Organization, Person, Place, PostalAddress, SearchAction, WebSite
16423 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Archive — PointCast; canonical https://pointcast.xyz/archive/
HTTP 200
text/html; charset=utf-8
1 title(s); PointCast Areas — PointCast
1 description(s)
https://pointcast.xyz/areas/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CollectionPage, CreativeWork, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
2965 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title PointCast Areas — PointCast; canonical https://pointcast.xyz/areas/
HTTP 200
text/html; charset=utf-8
1 title(s); CH.SPN · 0560 — PointCast Tonight — GO OUT / STAY IN — PointCast
1 description(s)
https://pointcast.xyz/b/0560/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, BreadcrumbList, Collection, GeoCoordinates, ListItem, Organization, Person, Place, PostalAddress, SearchAction, URL, WebSite
3052 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title CH.SPN · 0560 — PointCast Tonight — GO OUT / STAY IN — PointCast; canonical https://pointcast.xyz/b/0560/
HTTP 200
text/html; charset=utf-8
1 title(s); CH.ESC · 0655 — Nouns Money · let’s collect — PointCast
1 description(s)
https://pointcast.xyz/b/0655/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, BreadcrumbList, Collection, GeoCoordinates, ListItem, Organization, Person, Place, PostalAddress, SearchAction, URL, WebSite
2871 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title CH.ESC · 0655 — Nouns Money · let’s collect — PointCast; canonical https://pointcast.xyz/b/0655/
HTTP 200
text/html; charset=utf-8
1 title(s); CH.ESC · 0659 — A year within reach — PointCast
1 description(s)
https://pointcast.xyz/b/0659/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, BreadcrumbList, Collection, GeoCoordinates, ListItem, Organization, Person, Place, PostalAddress, SearchAction, URL, WebSite
2711 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title CH.ESC · 0659 — A year within reach — PointCast; canonical https://pointcast.xyz/b/0659/
HTTP 200
text/html; charset=utf-8
1 title(s); The PointCast Bookshop — PointCast
1 description(s)
https://pointcast.xyz/books/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CollectionPage, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebPage, WebSite
183 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title The PointCast Bookshop — PointCast; canonical https://pointcast.xyz/books/
HTTP 200
text/html; charset=utf-8
1 title(s); Brick Choir: join the TV · PointCast
1 description(s)
https://pointcast.xyz/brick-choir/join/
noindex; deliberate noindex is not an outage
Noindex page appears in declared sitemap
/
1 JSON-LD block(s); types: BreadcrumbList, ListItem
56 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Brick Choir: join the TV · PointCast; canonical https://pointcast.xyz/brick-choir/join/
HTTP 200
text/html; charset=utf-8
1 title(s); Agent capabilities — PointCast
1 description(s)
https://pointcast.xyz/capabilities/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebPage, WebSite
2973 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Agent capabilities — PointCast; canonical https://pointcast.xyz/capabilities/
HTTP 200
text/html; charset=utf-8
1 title(s); Bring your AI to PointCast — PointCast
1 description(s)
https://pointcast.xyz/connectors/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CollectionPage, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, SoftwareApplication, WebSite
4258 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Bring your AI to PointCast — PointCast; canonical https://pointcast.xyz/connectors/
HTTP 200
text/html; charset=utf-8
1 title(s); For agents — PointCast
1 description(s)
https://pointcast.xyz/for-agents/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CreativeWork, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebPage, WebSite
8367 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title For agents — PointCast; canonical https://pointcast.xyz/for-agents/
HTTP 200
text/html; charset=utf-8
1 title(s); Local · 100 miles from El Segundo — PointCast
1 description(s)
https://pointcast.xyz/local/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: AdministrativeArea, City, GeoCircle, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
4630 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Local · 100 miles from El Segundo — PointCast; canonical https://pointcast.xyz/local/
HTTP 200
text/html; charset=utf-8
1 title(s); Lucky Cat — Agent Practice · PointCast
1 description(s)
https://pointcast.xyz/lucky-cat/agents/
No restricting meta directive
/
1 JSON-LD block(s); types: BreadcrumbList, ListItem
275 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Lucky Cat — Agent Practice · PointCast; canonical https://pointcast.xyz/lucky-cat/agents/
HTTP 200
text/html; charset=utf-8
1 title(s); Manifesto — PointCast
1 description(s)
https://pointcast.xyz/manifesto/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Answer, DefinedTerm, DefinedTermSet, FAQPage, GeoCoordinates, Organization, Person, Place, PostalAddress, Question, SearchAction, WebSite
3531 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Manifesto — PointCast; canonical https://pointcast.xyz/manifesto/
HTTP 200
text/html; charset=utf-8
1 title(s); El Segundo Manufacturing Atlas — PointCast
1 description(s)
https://pointcast.xyz/manufacturing/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
1 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
5888 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title El Segundo Manufacturing Atlas — PointCast; canonical https://pointcast.xyz/manufacturing/
HTTP 200
text/html; charset=utf-8
1 title(s); Ocean Meditation — PointCast
1 description(s)
https://pointcast.xyz/meditate/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/me
2 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebApplication, WebSite
2704 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Ocean Meditation — PointCast; canonical https://pointcast.xyz/meditate/
HTTP 200
text/html; charset=utf-8
1 title(s); Mike-led Meetups — PointCast
1 description(s)
https://pointcast.xyz/meetups/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/me
2 JSON-LD block(s); types: CollectionPage, EventSeries, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
2806 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Mike-led Meetups — PointCast; canonical https://pointcast.xyz/meetups/
HTTP 200
text/html; charset=utf-8
1 title(s); A Minor Invention Every Ten Days: A Material History of Edison's Menlo Park, 1876–1886 — UES Working Paper — PointCast
1 description(s)
https://pointcast.xyz/menlo-park/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/me
2 JSON-LD block(s); types: EducationalOrganization, GeoCoordinates, Organization, Periodical, Person, Place, PostalAddress, ScholarlyArticle, SearchAction, WebSite
5447 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title A Minor Invention Every Ten Days: A Material History of Edison's Menlo Park, 1876–1886 — UES Working Paper — PointCast; canonical https://pointcast.xyz/menlo-park/
HTTP 200
text/html; charset=utf-8
1 title(s); Mesh — three networks that carry PointCast — PointCast
1 description(s)
https://pointcast.xyz/mesh/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/me
2 JSON-LD block(s); types: Collection, DataFeed, Dataset, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
3234 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Mesh — three networks that carry PointCast — PointCast; canonical https://pointcast.xyz/mesh/
HTTP 200
text/html; charset=utf-8
1 title(s); Messages — PointCast
1 description(s)
https://pointcast.xyz/messages/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/me
2 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, SoftwareApplication, WebSite
2638 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Messages — PointCast; canonical https://pointcast.xyz/messages/
HTTP 200
text/html; charset=utf-8
1 title(s); Morning Edition — PointCast
1 description(s)
https://pointcast.xyz/morning/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: GeoCoordinates, MediaObject, Organization, Periodical, Person, Place, PostalAddress, SearchAction, WebSite
2381 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Morning Edition — PointCast; canonical https://pointcast.xyz/morning/
HTTP 200
text/html; charset=utf-8
1 title(s); Launch the Bandmates — Nouns Drum Club — PointCast
1 description(s)
https://pointcast.xyz/nouns/drum-club/bandmates/launch/
noindex, nofollow; deliberate noindex is not an outage
Noindex page appears in declared sitemap
/
1 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
181 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Launch the Bandmates — Nouns Drum Club — PointCast; canonical https://pointcast.xyz/nouns/drum-club/bandmates/launch/
HTTP 200
text/html; charset=utf-8
1 title(s); The Paddle Register — PointCast
1 description(s)
https://pointcast.xyz/paddles/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: DataDownload, Dataset, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
4411 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title The Paddle Register — PointCast; canonical https://pointcast.xyz/paddles/
HTTP 200
text/html; charset=utf-8
1 title(s); Which paddles are approved: USA Pickleball, UPA-A, quiet courts — PointCast
1 description(s)
https://pointcast.xyz/paddles/legal/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Dataset, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
6178 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Which paddles are approved: USA Pickleball, UPA-A, quiet courts — PointCast; canonical https://pointcast.xyz/paddles/legal/
HTTP 200
text/html; charset=utf-8
1 title(s); Post Office — PointCast | PointCast
1 description(s)
https://pointcast.xyz/post-office/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
1 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
2756 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Post Office — PointCast | PointCast; canonical https://pointcast.xyz/post-office/
HTTP 200
text/html; charset=utf-8
1 title(s); AI plans, reviewed for value | PointCast — PointCast
1 description(s)
https://pointcast.xyz/reviews/ai-plans/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
3441 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title AI plans, reviewed for value | PointCast — PointCast; canonical https://pointcast.xyz/reviews/ai-plans/
HTTP 200
text/html; charset=utf-8
1 title(s); Start a reward run — PointCast
1 description(s)
https://pointcast.xyz/rewards/start/
noindex, nofollow; deliberate noindex is not an outage
Noindex page appears in declared sitemap
/
1 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
2539 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
4 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title Start a reward run — PointCast; canonical https://pointcast.xyz/rewards/start/
HTTP 200
text/html; charset=utf-8
1 title(s); PointCast Commerce — PointCast
1 description(s)
https://pointcast.xyz/shop/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Brand, CollectionPage, GeoCoordinates, ItemList, ListItem, Organization, Person, Place, PostalAddress, Product, SearchAction, WebSite
3681 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title PointCast Commerce — PointCast; canonical https://pointcast.xyz/shop/
HTTP 200
text/html; charset=utf-8
1 title(s); PointCast Shop — guides, picks and the register | PointCast — PointCast
1 description(s)
https://pointcast.xyz/shop/front/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: Article, Brand, CollectionPage, GeoCoordinates, ItemList, ListItem, Offer, Organization, Person, Place, PostalAddress, Product, SearchAction, WebSite
5116 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
48 of 154 Product nodes lack name or an Offer/AggregateOffer/review/aggregateRating candidate path; partial price check only, nested review/rating validity and full Google eligibility unmeasured
HTTP 200; title PointCast Shop — guides, picks and the register | PointCast — PointCast; canonical https://pointcast.xyz/shop/front/
HTTP 200
text/html; charset=utf-8
1 title(s); PointCast Tonight · GO OUT / STAY IN — PointCast
1 description(s)
https://pointcast.xyz/tonight/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CollectionPage, Event, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
621 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title PointCast Tonight · GO OUT / STAY IN — PointCast; canonical https://pointcast.xyz/tonight/
HTTP 200
text/html; charset=utf-8
1 title(s); /town — PointCast as a small internet town — PointCast
1 description(s)
https://pointcast.xyz/town/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
2 JSON-LD block(s); types: CollectionPage, GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebPage, WebSite
2620 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title /town — PointCast as a small internet town — PointCast; canonical https://pointcast.xyz/town/
HTTP 200
text/html; charset=utf-8
1 title(s); x402 — PointCast | PointCast
1 description(s)
https://pointcast.xyz/x402/
index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1
/
1 JSON-LD block(s); types: GeoCoordinates, Organization, Person, Place, PostalAddress, SearchAction, WebSite
2925 words after removing script/style/template/SVG; computed CSS/JS visibility not measured
en
1 h1 element(s); editorial structure check, not a ranking rule
HTTP 200; title x402 — PointCast | PointCast; canonical https://pointcast.xyz/x402/
{
"byteCount": 184181,
"topLevelKeys": [
"capabilityIndex",
"capabilitiesPage",
"$schema",
"name",
"description",
"homepage",
"forAgents",
"generatedAt",
"blocksSince",
"blocksCount",
"location",
"geo",
"language",
"license",
"keywords",
"identity",
"luckyCat",
"endpoints"
],
"provenance": {
"types": [],
"dates": [
{
"field": "generatedAt",
"value": "2026-10-02T22:51:44.491Z"
},
{
"field": "reviewedAt",
"value": "2026-09-21"
}
],
"dateCount": 2,
"sourceUrlCount": 4,
"authorSignals": 1
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 184181,
"topLevelKeys": [
"capabilityIndex",
"capabilitiesPage",
"$schema",
"name",
"description",
"homepage",
"forAgents",
"generatedAt",
"blocksSince",
"blocksCount",
"location",
"geo",
"language",
"license",
"keywords",
"identity",
"luckyCat",
"endpoints"
],
"provenance": {
"types": [],
"dates": [
{
"field": "generatedAt",
"value": "2026-10-02T22:51:44.497Z"
},
{
"field": "reviewedAt",
"value": "2026-09-21"
}
],
"dateCount": 2,
"sourceUrlCount": 4,
"authorSignals": 1
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 184181,
"topLevelKeys": [
"capabilityIndex",
"capabilitiesPage",
"$schema",
"name",
"description",
"homepage",
"forAgents",
"generatedAt",
"blocksSince",
"blocksCount",
"location",
"geo",
"language",
"license",
"keywords",
"identity",
"luckyCat",
"endpoints"
],
"provenance": {
"types": [],
"dates": [
{
"field": "generatedAt",
"value": "2026-10-02T22:51:45.846Z"
},
{
"field": "reviewedAt",
"value": "2026-09-21"
}
],
"dateCount": 2,
"sourceUrlCount": 4,
"authorSignals": 1
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 13225,
"topLevelKeys": [
"schema",
"generatedAt",
"cacheSeconds",
"contractScope",
"capabilityCount",
"capabilities"
],
"provenance": {
"types": [],
"dates": [
{
"field": "generatedAt",
"value": "2026-10-03T16:27:51.214Z"
},
{
"field": "reviewedAt",
"value": "2026-09-21"
}
],
"dateCount": 2,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json; charset=utf-8
HTTP 200; Valid JSON; application/json; charset=utf-8
{
"byteCount": 33096,
"topLevelKeys": [
"ok",
"schema",
"name",
"room",
"rules",
"api",
"catalog"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 7,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json; charset=utf-8
HTTP 200; Valid JSON; application/json; charset=utf-8
{
"byteCount": 4528,
"topLevelKeys": [
"$schema",
"id",
"url",
"channel",
"type",
"title",
"dek",
"body",
"timestamp",
"size",
"noun",
"readingTime",
"media",
"external",
"meta",
"author",
"source",
"mood"
],
"provenance": {
"types": [],
"dates": [
{
"field": "timestamp",
"value": "2026-08-04T05:55:00.000Z"
}
],
"dateCount": 1,
"sourceUrlCount": 0,
"authorSignals": 1
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 3483,
"topLevelKeys": [
"$schema",
"id",
"url",
"channel",
"type",
"title",
"dek",
"body",
"timestamp",
"size",
"noun",
"media",
"external",
"meta",
"author",
"source",
"mood",
"moodUrl"
],
"provenance": {
"types": [],
"dates": [
{
"field": "timestamp",
"value": "2026-10-02T06:00:00.000Z"
}
],
"dateCount": 1,
"sourceUrlCount": 0,
"authorSignals": 1
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 1797,
"topLevelKeys": [
"$schema",
"id",
"url",
"channel",
"type",
"title",
"dek",
"body",
"timestamp",
"size",
"media",
"external",
"author",
"source",
"mood",
"moodUrl",
"companions",
"clock"
],
"provenance": {
"types": [],
"dates": [
{
"field": "timestamp",
"value": "2026-10-02T21:00:00.000Z"
}
],
"dateCount": 1,
"sourceUrlCount": 0,
"authorSignals": 1
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 547412,
"topLevelKeys": [
"$schema",
"total",
"updatedAt",
"blocks"
],
"itemCount": 428,
"provenance": {
"types": [],
"dates": [
{
"field": "updatedAt",
"value": "2026-10-02T22:51:59.106Z"
},
{
"field": "timestamp",
"value": "2026-10-02T21:00:00.000Z"
},
{
"field": "timestamp",
"value": "2026-10-02T21:00:00.000Z"
},
{
"field": "timestamp",
"value": "2026-10-02T09:23:05.118Z"
},
{
"field": "timestamp",
"value": "2026-10-02T08:50:36.211Z"
},
{
"field": "timestamp",
"value": "2026-10-02T06:00:00.000Z"
},
{
"field": "timestamp",
"value": "2026-10-01T10:40:00.000Z"
},
{
"field": "timestamp",
"value": "2026-10-01T09:10:00.000Z"
},
{
"field": "timestamp",
"value": "2026-10-01T07:30:00.000Z"
},
{
"field": "timestamp",
"value": "2026-09-30T16:00:00.000Z"
},
{
"field": "timestamp",
"value": "2026-09-30T07:30:00.000Z"
},
{
"field": "timestamp",
"value": "2026-09-30T06:30:00.000Z"
}
],
"dateCount": 429,
"sourceUrlCount": 0,
"authorSignals": 428
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 15764,
"topLevelKeys": [
"$schema",
"name",
"description",
"generatedAt",
"canonical",
"agentKit",
"connectors"
],
"provenance": {
"types": [],
"dates": [
{
"field": "generatedAt",
"value": "2026-10-02T22:52:08.869Z"
}
],
"dateCount": 1,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 26262,
"topLevelKeys": [
"version",
"checkedDate",
"status",
"origin",
"radiusMiles",
"methodology",
"outsideWorkDefinition",
"verificationWarning",
"companies"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 38,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 462992,
"topLevelKeys": [
"name",
"status",
"url",
"license",
"stats",
"how",
"brands",
"paddles",
"changes",
"fieldReports"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 353,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 10474,
"topLevelKeys": [
"$schema",
"type",
"id",
"title",
"dek",
"edition",
"block",
"publishedDate",
"timezone",
"center",
"radius",
"bestBet",
"goOut",
"stayIn",
"stations",
"sources",
"methodology",
"human"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 7,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 3735,
"topLevelKeys": [
"$schema",
"name",
"version",
"description",
"canonical",
"grid",
"buildings",
"presenceSource",
"soundsSource",
"agentDoor",
"mcpEndpoint",
"note"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
HTTP 200; Valid JSON; application/json
{
"byteCount": 1029834,
"itemCount": 428
}HTTP 200
428 lines, 0 invalid
HTTP 200; 428 lines, 0 invalid
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
HTTP 200
{
"byteCount": 17248
}HTTP 200
GET discovery only; JSON-RPC catalog/session calls require POST and were not sent
HTTP 200; GET discovery only; JSON-RPC catalog/session calls require POST and were not sent
{
"byteCount": 17281
}HTTP 200
GET discovery only; JSON-RPC catalog/session calls require POST and were not sent
HTTP 200; GET discovery only; JSON-RPC catalog/session calls require POST and were not sent
{
"byteCount": 12623,
"topLevelKeys": [
"openapi",
"info",
"servers",
"paths",
"components"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
3.1.0; 3 paths
HTTP 200; Valid JSON; application/json; 3.1.0; 3 paths
{
"byteCount": 18044,
"topLevelKeys": [
"openapi",
"info",
"servers",
"x-pointcast-proposed-integrations",
"tags",
"paths",
"components"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
3.1.0; 2 paths
HTTP 200; Valid JSON; application/json; 3.1.0; 2 paths
{
"byteCount": 1043,
"topLevelKeys": [
"schema_version",
"name_for_model",
"name_for_human",
"description_for_human",
"description_for_model",
"auth",
"api",
"logo_url",
"contact_email",
"legal_info_url"
],
"provenance": {
"types": [],
"dates": [],
"dateCount": 0,
"sourceUrlCount": 0,
"authorSignals": 0
}
}HTTP 200
Valid JSON
application/json
https://pointcast.xyz/agents.json is a custom discovery manifest without openapi or paths
HTTP 200; Valid JSON; application/json
20 groups and 3 sitemap declarations
200; 20 user-agent groups
urlset: 1690 entries
HTTP 200; urlset; 1690 entries
urlset: 428 entries
HTTP 200; urlset; 428 entries
urlset: 1207 entries
HTTP 200; urlset; 1207 entries
index: 1 entries
HTTP 200; index; 1 entries
{
"byteCount": 7682,
"linkCount": 16
}HTTP 200
7627 characters
HTTP 200; 7627 characters
{
"byteCount": 180704,
"linkCount": 462
}HTTP 200
180002 characters
HTTP 200; 180002 characters
{
"byteCount": 36207,
"linkCount": 218
}HTTP 200
36057 characters
HTTP 200; 36057 characters
{
"byteCount": 226911,
"itemCount": 428
}HTTP 200
RSS/Atom root present; full XML schema validity not tested
HTTP 200; RSS/Atom root present; full XML schema validity not tested
{
"byteCount": 6844,
"itemCount": 9
}HTTP 200
RSS/Atom root present; full XML schema validity not tested
HTTP 200; RSS/Atom root present; full XML schema validity not tested
No sampled routes match these filters.
04 / The access layer
14 bot policy / probe records. A user-agent label in a test request is not proof of a verified crawler visit, indexing or edge treatment for the real bot.
| Crawler / purpose | Declared robots | HTTP / route | Observation |
|---|---|---|---|
GooglebotGooglebot/1.0Search index crawler | AllowedGroup: *Matched: allow: /All 14 group rules
| 200/Pass | Synthetic Googlebot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode (absent) Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
bingbotbingbot/1.0Search index crawler | AllowedGroup: *Matched: allow: /All 14 group rules
| 200/Pass | Synthetic bingbot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode (absent) Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
OAI-SearchBotOAI-SearchBot/1.0OpenAI search crawler | AllowedGroup: oai-searchbotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic OAI-SearchBot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode (absent) Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
GPTBotGPTBot/1.0OpenAI model-training crawler | AllowedGroup: gptbotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic GPTBot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode stripped · ai:openai Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
ChatGPT-UserChatGPT-User/1.0OpenAI user-triggered retrieval | AllowedGroup: chatgpt-userMatched: allow: /All 14 group rules
| 200/Pass | Synthetic ChatGPT-User/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode stripped · ai:openai Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
ClaudeBotClaudeBot/1.0Anthropic model-training crawler | AllowedGroup: claudebotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic ClaudeBot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode stripped · ai:anthropic Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
Claude-SearchBotClaude-SearchBot/1.0Anthropic search crawler | AllowedGroup: claude-searchbotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic Claude-SearchBot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode (absent) Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
Claude-UserClaude-User/1.0Anthropic user-triggered retrieval | AllowedGroup: claude-userMatched: allow: /All 14 group rules
| 200/Pass | Synthetic Claude-User/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode (absent) Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
PerplexityBotPerplexityBot/1.0Perplexity search crawler | AllowedGroup: perplexitybotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic PerplexityBot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode stripped · ai:perplexity Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
Perplexity-UserPerplexity-User/1.0Perplexity user-triggered retrieval | AllowedGroup: perplexity-userMatched: allow: /All 14 group rules
| 200/Pass | Synthetic Perplexity-User/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode stripped · ai:perplexity Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
Google-ExtendedRobots policy token; not a distinct HTTP User-Agent | AllowedGroup: google-extendedMatched: allow: /All 14 group rules
| Not sent/Pass | Root policy allows; HTTP probe not applicable to this policy token Policy token only. No distinct User-Agent request or real crawler verification. |
Applebot-ExtendedRobots policy token; not a distinct HTTP User-Agent | AllowedGroup: applebot-extendedMatched: allow: /All 14 group rules
| Not sent/Pass | Root policy allows; HTTP probe not applicable to this policy token Policy token only. No distinct User-Agent request or real crawler verification. |
CCBotCCBot/1.0Common Crawl crawler | AllowedGroup: ccbotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic CCBot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode stripped · ai:commoncrawl Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
AmazonbotAmazonbot/1.0Amazon crawler | AllowedGroup: amazonbotMatched: allow: /All 14 group rules
| 200/Pass | Synthetic Amazonbot/1.0 GET / returned 200; robots root allowed; 12063 server text words; X-Agent-Mode (absent) Synthetic User-Agent from the audit network. Does not prove verified crawler access, a crawler visit, indexing, ranking or citation. |
No bot policy / probe records match these filters.
05 / Show the working
The report keeps dates, evidence and coverage alongside each result. These are observed checks and recommendations, with no invented SEO score.
It records public responses, document signals and machine-readable discovery surfaces. Findings distinguish observed defects, review items, expected gates and unmeasured outcomes.
The age label changes in your browser. After seven days, this page recommends a recheck; the underlying observations stay frozen until a new report is published.
Take the evidence with you
Every saved finding, route record, bot policy / probe record, coverage denominator and reference in a portable JSON snapshot.
CSV export above follows your selected filters. JSON always contains the full saved report.
Audit interpretation: Label text availability, source clarity and discovery as readiness; keep Google index and AI citation outcomes unmeasured without provider evidence.
Audit interpretation: Separate public indexable pages from intentionally private or gated services when selecting the denominator.
Audit interpretation: Evaluate effective path permission per bot. Do not assume a named bot inherits wildcard restrictions.
Audit interpretation: Check response headers and initial/rendered HTML. Missing an explicit index tag is not a defect.
Audit interpretation: Count sitemap files and distinct listed URLs separately from fetched pages. Track advertised, reachable, valid and sampled URLs with their own denominators.
Audit interpretation: Treat conflicting or wrong canonicals as actionable signals. Classify an absent self-canonical as a consistency opportunity, not automatic deindexing.
Audit interpretation: Compare the initial response with browser-rendered text and links. A successful browser visit alone does not prove all crawlers see the same content.
Audit interpretation: JSON parsing and counting types only establishes syntax/presence; semantic suitability and provider validation remain separate checks.
Audit interpretation: Do not run a 'Google-Extended HTTP crawler' probe or score its permission as Google Search permission.
Audit interpretation: Verified server logs and provider tooling can establish actual crawler access; an audit request with a copied UA cannot.
Audit interpretation: Keep search, training and user-directed access distinct, and leave policy changes to the owner.
Audit interpretation: Do not infer search access from ClaudeBot permission alone, or apply Google's Crawl-delay behavior to Anthropic.
Audit interpretation: Label Bing UA-only requests as synthetic. Do not assert verified Bingbot access from them.
Audit interpretation: Provider analytics could support a later measured GEO view. Without authorized data, show citation performance as not measured.
Audit interpretation: Respect intentional premium-content preview restrictions; do not equate them with a site-wide outage.
Audit interpretation: Assess existing files for truth, freshness, resolvable links and consistency. Treat missing or stale files as agent-usability findings without invented GEO effects.
Audit interpretation: Validate the service's declared version, endpoints, methods, response contracts and authentication descriptions. An OpenAPI document is integration evidence, not proof of AI-search visibility.
Audit interpretation: Test advertised protocol functionality only within authorized read-only scope. A manifest or HTTP endpoint alone does not demonstrate a working MCP handshake or search discoverability.
Audit interpretation: Show search crawling and user-triggered retrieval as different roles. A copied User-Agent from this audit network does not verify a Perplexity source.
Audit interpretation: Assess Applebot-Extended as a robots data-use policy token, not a separate HTTP crawler probe.
Audit interpretation: Server-readable text matters to this crawler. A successful CCBot-labelled audit request does not establish a genuine Common Crawl visit or inclusion in its sampled dataset.
Audit interpretation: Describe Amazonbot as an Amazon crawler with its documented data-use scope, and keep search/user-fetch roles and verified source evidence separate.
Audit interpretation: A missing required property affects possible Product snippet eligibility, not ordinary page indexability. Check the applicable page type and truthful visible data before suggesting markup changes.
Audit interpretation: Apply the requirements for the intended feature and actual buying experience. Never convert an unknown or null price into a fictitious zero price, or invent ratings or stock availability.