Catalog / alliancetravauxpublics.com
77

SEO audit for alliancetravauxpublics.com

ATP – Alliance Travaux Publics

otherWordPress

Health 77/100 (good) · 26 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)
Screenshot of alliancetravauxpublics.com
26
pages crawled
15
indexable pages
0
errors
102
warnings
188
notices
6
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Links 58 0 36 15
Agent Readiness 83 0 15 30
Meta Description 83 0 15 0
Performance 83 0 15 60
Content 92 0 7 0
Headings 92 0 7 0
Duplicate 93 0 6 0
Canonical 99 0 1 0
Crawlability 100 0 0 2
Images 100 0 0 2
Security 100 0 0 15
Social 100 0 0 30
Structured Data 100 0 0 15
Titles 100 0 0 6
URL 100 0 0 13
Findings

Warnings (10 rules)

warning Control has no accessible name

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

warning Missing canonical tag

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

warning Duplicate page content

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

warning Duplicate <title> across pages

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

warning Orphan page (no internal inlinks)

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

warning Internal link points to a redirect

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

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

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

Notices (17 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 15 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 · 14 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://alliancetravauxpublics.com/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/?templately_library=artesian-footer — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/?templately_library=artesian-header — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/?templately_library=single-page-by-templately — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/actualite/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/author/admin/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/contact — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/contact/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/projets — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/projets/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/qui-sommes-nous/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/services/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/services/electricite/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/services/transport/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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://alliancetravauxpublics.com/services/travaux-publics-btp/ — the likely hero/LCP image (whatsapp-image-2024-09-26-at-15.50.20.jpeg) 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 · 2 occurrence(s)

notice Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 15 occurrence(s)

notice Missing Open Graph tags

Rule og.missing · Social · 15 occurrence(s)

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

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

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

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

  • https://alliancetravauxpublics.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://alliancetravauxpublics.com/?templately_library=artesian-footer — 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://alliancetravauxpublics.com/?templately_library=artesian-header — 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://alliancetravauxpublics.com/?templately_library=single-page-by-templately — 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://alliancetravauxpublics.com/actualite/ — 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://alliancetravauxpublics.com/author/admin/ — 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://alliancetravauxpublics.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://alliancetravauxpublics.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://alliancetravauxpublics.com/projets — 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://alliancetravauxpublics.com/projets/ — 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://alliancetravauxpublics.com/qui-sommes-nous/ — 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://alliancetravauxpublics.com/services/ — 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://alliancetravauxpublics.com/services/electricite/ — 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://alliancetravauxpublics.com/services/transport/ — 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://alliancetravauxpublics.com/services/travaux-publics-btp/ — 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 · 15 occurrence(s)

  • https://alliancetravauxpublics.com/ — 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://alliancetravauxpublics.com/?templately_library=artesian-footer — 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://alliancetravauxpublics.com/?templately_library=artesian-header — 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://alliancetravauxpublics.com/?templately_library=single-page-by-templately — 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://alliancetravauxpublics.com/actualite/ — 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://alliancetravauxpublics.com/author/admin/ — 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://alliancetravauxpublics.com/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://alliancetravauxpublics.com/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://alliancetravauxpublics.com/projets — 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://alliancetravauxpublics.com/projets/ — 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://alliancetravauxpublics.com/qui-sommes-nous/ — 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://alliancetravauxpublics.com/services/ — 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://alliancetravauxpublics.com/services/electricite/ — 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://alliancetravauxpublics.com/services/transport/ — 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://alliancetravauxpublics.com/services/travaux-publics-btp/ — 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 · 2 occurrence(s)

notice Missing recommended security headers

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

Pages (showing 26 of 26)
URLStatusIndexableWordsIn-links
https://alliancetravauxpublics.com/
ATP – Alliance Travaux Publics
200 yes 435 15
https://alliancetravauxpublics.com/actualite/
Actualité – ATP
200 yes 108 15
https://alliancetravauxpublics.com/contact
Contact – ATP
200 yes 177 15
https://alliancetravauxpublics.com/projets
Projets – ATP
200 yes 259 15
https://alliancetravauxpublics.com/qui-sommes-nous/
Qui sommes-nous – ATP
200 yes 289 15
https://alliancetravauxpublics.com/services/
Services – ATP
200 yes 257 15
https://alliancetravauxpublics.com/services/electricite/
Électricité – ATP
200 yes 381 15
https://alliancetravauxpublics.com/services/transport/
Transport – ATP
200 yes 305 15
https://alliancetravauxpublics.com/services/travaux-publics-btp/
Travaux Publics (BTP) – ATP
200 yes 390 15
https://alliancetravauxpublics.com/?templately_library=artesian-footer
Artesian Footer – ATP
200 yes 108 0
https://alliancetravauxpublics.com/?templately_library=artesian-header
Artesian Header – ATP
200 yes 108 0
https://alliancetravauxpublics.com/?templately_library=single-page-by-templately
Single Page – (by Templately) – ATP
200 yes 108 0
https://alliancetravauxpublics.com/author/admin/
admin – ATP
200 yes 111 0
https://alliancetravauxpublics.com/contact/
Contact – ATP
200 yes 177 0
https://alliancetravauxpublics.com/projets/
Projets – ATP
200 yes 259 0
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/CEVA_Logistics_New_Logo.png 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/CIB.jpg 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/EKDS-NOUVELL.jpg 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/LOGO-COIC.jpg 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/Logo_Bollore_Transport_Logistics.png 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/Logo_CCC.webp 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/Logo_CIE.jpg 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/Maersk-Logo.png 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/ageroute.png 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/cidt.jpg 200 no 0 1
https://alliancetravauxpublics.com/wp-content/uploads/2024/09/logocienergies-HD.png 200 no 0 1

Audit your own site — free

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

Scan your site →