SEO & style

Rendered from playbook/docs/style-guide.md. Written for the writing agents; readers are welcome.

8020.in SEO & style conventions

This file owns four things: SEO on-page conventions, length vs evidence tier, uniqueness across the corpus, and credit label conventions. Everything else - the core promise, templates, research brief, evidence tiers, voice, typography, and the publish checklist - lives in writing-system.md and is not repeated here. The publish checklist is writing-system.md §12 and there is no second one.

1. Length & depth

Google does not use word count directly. Use length as a depth floor, not a padding target.

Topic typeTarget lengthDepth must include
Competitive (investing, time management, broad life, major finance)~1,800-3,000+ wordsOnly-on-8020 case or citation synthesis block - not tip stacks
Niche skill / narrow mechanism (e.g. Fortnite rotations)~1,400-2,000 wordsUnique drills/mechanisms; optional mini-data
Narrow niche with full intent met~1,200-2,000 wordsConcentration claim fully shown

Evidence tier vs length (tiers defined in writing-system.md §7):

  • Tier 1 (B, many C): hit competitive length and >=2 outbound primary citations. Do not invent sources to fill space.
  • Tier 2 (A, some C): prefer a runnable measurement protocol over extra generic sections.
  • Tier 3 (D, E): do not pad toward 3,000 with unsourced "researchers say." Add mini-data or cut.

2. Uniqueness & duplicate content

Goal: every article is clearly unique to both users and search engines.

Internal duplication

  • Do not recycle paragraphs verbatim between articles.
  • Restating the 80/20 rule is fine, but vary the wording and anchor it in the topic.
  • If two articles feel very similar: merge, or give them clearly different intents.

Topic separation

  • Each slug has a single primary intent (seo_intent).
  • When two slugs overlap strongly, choose one pillar and reframe or redirect the other.
  • Near-neighbour slugs (meditation / relaxation / breathing) must not share an intent line.

Global 80/20 explanation

  • Keep detailed theory on a cornerstone explainer page.
  • In regular articles: 2-4 fresh domain sentences + internal link. Never re-paste long generic text.

Only-on-8020

  • Every article needs at least one block derived from the brief's original observation (audit, ranked list, implications table, tracked sample, interview note). This is what a SERP clone cannot copy.

3. SEO on-page conventions

Headings

  • One <h1> per page (the title, rendered by the site template, not inside article JSON).
  • Article content starts with body paragraphs, then <h2> / <h3>.
  • Primary and secondary keywords appear naturally in some headings.

Meta (handled by the site template from JSON fields)

  • Browser title: 80/20 in {Title} - {seo_intent} (~50-60 characters total when possible).
  • Meta description built from seo_intent (~120-155 characters). Make seo_intent read like a search answer, not a slogan.

Internal links

  • 3-7 contextual internal links per article.
  • 1-3 links from relevant pillar pages pointing back.

Outbound links

  • Required for Tier-1 claims (studies, papers, official standards docs).
  • Prefer primary sources over secondary blogs.

Images

  • Descriptive alt text; topic keywords only when natural.

Visualizations

  • Default: none. Viz articles (~20% of the corpus max) ship ~4-5 custom encodings, never a single default pareto bar. Rules in writing-system.md §10.

4. Credit label conventions

Public names come from playbook/data/authors.json. Use them exactly. The authors and models_used arrays are identical.

Legacy passes with no logged model are credited by the period the article was created in, because that is what the site used at the time:

Article createdCredit
2022-2023ChatGPT-3.5
2024ChatGPT-4o
2025-01 to 2025-10ChatGPT-5
2025-11 to 2026-06ChatGPT-5.1
2026-07 onwardNo default. The pass log must name the model.

Every credit is a name from authors.json. There is no placeholder author. If the human did not name the model for a pass, ask before writing the entry.

Forbidden in any credit field: Cursor Agent, 8020.in Editorial, Writer tool, or any name not in authors.json.

Aliases: GPT-5.5 -> ChatGPT-5.5, GPT-4o -> ChatGPT-4o, etc. Write the ChatGPT- form.

When an article is substantially updated by a newer model, the new model is appended to authors/models_used and a pass-log entry is written. The original credit stays.