Skip to content

Commit af867cf

Browse files
Improve synonym coverage
Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent 8457029 commit af867cf

17 files changed

Lines changed: 1381 additions & 14 deletions
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import { CATEGORY_SYNONYM_NOTE } from "@/lib/content/synonym-phrases"
2+
3+
export function CategorySynonymNote() {
4+
return (
5+
<p className="mt-4 text-sm leading-relaxed text-muted-foreground">{CATEGORY_SYNONYM_NOTE}</p>
6+
)
7+
}

components/templates/category/category-template.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { SchemaJsonLd } from "@/components/seo"
44
import { buildCategoryPageSchemaGraph } from "@/lib/seo/schema"
55
import { shouldShowComboParentLinks } from "@/lib/seo/linking"
66
import { CategoryIntro } from "./category-intro"
7+
import { CategorySynonymNote } from "@/components/seo/category-synonym-note"
78
import { CategoryPhase1Sections } from "./category-phase1-sections"
89
import { CategoryPhase2Sections } from "./category-phase2-sections"
910
import { CategoryThemeSections } from "./category-theme-sections"
@@ -38,6 +39,7 @@ export function CategoryTemplate({ category }: CategoryTemplateProps) {
3839

3940
<div className="flex flex-col gap-10 lg:gap-14">
4041
<CategoryIntro category={category} />
42+
<CategorySynonymNote />
4143

4244
<CategoryThemeSections slug={category.slug} />
4345

components/templates/home/home-seo-content.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import Link from "next/link"
2-
import { ROUTES } from "@/lib/seo/routes"
2+
import { HOME_SYNONYM_PHRASE } from "@/lib/content/synonym-phrases"
33
import { SectionHeading } from "@/components/layout/section-heading"
44

55
export function HomeSeoIntro() {
@@ -8,7 +8,7 @@ export function HomeSeoIntro() {
88
<SectionHeading
99
eyebrow="Découvrir"
1010
title="Des mots mêlés gratuits pour toute la famille"
11-
description="Hibou&Mots réunit des grilles en français pour l'école, les thèmes du quotidien et les fêtes de l'année du CP à la 6e, et aussi pour les adultes et les seniors."
11+
description={`Hibou&Mots réunit des grilles en français pour l'école, les thèmes du quotidien et les fêtes de l'année — du CP à la 6e, et aussi pour les adultes et les seniors. ${HOME_SYNONYM_PHRASE}`}
1212
/>
1313
<div className="mt-8 flex flex-col gap-4 text-base leading-relaxed text-muted-foreground sm:text-lg">
1414
<p>

components/templates/shared/how-to-play-block.tsx

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { MousePointerClick, Printer, Search } from "lucide-react"
2-
import { SectionHeading } from "@/components/layout/section-heading"
2+
import { HOW_TO_PLAY_SYNONYM_DESCRIPTION } from "@/lib/content/synonym-phrases"
33

44
export function HowToPlayBlock() {
55
const steps = [
@@ -11,7 +11,7 @@ export function HowToPlayBlock() {
1111
{
1212
icon: MousePointerClick,
1313
title: "Sélectionne les lettres",
14-
text: "Les mots peuvent être horizontaux, verticaux ou diagonaux, dans les deux sens.",
14+
text: "Chaque mot caché peut être horizontal, vertical ou diagonal — une grille de lettres classique.",
1515
},
1616
{
1717
icon: Printer,
@@ -26,7 +26,7 @@ export function HowToPlayBlock() {
2626
align="left"
2727
eyebrow="Comment jouer"
2828
title="3 étapes pour réussir"
29-
description="Une méthode simple pour les enfants, les enseignants et toute la famille."
29+
description={HOW_TO_PLAY_SYNONYM_DESCRIPTION}
3030
/>
3131
<ol className="mt-8 grid gap-4 sm:grid-cols-3">
3232
{steps.map((step, index) => {

docs/synonym-coverage-report.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Synonym Coverage Report — Hibou&Mots
2+
3+
Generated: 2026-06-23T19:26:23.955Z
4+
Audited pages: 50
5+
6+
## Synonym totals (pages containing term)
7+
8+
- mots mêlés: 50/50
9+
- mots cachés: 50/50
10+
- grille de lettres: 50/50
11+
- jeu de lettres: 50/50
12+
- puzzle de mots: 50/50
13+
- word search: 50/50
14+
15+
## Pages missing synonyms
16+
17+
_None — all audited pages include the primary term and at least one secondary synonym._
18+
19+
## Pages with weak coverage
20+
21+
_None — all pages meet secondary synonym thresholds._
22+
23+
## Thresholds
24+
25+
- Important pages: primary + ≥4 secondary synonyms (mots cachés, grille de lettres, jeu de lettres, puzzle de mots, word search)
26+
- Other category pages: primary + ≥3 secondary synonyms

0 commit comments

Comments
 (0)