Catalog / rouge-a-reves.fr
67

SEO audit for rouge-a-reves.fr

Photographe publicitaire professionnel | Packshot, Éditorial

otherDrupal

Health 67/100 (fair) · 15 pages crawled · generated 2026-08-26

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

Spécialisé en photographie de produit e-commerce et campagne pub, je suis votre photographe Packshot, Porté catalogue et Shooting Éditorial.

15
pages crawled
14
indexable pages
0
errors
71
warnings
102
notices
3
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 10 0 45 0
Structured Data 74 0 13 1
Duplicate 76 0 12 6
Headings 98 0 1 0
Agent Readiness 100 0 0 15
Crawlability 100 0 0 3
Images 100 0 0 21
Performance 100 0 0 28
Security 100 0 0 28
Findings

Warnings (6 rules)

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Missing <h1>

Rule h1.missing · Headings · 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 · 42 occurrence(s)

warning BreadcrumbList present but structurally incomplete

Rule schema.breadcrumb_incomplete · Structured Data · 13 occurrence(s)

  • https://www.rouge-a-reves.fr/cgv — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/cgv/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/contact/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/cookies/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/mentions-legales — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/mentions-legales/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/photographe-editorial-bordeaux/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/photographe-packshot-produit/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/photographe-porte-bordeaux/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/photographe-professionnel-bordeaux/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/photographe-still-life/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/politique-de-confidentialite — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.
  • https://www.rouge-a-reves.fr/politique-de-confidentialite/ — a BreadcrumbList is present but structurally incomplete — missing required name. Give itemListElement at least 2 ListItems, each with a sequential integer position and a name, and an item URL on every entry except the last.

Notices (12 rules)

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 · 14 occurrence(s)

notice Duplicate meta description across pages

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

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

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

  • https://www.rouge-a-reves.fr/photographe-editorial-bordeaux/ — 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://www.rouge-a-reves.fr/photographe-packshot-produit/ — 8 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://www.rouge-a-reves.fr/photographe-still-life/ — 4 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 Image alt text is very long (possible keyword stuffing)

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

notice Likely hero image lacks fetchpriority=high

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

  • https://www.rouge-a-reves.fr/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/cgv — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/cgv/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/contact/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/cookies/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/mentions-legales — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/mentions-legales/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/photographe-editorial-bordeaux/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/photographe-packshot-produit/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/photographe-porte-bordeaux/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/photographe-professionnel-bordeaux/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/photographe-still-life/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/politique-de-confidentialite — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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://www.rouge-a-reves.fr/politique-de-confidentialite/ — the likely hero/LCP image (gif;base64,r0lgoddhaqabapaaampdwwaaacwaaaaaaqabaaacakqbads=) 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 · 14 occurrence(s)

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

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

  • https://www.rouge-a-reves.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://www.rouge-a-reves.fr/cgv — 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://www.rouge-a-reves.fr/cgv/ — 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://www.rouge-a-reves.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://www.rouge-a-reves.fr/cookies/ — 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://www.rouge-a-reves.fr/mentions-legales — 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://www.rouge-a-reves.fr/mentions-legales/ — 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://www.rouge-a-reves.fr/photographe-editorial-bordeaux/ — 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://www.rouge-a-reves.fr/photographe-packshot-produit/ — 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://www.rouge-a-reves.fr/photographe-porte-bordeaux/ — 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://www.rouge-a-reves.fr/photographe-professionnel-bordeaux/ — 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://www.rouge-a-reves.fr/photographe-still-life/ — 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://www.rouge-a-reves.fr/politique-de-confidentialite — 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://www.rouge-a-reves.fr/politique-de-confidentialite/ — 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 · 3 occurrence(s)

notice Deprecated schema type with no Google rich result

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

  • https://www.rouge-a-reves.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.

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

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

Pages (showing 15 of 15)
URLStatusIndexableWordsIn-links
https://www.rouge-a-reves.fr/
Photographe publicitaire professionnel | Packshot, Éditorial
200 yes 903 14
https://www.rouge-a-reves.fr/cgv
Conditions générales de vente – Rouge à Rêves
200 yes 3107 14
https://www.rouge-a-reves.fr/contact/
Contact du studio Rouge à Rêves | Maxime Artenzo
200 yes 341 14
https://www.rouge-a-reves.fr/cookies/
Politique de cookies – Rouge à Rêves
200 yes 1329 14
https://www.rouge-a-reves.fr/mentions-legales
Mentions légales – Rouge à Rêves
200 yes 856 14
https://www.rouge-a-reves.fr/photographe-editorial-bordeaux/
Photographe éditorial professionnel à Bordeaux | Lookbook
200 yes 939 14
https://www.rouge-a-reves.fr/photographe-packshot-produit/
Photographe packshot professionnel pour e-commerce
200 yes 812 14
https://www.rouge-a-reves.fr/photographe-porte-bordeaux/
Photographe Porté e-commerce à Bordeaux | Shooting Lookbook
200 yes 935 14
https://www.rouge-a-reves.fr/photographe-professionnel-bordeaux/
Photographe professionnel à Bordeaux | Maxime Artenzo
200 yes 832 14
https://www.rouge-a-reves.fr/photographe-still-life/
Photographe Still Life Professionnel | Mise en Scène de Produits
200 yes 830 14
https://www.rouge-a-reves.fr/politique-de-confidentialite
Politique de confidentialité – Rouge à Rêves
200 yes 1033 14
https://www.rouge-a-reves.fr/cgv/
Conditions générales de vente – Rouge à Rêves
200 yes 3107 0
https://www.rouge-a-reves.fr/mentions-legales/
Mentions légales – Rouge à Rêves
200 yes 856 0
https://www.rouge-a-reves.fr/politique-de-confidentialite/
Politique de confidentialité – Rouge à Rêves
200 yes 1033 0
https://www.rouge-a-reves.fr/locations.kml 200 no 0 0

Audit your own site — free

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

Scan your site →