Catalog / gymaquatiqueparis.fr
65

SEO audit for gymaquatiqueparis.fr

CGAN – Club de Gymnastique Aquatique et de Natation | Aquagym, natation, lutte contre l’aquaphobie

other

Health 65/100 (fair) · 16 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)

Gymnastique Aquatique et Natation Aquaphobie

Screenshot of gymaquatiqueparis.fr
16
pages crawled
11
indexable pages
2
errors
48
warnings
108
notices
3
orphan pages
1
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 66 1 15 0
Crawlability 94 1 0 1
Agent Readiness 79 0 11 15
Performance 79 0 11 32
Duplicate 93 0 4 2
Titles 94 0 3 0
Content 96 0 2 5
Indexability 98 0 1 0
Meta Description 98 0 1 1
Images 100 0 0 4
Security 100 0 0 23
Social 100 0 0 9
Structured Data 100 0 0 12
URL 100 0 0 4
Findings

Errors (2 rules)

error Broken internal link (target 4xx/5xx)

Rule links.broken_internal · Links · 1 occurrence(s)

error Client error (4xx) response

Rule status.4xx · Crawlability · 1 occurrence(s)

Warnings (10 rules)

warning Control has no accessible name

Rule agent.control_no_name · Agent Readiness · 11 occurrence(s)

warning Thin content (low word count)

Rule content.thin · Content · 2 occurrence(s)

warning Duplicate page content

Rule duplicate.content · Duplicate · 2 occurrence(s)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 2 occurrence(s)

warning Page is noindex

Rule index.noindex · Indexability · 1 occurrence(s)

warning Orphan page (no internal inlinks)

Rule links.orphan · Links · 3 occurrence(s)

warning Internal link points to a redirect

Rule links.redirect_target · Links · 12 occurrence(s)

warning Missing meta description

Rule meta_desc.missing · Meta Description · 1 occurrence(s)

warning Render-blocking script in <head> (no defer/async)

Rule perf.render_blocking · Performance · 11 occurrence(s)

warning Title likely truncated in SERP (too wide)

Rule title.too_long · Titles · 3 occurrence(s)

Notices (19 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 3 occurrence(s)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

notice No main landmark for AI agents

Rule agent.no_main_landmark · Agent Readiness · 11 occurrence(s)

notice Duplicate meta description across pages

Rule duplicate.meta_desc · Duplicate · 2 occurrence(s)

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 4 occurrence(s)

  • https://gymaquatiqueparis.fr/ — the likely hero/LCP image (biancotto-2-ok.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://gymaquatiqueparis.fr/bassin-ecole-atlas/ — the likely hero/LCP image (logo-ok.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://gymaquatiqueparis.fr/bassin-ecole-biancotto/ — the likely hero/LCP image (logo-ok.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://gymaquatiqueparis.fr/piscine-auriol/ — the likely hero/LCP image (logo-ok.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Images without width/height (layout shift / CLS)

Rule images.missing_dimensions · Images · 4 occurrence(s)

notice Meta description too short

Rule meta_desc.too_short · Meta Description · 1 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 6 occurrence(s)

  • https://gymaquatiqueparis.fr/ — 3 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gymaquatiqueparis.fr/bassin-ecole-atlas/ — 3 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gymaquatiqueparis.fr/bassin-ecole-biancotto/ — 3 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gymaquatiqueparis.fr/piscine-auriol/ — 3 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gymaquatiqueparis.fr/piscine-dauvin/ — 1 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://gymaquatiqueparis.fr/piscine-solita-salgado/ — 2 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 11 occurrence(s)

  • https://gymaquatiqueparis.fr/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/__trashed/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/adhesion — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/adhesion/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/bassin-ecole-atlas/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/bassin-ecole-biancotto/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/calendrier-2019-2020/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/contact/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/piscine-auriol/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/piscine-dauvin/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
  • https://gymaquatiqueparis.fr/piscine-solita-salgado/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.

notice No Last-Modified header (no conditional GET for unchanged pages)

Rule perf.no_last_modified · Performance · 11 occurrence(s)

  • https://gymaquatiqueparis.fr/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/__trashed/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/adhesion — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/adhesion/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/bassin-ecole-atlas/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/bassin-ecole-biancotto/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/calendrier-2019-2020/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/contact/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/piscine-auriol/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/piscine-dauvin/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
  • https://gymaquatiqueparis.fr/piscine-solita-salgado/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.

notice URL redirects to another URL

Rule redirect.single · Crawlability · 1 occurrence(s)

notice Deep page has no BreadcrumbList structured data

Rule schema.breadcrumb_missing · Structured Data · 1 occurrence(s)

notice Deprecated schema type with no Google rich result

Rule schema.deprecated_type · Structured Data · 11 occurrence(s)

  • https://gymaquatiqueparis.fr/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/__trashed/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/adhesion — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/adhesion/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/bassin-ecole-atlas/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/bassin-ecole-biancotto/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/calendrier-2019-2020/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/contact/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/piscine-auriol/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/piscine-dauvin/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
  • https://gymaquatiqueparis.fr/piscine-solita-salgado/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.

notice Missing recommended security headers

Rule security.missing_headers · Security · 12 occurrence(s)

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 11 occurrence(s)

notice Uppercase letters in URL path

Rule url.uppercase · URL · 1 occurrence(s)

Pages (showing 16 of 16)
URLStatusIndexableWordsIn-links
https://gymaquatiqueparis.fr/
CGAN – Club de Gymnastique Aquatique et de Natation | Aquagym, natation, lutte contre l’aquaphobie
200 yes 392 12
https://gymaquatiqueparis.fr/adhesion
Adhésion | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 215 12
https://gymaquatiqueparis.fr/bassin-ecole-atlas/
Bassin-Ecole Atlas | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 212 12
https://gymaquatiqueparis.fr/bassin-ecole-biancotto/
Bassin-Ecole Biancotto | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 191 12
https://gymaquatiqueparis.fr/contact/
Contact | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 103 12
https://gymaquatiqueparis.fr/piscine-auriol/
Piscine Auriol | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 206 12
https://gymaquatiqueparis.fr/piscine-dauvin/
Piscine Dauvin | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 305 12
https://gymaquatiqueparis.fr/piscine-solita-salgado/
Piscine Solita Salgado | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 350 12
https://gymaquatiqueparis.fr/__trashed/
2018-2019 | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 201 0
https://gymaquatiqueparis.fr/adhesion/
Adhésion | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 215 0
https://gymaquatiqueparis.fr/calendrier-2019-2020/
2019-2020 | CGAN – Club de Gymnastique Aquatique et de Natation
200 yes 292 0
https://gymaquatiqueparis.fr/documents/2018_2019_calendrier.xls
Page non trouvée | CGAN – Club de Gymnastique Aquatique et de Natation
404 no 99 1
https://gymaquatiqueparis.fr/documents/2019_2020_calendrier.pdf 200 no 0 1
https://gymaquatiqueparis.fr/documents/2025-2026/CGAN-CGI.pdf 200 no 0 2
https://gymaquatiqueparis.fr/documents/2026-2027/bulletin-adhesion.pdf 200 no 0 2
https://gymaquatiqueparis.fr/documents/2026-2027/calendrier.pdf 200 no 0 12

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →