SEO audit for horsies.com
L'app équitation n°1 pour cavaliers | Horsies
Health 65/100 (fair) · 27 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)Horsies, l'app équitation qui t'aide à progresser : 200+ séances guidées par des coachs d'élite, tracking GPS, carnet de santé et communauté. Gratuit.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Security | 70 | 0 | 27 | 27 |
| Agent Readiness | 74 | 0 | 23 | 33 |
| Canonical | 83 | 0 | 15 | 19 |
| Content | 98 | 0 | 2 | 45 |
| Links | 98 | 0 | 2 | 8 |
| Duplicate | 99 | 0 | 1 | 0 |
| Cache | 100 | 0 | 0 | 27 |
| Images | 100 | 0 | 0 | 23 |
| Meta Description | 100 | 0 | 0 | 1 |
| Performance | 100 | 0 | 0 | 47 |
| Structured Data | 100 | 0 | 0 | 1 |
Warnings (6 rules)
warning Control has no accessible name
Rule agent.control_no_name · Agent Readiness · 23 occurrence(s)
- https://horsies.com/ — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/blog — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/cgv — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/cedric-lyard — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/france-paul — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/gaelle-olivier-jacob — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/jonathan-mathe — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/julien-vincent — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/mathilde-trinchero — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/solenn-habre — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/steacy-remaud — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/stephane-landois — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coach/yoan-judic — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/coaches — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/contact — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/delete-account — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/features — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/gift — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/pricing — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/privacy — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/shop — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/team — 1 button/link(s) with no text or aria-label — an agent can't target them
- https://horsies.com/terms — 1 button/link(s) with no text or aria-label — an agent can't target them
warning Interior page canonicalizes to the homepage
Rule canonical.points_to_homepage · Canonical · 15 occurrence(s)
- https://horsies.com/blog — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/cedric-lyard — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/france-paul — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/gaelle-olivier-jacob — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/jonathan-mathe — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/julien-vincent — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/mathilde-trinchero — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/solenn-habre — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/steacy-remaud — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/stephane-landois — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/coach/yoan-judic — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/delete-account — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/gift — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/pricing — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
- https://horsies.com/shop — this interior page canonicalizes to the homepage (https://horsies.com/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.
warning Thin content (low word count)
Rule content.thin · Content · 2 occurrence(s)
- https://horsies.com/contact — 82 words
- https://horsies.com/galopin/contact — 34 words
warning Homepage duplicated across protocol/host variants (no redirect)
Rule duplicate.protocol_host · Duplicate · 1 occurrence(s)
- https://horsies.com/ — https://www.horsies.com/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.
warning Content-Type header doesn't match the actual content
Rule headers.content_type_mismatch · Security · 27 occurrence(s)
- https://horsies.com/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/blog — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/cgv — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/cedric-lyard — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/france-paul — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/gaelle-olivier-jacob — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/jonathan-mathe — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/julien-vincent — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/mathilde-trinchero — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/solenn-habre — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/steacy-remaud — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/stephane-landois — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coach/yoan-judic — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/coaches — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/contact — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/delete-account — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/features — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/galopin — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/galopin/privacy — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/gift — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/pricing — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/privacy — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/shop — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/team — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://horsies.com/terms — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
warning Orphan page (no internal inlinks)
Rule links.orphan · Links · 2 occurrence(s)
- https://horsies.com/delete-account — no internal links point here
- https://horsies.com/gift — no internal links point here
Notices (14 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 23 occurrence(s)
- https://horsies.com/ — h3 follows h1 — skips h2
- https://horsies.com/blog — h3 follows h1 — skips h2
- https://horsies.com/cgv — h4 follows h2 — skips h3
- https://horsies.com/coach/cedric-lyard — h3 follows h1 — skips h2
- https://horsies.com/coach/france-paul — h3 follows h1 — skips h2
- https://horsies.com/coach/gaelle-olivier-jacob — h3 follows h1 — skips h2
- https://horsies.com/coach/jonathan-mathe — h3 follows h1 — skips h2
- https://horsies.com/coach/julien-vincent — h3 follows h1 — skips h2
- https://horsies.com/coach/mathilde-trinchero — h3 follows h1 — skips h2
- https://horsies.com/coach/solenn-habre — h3 follows h1 — skips h2
- https://horsies.com/coach/steacy-remaud — h3 follows h1 — skips h2
- https://horsies.com/coach/stephane-landois — h3 follows h1 — skips h2
- https://horsies.com/coach/yoan-judic — h3 follows h1 — skips h2
- https://horsies.com/coaches — h3 follows h1 — skips h2
- https://horsies.com/contact — h4 follows h2 — skips h3
- https://horsies.com/delete-account — h3 follows h1 — skips h2
- https://horsies.com/features — h3 follows h1 — skips h2
- https://horsies.com/gift — h3 follows h1 — skips h2
- https://horsies.com/pricing — h3 follows h1 — skips h2
- https://horsies.com/privacy — h4 follows h2 — skips h3
- https://horsies.com/shop — h3 follows h1 — skips h2
- https://horsies.com/team — h3 follows h1 — skips h2
- https://horsies.com/terms — h4 follows h2 — skips h3
notice No main landmark for AI agents
Rule agent.no_main_landmark · Agent Readiness · 10 occurrence(s)
- https://horsies.com/cgv — add a <main> element (or role=main) around the primary content
- https://horsies.com/coaches — add a <main> element (or role=main) around the primary content
- https://horsies.com/contact — add a <main> element (or role=main) around the primary content
- https://horsies.com/features — add a <main> element (or role=main) around the primary content
- https://horsies.com/galopin — add a <main> element (or role=main) around the primary content
- https://horsies.com/galopin/privacy — add a <main> element (or role=main) around the primary content
- https://horsies.com/galopin/terms — add a <main> element (or role=main) around the primary content
- https://horsies.com/privacy — add a <main> element (or role=main) around the primary content
- https://horsies.com/team — add a <main> element (or role=main) around the primary content
- https://horsies.com/terms — add a <main> element (or role=main) around the primary content
notice Page served uncached (no-store/private or CDN bypass)
Rule cache.not_cacheable · Cache · 27 occurrence(s)
- https://horsies.com/ — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/blog — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/cgv — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/cedric-lyard — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/france-paul — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/gaelle-olivier-jacob — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/jonathan-mathe — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/julien-vincent — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/mathilde-trinchero — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/solenn-habre — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/steacy-remaud — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/stephane-landois — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coach/yoan-judic — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/coaches — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/contact — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/delete-account — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/features — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/galopin — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/galopin/privacy — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/gift — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/pricing — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/privacy — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/shop — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/team — Cache-Control: (none) · cloudflare: DYNAMIC
- https://horsies.com/terms — Cache-Control: (none) · cloudflare: DYNAMIC
notice Canonical points to a different URL
Rule canonical.non_self · Canonical · 19 occurrence(s)
- https://horsies.com/blog — canonical=https://horsies.com/
- https://horsies.com/coach/cedric-lyard — canonical=https://horsies.com/
- https://horsies.com/coach/france-paul — canonical=https://horsies.com/
- https://horsies.com/coach/gaelle-olivier-jacob — canonical=https://horsies.com/
- https://horsies.com/coach/jonathan-mathe — canonical=https://horsies.com/
- https://horsies.com/coach/julien-vincent — canonical=https://horsies.com/
- https://horsies.com/coach/mathilde-trinchero — canonical=https://horsies.com/
- https://horsies.com/coach/solenn-habre — canonical=https://horsies.com/
- https://horsies.com/coach/steacy-remaud — canonical=https://horsies.com/
- https://horsies.com/coach/stephane-landois — canonical=https://horsies.com/
- https://horsies.com/coach/yoan-judic — canonical=https://horsies.com/
- https://horsies.com/delete-account — canonical=https://horsies.com/
- https://horsies.com/galopin — canonical=https://galopin.horsies.com/
- https://horsies.com/galopin/contact — canonical=https://galopin.horsies.com/contact
- https://horsies.com/galopin/privacy — canonical=https://galopin.horsies.com/privacy
- https://horsies.com/galopin/terms — canonical=https://galopin.horsies.com/terms
- https://horsies.com/gift — canonical=https://horsies.com/
- https://horsies.com/pricing — canonical=https://horsies.com/
- https://horsies.com/shop — canonical=https://horsies.com/
notice Low text-to-HTML ratio
Rule content.low_ratio · Content · 18 occurrence(s)
- https://horsies.com/ — 4.9%
- https://horsies.com/blog — 4.9%
- https://horsies.com/coach/cedric-lyard — 4.9%
- https://horsies.com/coach/france-paul — 4.9%
- https://horsies.com/coach/gaelle-olivier-jacob — 4.9%
- https://horsies.com/coach/jonathan-mathe — 4.9%
- https://horsies.com/coach/julien-vincent — 4.9%
- https://horsies.com/coach/mathilde-trinchero — 4.9%
- https://horsies.com/coach/solenn-habre — 4.9%
- https://horsies.com/coach/steacy-remaud — 4.9%
- https://horsies.com/coach/stephane-landois — 4.9%
- https://horsies.com/coach/yoan-judic — 4.9%
- https://horsies.com/contact — 4.0%
- https://horsies.com/delete-account — 4.9%
- https://horsies.com/galopin/contact — 2.5%
- https://horsies.com/gift — 4.9%
- https://horsies.com/pricing — 4.9%
- https://horsies.com/shop — 4.9%
notice Likely hero image lacks fetchpriority=high
Rule images.hero_no_fetchpriority · Performance · 19 occurrence(s)
- https://horsies.com/ — the likely hero/LCP image (detail.webp) 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://horsies.com/blog — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/cedric-lyard — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/france-paul — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/gaelle-olivier-jacob — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/jonathan-mathe — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/julien-vincent — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/mathilde-trinchero — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/solenn-habre — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/steacy-remaud — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/stephane-landois — the likely hero/LCP image (detail.webp) 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://horsies.com/coach/yoan-judic — the likely hero/LCP image (detail.webp) 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://horsies.com/delete-account — the likely hero/LCP image (detail.webp) 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://horsies.com/features — the likely hero/LCP image (detail.webp) 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://horsies.com/galopin — the likely hero/LCP image (galopin.svg) 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://horsies.com/gift — the likely hero/LCP image (detail.webp) 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://horsies.com/pricing — the likely hero/LCP image (detail.webp) 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://horsies.com/shop — the likely hero/LCP image (detail.webp) 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://horsies.com/team — the likely hero/LCP image (marie.webp) 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 · 23 occurrence(s)
- https://horsies.com/ — 11 of 11 images without width/height
- https://horsies.com/blog — 11 of 11 images without width/height
- https://horsies.com/cgv — 2 of 2 images without width/height
- https://horsies.com/coach/cedric-lyard — 11 of 11 images without width/height
- https://horsies.com/coach/france-paul — 11 of 11 images without width/height
- https://horsies.com/coach/gaelle-olivier-jacob — 11 of 11 images without width/height
- https://horsies.com/coach/jonathan-mathe — 11 of 11 images without width/height
- https://horsies.com/coach/julien-vincent — 11 of 11 images without width/height
- https://horsies.com/coach/mathilde-trinchero — 11 of 11 images without width/height
- https://horsies.com/coach/solenn-habre — 11 of 11 images without width/height
- https://horsies.com/coach/steacy-remaud — 11 of 11 images without width/height
- https://horsies.com/coach/stephane-landois — 11 of 11 images without width/height
- https://horsies.com/coach/yoan-judic — 11 of 11 images without width/height
- https://horsies.com/coaches — 2 of 2 images without width/height
- https://horsies.com/contact — 2 of 2 images without width/height
- https://horsies.com/delete-account — 11 of 11 images without width/height
- https://horsies.com/features — 6 of 6 images without width/height
- https://horsies.com/gift — 11 of 11 images without width/height
- https://horsies.com/pricing — 11 of 11 images without width/height
- https://horsies.com/privacy — 2 of 2 images without width/height
- https://horsies.com/shop — 11 of 11 images without width/height
- https://horsies.com/team — 11 of 11 images without width/height
- https://horsies.com/terms — 2 of 2 images without width/height
notice Page has only one internal inlink (fragile crawl path)
Rule links.single_inlink · Links · 8 occurrence(s)
- https://horsies.com/blog — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/france-paul — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/gaelle-olivier-jacob — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/jonathan-mathe — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/mathilde-trinchero — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/solenn-habre — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/stephane-landois — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
- https://horsies.com/coach/yoan-judic — only one internal link points here — if that source changes, this page becomes an orphan. Add more contextual internal links to strengthen the crawl path.
notice Legacy <meta name=keywords> tag present (Google ignores it)
Rule meta.keywords_present · Content · 27 occurrence(s)
- https://horsies.com/ — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/blog — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/cgv — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/cedric-lyard — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/france-paul — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/gaelle-olivier-jacob — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/jonathan-mathe — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/julien-vincent — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/mathilde-trinchero — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/solenn-habre — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/steacy-remaud — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/stephane-landois — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coach/yoan-judic — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/coaches — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/contact — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/delete-account — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/features — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/galopin — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/galopin/privacy — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/gift — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/pricing — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/privacy — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/shop — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/team — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://horsies.com/terms — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
notice Meta description too long
Rule meta_desc.too_long · Meta Description · 1 occurrence(s)
- https://horsies.com/coaches — 167 chars
notice Legacy image format (jpg/png/gif) with no next-gen fallback
Rule perf.images_legacy_format · Performance · 1 occurrence(s)
- https://horsies.com/team — 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.
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 27 occurrence(s)
- https://horsies.com/ — 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://horsies.com/blog — 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://horsies.com/cgv — 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://horsies.com/coach/cedric-lyard — 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://horsies.com/coach/france-paul — 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://horsies.com/coach/gaelle-olivier-jacob — 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://horsies.com/coach/jonathan-mathe — 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://horsies.com/coach/julien-vincent — 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://horsies.com/coach/mathilde-trinchero — 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://horsies.com/coach/solenn-habre — 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://horsies.com/coach/steacy-remaud — 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://horsies.com/coach/stephane-landois — 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://horsies.com/coach/yoan-judic — 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://horsies.com/coaches — 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://horsies.com/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://horsies.com/delete-account — 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://horsies.com/features — 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://horsies.com/galopin — 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://horsies.com/galopin/privacy — 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://horsies.com/gift — 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://horsies.com/pricing — 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://horsies.com/privacy — 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://horsies.com/shop — 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://horsies.com/team — 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://horsies.com/terms — 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 Deep page has no BreadcrumbList structured data
Rule schema.breadcrumb_missing · Structured Data · 1 occurrence(s)
- https://horsies.com/blog — depth-2 page has structured data but no BreadcrumbList
notice Missing recommended security headers
Rule security.missing_headers · Security · 27 occurrence(s)
- https://horsies.com/ — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/blog — CSP, X-Content-Type-Options, HSTS
- https://horsies.com/cgv — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/cedric-lyard — X-Content-Type-Options, HSTS, CSP
- https://horsies.com/coach/france-paul — X-Content-Type-Options, HSTS, CSP
- https://horsies.com/coach/gaelle-olivier-jacob — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/jonathan-mathe — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/julien-vincent — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/mathilde-trinchero — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/solenn-habre — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/steacy-remaud — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/stephane-landois — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coach/yoan-judic — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/coaches — CSP, X-Content-Type-Options, HSTS
- https://horsies.com/contact — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/delete-account — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/features — X-Content-Type-Options, HSTS, CSP
- https://horsies.com/galopin — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/galopin/privacy — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/gift — CSP, X-Content-Type-Options, HSTS
- https://horsies.com/pricing — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/privacy — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/shop — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/team — HSTS, CSP, X-Content-Type-Options
- https://horsies.com/terms — HSTS, CSP, X-Content-Type-Options
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://horsies.com/ L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 23 |
| https://horsies.com/cgv Conditions générales de vente | Horsies |
200 | yes | 977 | 23 |
| https://horsies.com/coaches Coachs équestres d'élite — Cours en ligne | Horsies |
200 | yes | 357 | 23 |
| https://horsies.com/contact Nous contacter — Équipe Horsies | Horsies |
200 | yes | 82 | 23 |
| https://horsies.com/features Fonctionnalités — Séances, tracking GPS, carnet | Horsies |
200 | yes | 290 | 23 |
| https://horsies.com/pricing L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 23 |
| https://horsies.com/privacy Politique de confidentialité | Horsies |
200 | yes | 1117 | 23 |
| https://horsies.com/shop L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 23 |
| https://horsies.com/team Notre histoire — De R.A.Y.A à Horsies | Horsies |
200 | yes | 396 | 23 |
| https://horsies.com/terms Conditions générales d'utilisation | Horsies |
200 | yes | 1879 | 23 |
| https://horsies.com/galopin/contact Contact | Galopin |
200 | yes | 34 | 4 |
| https://horsies.com/galopin/privacy Politique de confidentialité | Galopin |
200 | yes | 3768 | 4 |
| https://horsies.com/galopin/terms Conditions générales d'utilisation | Galopin |
200 | yes | 2699 | 4 |
| https://horsies.com/coach/cedric-lyard L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 17 |
| https://horsies.com/coach/julien-vincent L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 17 |
| https://horsies.com/coach/steacy-remaud L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 17 |
| https://horsies.com/galopin Carnet de suivi pour ton cheval | Galopin |
200 | yes | 361 | 3 |
| https://horsies.com/blog L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/france-paul L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/gaelle-olivier-jacob L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/jonathan-mathe L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/mathilde-trinchero L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/solenn-habre L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/stephane-landois L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/coach/yoan-judic L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 1 |
| https://horsies.com/delete-account L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 0 |
| https://horsies.com/gift L'app équitation n°1 pour cavaliers | Horsies |
200 | yes | 523 | 0 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.