Catalog / terra-mare.fr
65

SEO audit for terra-mare.fr

Terra+Mare · Chambres chez l'habitant à Gassin (Saint-Tropez)

other

Health 65/100 (fair) · 16 pages crawled · generated 2026-07-29

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

Chambres de charme chez l'habitant à Gassin, au cœur du golfe de Saint-Tropez, à 5 min des plages de Gigaro. Terrasse privée, climatisation, parking.

Screenshot of terra-mare.fr
16
pages crawled
16
indexable pages
0
errors
24
warnings
108
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Security 70 0 16 16
Hreflang 93 0 4 0
Performance 94 0 3 45
Canonical 98 0 1 2
Agent Readiness 100 0 0 24
Content 100 0 0 1
Images 100 0 0 15
Meta Description 100 0 0 2
Structured Data 100 0 0 3
Findings

Warnings (5 rules)

warning Interior page canonicalizes to the homepage

Rule canonical.points_to_homepage · Canonical · 1 occurrence(s)

  • https://terra-mare.fr/index.html — this interior page canonicalizes to the homepage (https://terra-mare.fr/) — Google will treat the homepage as authoritative and drop this page from search. Point the canonical at the page's own URL.

warning Content-Type header doesn't match the actual content

Rule headers.content_type_mismatch · Security · 16 occurrence(s)

  • https://terra-mare.fr/ — 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://terra-mare.fr/chambre-mare-en.html — 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://terra-mare.fr/chambre-mare-es.html — 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://terra-mare.fr/chambre-mare.html — 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://terra-mare.fr/chambre-terra-en.html — 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://terra-mare.fr/chambre-terra-es.html — 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://terra-mare.fr/chambre-terra.html — 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://terra-mare.fr/faq-en.html — 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://terra-mare.fr/faq-es.html — 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://terra-mare.fr/faq.html — 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://terra-mare.fr/guide-en.html — 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://terra-mare.fr/guide-es.html — 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://terra-mare.fr/guide.html — 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://terra-mare.fr/index-en.html — 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://terra-mare.fr/index-es.html — 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://terra-mare.fr/index.html — 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 hreflang set has no self-reference

Rule hreflang.missing_self · Hreflang · 1 occurrence(s)

warning hreflang has no return link (not reciprocal)

Rule hreflang.no_return · Hreflang · 3 occurrence(s)

warning Hero/LCP image is lazy-loaded (loading=lazy delays LCP)

Rule images.no_lazy_lcp_candidate · Performance · 3 occurrence(s)

  • https://terra-mare.fr/guide-en.html — the likely hero/LCP image (aerial_view_of_gigaro_beach_in_la_croix-valmer,_france_(52723801211).jpg) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://terra-mare.fr/guide-es.html — the likely hero/LCP image (aerial_view_of_gigaro_beach_in_la_croix-valmer,_france_(52723801211).jpg) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.
  • https://terra-mare.fr/guide.html — the likely hero/LCP image (aerial_view_of_gigaro_beach_in_la_croix-valmer,_france_(52723801211).jpg) has loading="lazy" — Google explicitly warns against lazy-loading the LCP image, because it delays the fetch until layout completes. Remove loading="lazy" from the first significant image and add fetchpriority="high" instead.

Notices (15 rules)

notice Heading levels skip a level

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

notice No llms.txt for AI agents

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

  • https://terra-mare.fr/ — no llms.txt found at the site root — add one so AI agents get a curated site summary

notice No main landmark for AI agents

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

notice Canonical target reachable only via a canonical tag (no inlinks)

Rule canonical.isolated_url · Canonical · 1 occurrence(s)

  • https://terra-mare.fr/ — this URL is a canonical target but has no internal links pointing to it — crawlers only learn of it via the canonical tag. Add direct internal links (or list it in the sitemap).

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 1 occurrence(s)

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 1 occurrence(s)

  • https://terra-mare.fr/chambre-terra-en.html — this page reads as difficult (Flesch Reading Ease 48, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.

notice Image alt text is keyword-stuffed (repetition / low variety)

Rule images.alt_stuffed · Images · 2 occurrence(s)

  • https://terra-mare.fr/guide-es.html — 1 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.
  • https://terra-mare.fr/guide.html — 2 image(s) have keyword-stuffed alt text — the same word repeated several times, or a long low-variety keyword list. Google's image guidance asks for short, descriptive alt text, not keyword lists; rewrite it to describe the image.

notice Likely hero image lacks fetchpriority=high

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

  • https://terra-mare.fr/ — the likely hero/LCP image (mare-lit.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://terra-mare.fr/chambre-mare-en.html — the likely hero/LCP image (mare-lit.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://terra-mare.fr/chambre-mare-es.html — the likely hero/LCP image (mare-lit.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://terra-mare.fr/chambre-mare.html — the likely hero/LCP image (mare-lit.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://terra-mare.fr/chambre-terra-en.html — the likely hero/LCP image (terra-lit.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://terra-mare.fr/chambre-terra-es.html — the likely hero/LCP image (terra-lit.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://terra-mare.fr/chambre-terra.html — the likely hero/LCP image (terra-lit.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://terra-mare.fr/index-en.html — the likely hero/LCP image (mare-lit.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://terra-mare.fr/index-es.html — the likely hero/LCP image (mare-lit.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://terra-mare.fr/index.html — the likely hero/LCP image (mare-lit.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 · 13 occurrence(s)

