squirrelscan
GitHub

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 message Site profile resolution skipped when the service was not available for the audit, with the skip reason naming why.
  • site-metadata, at info status with the message Site 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 IDai/site-metadata
CategoryAgent Experience
ScopeSite-wide
Severityinfo
Weight0/10 (report-only, non-scoring)
DefaultEnabled

Enable / disable

Disable this rule

[rules]
disable = ["ai/site-metadata"]

Disable all AI rules

[rules]
disable = ["ai/*"]

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.

Type to search…

↑↓ navigate↵ openesc close