Site profile: the per-domain classification rules read
The resolved site type, business category, country and audience for a domain. squirrel reports it, and other rules use it to decide what applies.
What the site profile is
The site profile is a per-domain classification resolved once and reused: what kind of site this is, its business category, its primary country, who it is for, the entity behind it, its contacts and social accounts, and how old the domain is. It is resolved before the rules run and cached for about thirty days.
Other rules read it to decide whether they apply. local/nap-consistency, local/geo-meta, local/service-area and schema/local-business are all skipped, with a visible reason, when the profile says the site is not a local business. That is why a global product site is never marked down for having no opening hours.
What squirrel checks
The rule runs once per crawl. Profile resolution is a cloud service, so the check needs a logged-in audit. It emits one check:
site-metadata, skipped with the messageSite profile resolution skippedwhen the service was not available for the audit, with the skip reason naming why.site-metadata, at info status with the messageSite profile: type "ecommerce", category "coffee equipment", country US, audience national, domain ~7y old (high confidence).
The summary always opens with the site type. Business category, primary country and audience scope are appended only when the service resolved them. Domain age is rendered in whole years once it passes one year and in days below that. The confidence value closes the message in parentheses.
The check carries more in its details than it prints: the entity name and type, whether the site is YMYL, whether it is a local business, the registrar, and the counts of contacts and social accounts found. Weight is 0, so this rule is report-only and cannot move the score in either direction.
How to fix it
There is nothing to fix unless the classification is wrong. When it is, the signals it reads from are the ones to sharpen:
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "Organization",
"name": "Acme Coffee",
"url": "https://example.com/",
"sameAs": ["https://www.linkedin.com/company/acme-coffee"]
}
</script>A homepage that states plainly what the site sells and to whom, Organization or LocalBusiness JSON-LD, Open Graph and Twitter meta tags, and visible contact details are what the profile is resolved from. A wrong classification usually means one of those is missing rather than that the classifier is broken.
The common false positive is a holding page or a site mid-redesign, where the homepage carries little content. The profile follows what is on the page.
| Rule ID | ai/site-metadata |
| Category | Agent Experience |
| Scope | Site-wide |
| Severity | info |
| Weight | 0/10 (report-only, non-scoring) |
| Default | Enabled |
Enable / disable
Disable this rule
[rules]
disable = ["ai/site-metadata"]Disable all AI rules
[rules]
disable = ["ai/*"]Related rules
- schema/organization: the identity markup the profile reads, and which reads the profile back for its
sameAscross-check. - schema/local-business: one of the rules gated on the local-business flag in this profile.
- social/social-profiles: the accounts the profile collects.
- eeat/ymyl-detection: the other classification that changes which rules apply.
Agent experience findings ship in every audit next to the SEO, performance and security rules. See Generative engine optimization for how an agent works through a report.
References
Check your site
Run squirrel audit https://example.com and open the Agent Experience section of the report. The resolved profile is printed with its confidence. Cloud audits resolve it.