notice Meta description too long

Rule meta_desc.too_long · Meta Description · 2 occurrence(s)

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

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

  • https://terra-mare.fr/guide-en.html — 15 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://terra-mare.fr/guide-es.html — 15 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://terra-mare.fr/guide.html — 15 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 · 16 occurrence(s)

  • https://terra-mare.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://terra-mare.fr/chambre-mare-en.html — 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://terra-mare.fr/chambre-mare-es.html — 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://terra-mare.fr/chambre-mare.html — 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://terra-mare.fr/chambre-terra-en.html — 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://terra-mare.fr/chambre-terra-es.html — 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://terra-mare.fr/chambre-terra.html — 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://terra-mare.fr/faq-en.html — 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://terra-mare.fr/faq-es.html — 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://terra-mare.fr/faq.html — 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://terra-mare.fr/guide-en.html — 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://terra-mare.fr/guide-es.html — 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://terra-mare.fr/guide.html — 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://terra-mare.fr/index-en.html — 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://terra-mare.fr/index-es.html — 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://terra-mare.fr/index.html — 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 · 16 occurrence(s)

  • https://terra-mare.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://terra-mare.fr/chambre-mare-en.html — 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://terra-mare.fr/chambre-mare-es.html — 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://terra-mare.fr/chambre-mare.html — 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://terra-mare.fr/chambre-terra-en.html — 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://terra-mare.fr/chambre-terra-es.html — 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://terra-mare.fr/chambre-terra.html — 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://terra-mare.fr/faq-en.html — 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://terra-mare.fr/faq-es.html — 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://terra-mare.fr/faq.html — 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://terra-mare.fr/guide-en.html — 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://terra-mare.fr/guide-es.html — 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://terra-mare.fr/guide.html — 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://terra-mare.fr/index-en.html — 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://terra-mare.fr/index-es.html — 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://terra-mare.fr/index.html — 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 FAQPage structured data (rich result removed May 2026)

Rule schema.faq_deprecated · Structured Data · 3 occurrence(s)

  • https://terra-mare.fr/faq-en.html — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://terra-mare.fr/faq-es.html — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.
  • https://terra-mare.fr/faq.html — FAQPage structured data is present — Google removed FAQ rich results on 7 May 2026 (except for authoritative government/health sites). The markup is harmless but earns no SERP enhancement; remove it during template maintenance.

notice Missing recommended security headers

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

Pages (showing 16 of 16)
URLStatusIndexableWordsIn-links
https://terra-mare.fr/index.html
Terra+Mare · Chambres chez l'habitant à Gassin (Saint-Tropez)
200 yes 705 12
https://terra-mare.fr/chambre-mare.html
Chambre Mare · Terrasse privée, à Gassin — Chambres Terra+Mare
200 yes 257 8
https://terra-mare.fr/chambre-terra.html
Chambre Terra · Baignoire, à Gassin — Chambres Terra+Mare
200 yes 278 8
https://terra-mare.fr/faq.html
FAQ · Questions fréquentes — Chambres Terra+Mare, Gassin
200 yes 395 8
https://terra-mare.fr/guide.html
Que faire dans le golfe de Saint-Tropez ? Le guide de vos hôtes
200 yes 1304 8
https://terra-mare.fr/index-en.html
Terra+Mare Rooms · Guest rooms in Gassin, Gulf of Saint-Tropez
200 yes 701 8
https://terra-mare.fr/chambre-mare-en.html
Mare Room · Private terrace, in Gassin — Terra+Mare Rooms
200 yes 256 7
https://terra-mare.fr/chambre-terra-en.html
Terra Room · Guest room with bathtub in Gassin — Terra+Mare Rooms
200 yes 261 7
https://terra-mare.fr/faq-en.html
FAQ · Frequently asked questions — Terra+Mare Rooms, Gassin
200 yes 376 7
https://terra-mare.fr/guide-en.html
Things to do in the Gulf of Saint-Tropez — Your hosts' guide
200 yes 1213 7
https://terra-mare.fr/index-es.html
Terra+Mare · Habitaciones en casa particular en Gassin (Saint-Tropez)
200 yes 727 8
https://terra-mare.fr/chambre-mare-es.html
Habitación Mare · Terraza privada, en Gassin — Terra+Mare
200 yes 259 7
https://terra-mare.fr/chambre-terra-es.html
Habitación Terra · Bañera, en Gassin — Terra+Mare
200 yes 280 7
https://terra-mare.fr/faq-es.html
FAQ · Preguntas frecuentes — Habitaciones Terra+Mare, Gassin
200 yes 396 7
https://terra-mare.fr/guide-es.html
¿Qué hacer en el golfo de Saint-Tropez? La guía de sus anfitriones
200 yes 1326 7
https://terra-mare.fr/
Terra+Mare · Chambres chez l'habitant à Gassin (Saint-Tropez)
200 yes 705 0

Audit your own site — free

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

Scan your site →