Footer copyright year behind the current year
An old year in the footer is the cheapest signal that a site is abandoned. squirrel reads the footer only, so dated body copy is left alone.
What a stale copyright year is
The copyright line in a site footer is one of the few dates every visitor sees on every page. When it is a year or two behind, it reads as nobody has touched this site since then, whatever the content says.
It is read as a maintenance signal, which is not what a copyright notice formally is: the conventional US notice carries the year of first publication, not the year the site was last touched. That is why the rule warns rather than fails, and why its weight is low.
What squirrel checks
The rule runs on every crawled page over site-chrome regions only: footer, [role=contentinfo], .footer, #footer, .site-footer, .page-footer and #colophon. Body copy is not read, so an archived post quoting an old copyright notice is not reported. It emits a single check named footer-copyright-year:
- Skipped when no footer region was found. Message:
No footer or site-chrome region found on this page. - Skipped when the footer has no copyright year. Message:
No copyright year in the footer. - Warn when the year is behind the current one. Message:
Footer copyright year is 2024, behind the current year 2026, with both as the value and expected value. Severity warning, weight 2. - Pass otherwise. Message:
Footer copyright year is 2026.
The warning carries details.region set to footer, so when the same stale year is on most pages that have a site footer the report says In the site footer, on 148 of 150 pages once instead of listing every page. See findings in a shared page region.
A notice is recognised from ©, (c), the © entity or the word copyright, followed within thirty non-digit characters by a year, optionally a range. A range is judged on its end year, so 2019-2026 is current in 2026. A footer with several notices is judged on the newest. Years outside 1990 to 2999 are ignored as version numbers or identifiers. A year ahead of the current one passes, since sites legitimately roll over early.
How to fix it
<p>© 2019–{new Date().getFullYear()} Acme</p>Render the year from the server or the build step rather than hardcoding it, or use a range whose end year updates.
If the year is an accurate publication date rather than a maintenance signal, leave it as it is. Moving it out of the site chrome and into the page body makes it read as a statement about that content rather than about the site, which is what it is.
| Rule ID | content/stale-copyright |
| Category | Content |
| Scope | Per-page |
| Severity | warning |
| Weight | 2/10 |
Options
| Option | Type | Default | Description |
|---|---|---|---|
current_year | integer, 1970 to 9999 | the current UTC year | Year to compare the footer against |
Configuration example
[rule_options."content/stale-copyright"]
current_year = 2026Enable / disable
Disable this rule
[rules]
disable = ["content/stale-copyright"]Disable all Content rules
[rules]
disable = ["content/*"]Enable only this rule
[rules]
enable = ["content/stale-copyright"]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.
Related rules
- content/freshness: which date signals the page publishes about itself.
- content/date-agreement: dates on the page that disagree with each other.
- eeat/trust-signals: the other footer signals a reader checks.
- legal/privacy-policy: the other thing that lives in the footer.
Content findings ship in every audit next to the SEO, performance and agent experience rules. See Fix SEO issues with AI for how an agent works through a report.
Glossary: Content freshness.
References
Check your site
Run squirrel audit https://example.com and open the Content section of the report. Each page is reported with the footer year it carries. Signed-out local audits need no account and cost nothing. Signed-in audits spend credits.