---
title: "Site-level slop"
slug: "site-level-slop"
category: "writing"
tags: ["writing", "anti-slop", "scaled-content", "editorial", "quality"]
status: "stable"
last_updated: 2026-09-27
summary: "Patterns that make a site read as generated only when you look across pages (templated openers, near-duplicates, uniform section cadence, date sweeps) and how to catch each one."
related: ["[[writing/anti-slop]]", "[[writing/editorial-style]]", "[[seo/ai-content-policies]]", "[[seo/cannibalization]]", "[[seo/content-refresh]]", "[[seo/helpful-content-update]]"]
---

## Overview

A single page can pass every sentence-level rule in [[writing/anti-slop|the anti-slop rules]] while the site as a whole reads as generated. Search engines judge at this level too: Google's scaled content abuse policy targets many pages that add little value, however they were made, and Bing's Webmaster Guidelines name scraped or lightly rewritten content without new insight. Check the corpus, not only the page.

The patterns below are invisible in a single-page review. Each one needs a cross-page check, and most can be scripted.

## Write a page-specific opener for every page

The same first sentence on dozens of pages ("This page is the atomic definition") is boilerplate the reader skips. On this site, `scripts/lint-content.mjs` fails the build when more than three pages share an `## Overview` opening sentence. Open with the fact or rule that only this page can state.

## Merge near-duplicate pages instead of keeping both

Two pages with the same outline in different words split signals and invite an engine to pick the wrong one. Bing has noted that LLM-based answers cluster near-duplicates and pick one representative, so the second page earns nothing. Merge them and redirect; see [[seo/cannibalization]].

Before creating a page, search existing titles for the same intent:

```bash
grep -rhi "^title:" content | grep -i "<topic>"
```

## Keep one related list per page

A "Related concepts" list followed by a "Related" list with the same links doubles the length and adds nothing. Fold inline links into the prose and keep a single `## Related` list at the end.

## Let section headings follow the content

Every page with identical H2 names in identical order, regardless of topic, reads as a fill-in form. Keep the sections the schema requires (on this site, `## Overview` and `## Related`); let the rest follow the content, and open each H2 with the rule it covers.

## Bump dates only with substantive edits

Bumping `last_updated` across hundreds of pages in one commit without body changes is a date sweep. Google's helpful content guidance names changing dates to seem fresh, without substantially changing the content, as a warning sign. Update the date when the body meaningfully changed; see [[seo/content-refresh]].

A quick check for a sweep in the history:

```bash
git log --shortstat --format='%h %ad %s' --date=short | grep -B2 -E "[0-9]{3,} files changed"
```

Any commit touching hundreds of files where the insertions roughly equal the file count (one changed line per page) deserves a second look.

## Related

- [[writing/anti-slop]]; the sentence- and paragraph-level rules this page extends to the corpus
- [[writing/editorial-style]]; house style that keeps pages consistent without templating them
- [[seo/ai-content-policies]]; the Google and Bing policies these patterns trip
- [[seo/cannibalization]]; merging and redirecting near-duplicate pages
- [[seo/content-refresh]]; when a date change is legitimate
- [[seo/helpful-content-update]]; the site-wide helpfulness signal
