squirrelscan
GitHub

Terms of service link: finding it in the page's links

Terms of service belong in the footer of every page. squirrel checks each page's links by both href and anchor text, in five languages.

What this rule looks for

Terms of service define what a visitor may do with a site or a service and what the operator owes them. They matter most where there is an account, a transaction or user-generated content, and they are optional on a site that publishes and sells nothing.

This rule checks per page rather than per site, because the convention is a footer link that every page carries. A terms page that exists but is linked from nowhere is not doing its job.

What squirrel checks

The rule runs on every crawled page over every a[href], testing both the href and the link text. It emits a single check named terms-of-service:

  • Pass when a link matches. Message: Terms of service link found, with the href as the value.
  • Info when none does. Message: No terms of service link found, with Consider adding terms of service for legal protection as the value.

The href is matched against nine patterns covering terms-of-service, terms-of-use, terms-and-conditions, tos, /terms, /legal/terms, and the German, French and Spanish equivalents nutzungsbedingungen, agb, conditions générales and condiciones. The text matches on terms of service, terms of use, terms and conditions, terms & conditions, or any text containing terms that is under 30 characters.

That last text rule is loose: a link labelled “Search terms” would satisfy it. Severity info, weight 3. The rule is skipped on soft 404 pages, which have no footer.

How to fix it

<a href="/terms">Terms of service</a>

Put the link in the footer component alongside the privacy policy. Label it plainly so both the href and the text are recognisable.

Cover what a user may and may not do, who owns what, what you disclaim and how disputes are resolved. Note the last revision date so a reader can tell whether they have seen this version.

Rule IDlegal/terms-of-service
CategoryLegal Compliance
ScopePer-page
Severityinfo
Weight3/10

Enable / disable

Disable this rule

[rules]
disable = ["legal/terms-of-service"]
[rules]
disable = ["legal/*"]

Enable only this rule

[rules]
enable = ["legal/terms-of-service"]

enable replaces the default ["*"], so this is the only rule selected. Leave disable out: a rule that matches any disable pattern is skipped even when enable names it. Only an enabled setting under a rule’s own [rule_options] table overrides both lists.

Legal Compliance findings ship in every audit next to the SEO, performance and agent experience rules. See Website security scan with AI for how an agent works through a report.

References

Check your site

Run squirrel audit https://example.com and open the Legal Compliance section of the report. Each page is reported with the terms link it carries, or that it carries none. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.

Type to search…

↑↓ navigate↵ openesc close