Catalog / missionventilation.com
65

SEO audit for missionventilation.com

Accueil - Mission Ventilation

otherWordPress

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

Download Markdown report (feed to ChatGPT / Claude / Cursor)
Screenshot of missionventilation.com
33
pages crawled
31
indexable pages
0
errors
233
warnings
330
notices
17
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Structured Data 42 0 64 3
Agent Readiness 70 0 33 20
Performance 70 0 33 132
Headings 72 0 31 0
Meta Description 78 0 24 7
Duplicate 79 0 23 0
Links 85 0 17 4
Images 97 0 3 33
Budget 98 0 2 0
Indexability 98 0 2 0
Titles 99 0 1 0
Content 100 0 0 34
Security 100 0 0 66
Social 100 0 0 31
Findings

Warnings (14 rules)

warning Control has no accessible name

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

warning Noindex page receives internal links (crawl-budget waste)

Rule budget.noindex_linked · Budget · 2 occurrence(s)

  • https://missionventilation.com/2026/02/12/ — this noindex page has 3 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://missionventilation.com/conseils-dexpert-pour-votre-plomberie/, https://missionventilation.com/le-guide-complet-du-poele-aux-granules/, https://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/.
  • https://missionventilation.com/author/tgimission/ — this noindex page has 3 internal inlink(s) — Googlebot follows them, fetches the page, then drops it unindexed, spending crawl budget for no indexing benefit (and the links leak equity). Remove/redirect the links, or drop the noindex if the page should be indexed. Linked from: https://missionventilation.com/conseils-dexpert-pour-votre-plomberie/, https://missionventilation.com/le-guide-complet-du-poele-aux-granules/, https://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/.

warning Duplicate page content

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

warning Near-duplicate page content

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

  • https://missionventilation.com/attribution/ — near-duplicate of 5 page(s): https://missionventilation.com/liquidation-chaleur/, https://missionventilation.com/liquidation-plomberie/, https://missionventilation.com/liquidation-divers/
  • https://missionventilation.com/blog/ — near-duplicate of 5 page(s): https://missionventilation.com/liquidation-chaleur/, https://missionventilation.com/liquidation-plomberie/, https://missionventilation.com/liquidation-divers/
  • https://missionventilation.com/liquidation-chaleur/ — near-duplicate of 5 page(s): https://missionventilation.com/liquidation-plomberie/, https://missionventilation.com/liquidation-divers/, https://missionventilation.com/liquidation/
  • https://missionventilation.com/liquidation-divers/ — near-duplicate of 5 page(s): https://missionventilation.com/liquidation-chaleur/, https://missionventilation.com/liquidation-plomberie/, https://missionventilation.com/liquidation/
  • https://missionventilation.com/liquidation-plomberie/ — near-duplicate of 5 page(s): https://missionventilation.com/liquidation-chaleur/, https://missionventilation.com/liquidation-divers/, https://missionventilation.com/liquidation/
  • https://missionventilation.com/liquidation/ — near-duplicate of 5 page(s): https://missionventilation.com/liquidation-chaleur/, https://missionventilation.com/liquidation-plomberie/, https://missionventilation.com/liquidation-divers/

warning Images missing alt text

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

warning Page is noindex

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

warning Orphan page (no internal inlinks)

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

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

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

warning BreadcrumbList present but structurally incomplete

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

  • https://missionventilation.com/ — 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://missionventilation.com/about/ — 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://missionventilation.com/attribution/ — 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://missionventilation.com/blog/ — 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://missionventilation.com/category/cctv-surveillance/ — 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://missionventilation.com/category/design/ — 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://missionventilation.com/category/digital-safety/ — 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://missionventilation.com/category/divided-development/ — 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://missionventilation.com/category/edits/ — 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://missionventilation.com/category/home-security/ — 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://missionventilation.com/category/image/ — 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://missionventilation.com/conseils-dexpert-pour-votre-plomberie/ — 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://missionventilation.com/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://missionventilation.com/home-clone/ — 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://missionventilation.com/le-guide-complet-du-poele-aux-granules/ — 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://missionventilation.com/liquidation-chaleur/ — 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://missionventilation.com/liquidation-divers/ — 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://missionventilation.com/liquidation-plomberie/ — 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://missionventilation.com/liquidation/ — 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://missionventilation.com/nous-joindre/ — 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://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/ — 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://missionventilation.com/produits/ — 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://missionventilation.com/sample-page/ — 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://missionventilation.com/services/ — 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://missionventilation.com/zone-conseils/ — 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.

warning Schema describes content not visible on the page

Rule schema.hidden_content · Structured Data · 2 occurrence(s)

  • https://missionventilation.com/home-clone/ — a schema name/headline ("Home Clone") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.
  • https://missionventilation.com/sample-page/ — a schema name/headline ("Sample Page") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.

warning Rich-result schema missing required properties

Rule schema.invalid · Structured Data · 31 occurrence(s)

warning Title likely truncated in SERP (too wide)

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

Notices (16 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 · 19 occurrence(s)

notice Low text-to-HTML ratio

Rule content.low_ratio · Content · 31 occurrence(s)

notice Article page has no author attribution (E-E-A-T)

Rule eeat.no_author · Content · 3 occurrence(s)

notice Likely hero image lacks fetchpriority=high

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

  • https://missionventilation.com/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/2026/02/12/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/about/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/attribution/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/author/tgimission/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/blog/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/category/cctv-surveillance/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/category/design/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/category/digital-safety/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/category/divided-development/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/category/edits/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/conseils-dexpert-pour-votre-plomberie/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/contact/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/home-clone/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/le-guide-complet-du-poele-aux-granules/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/liquidation-chaleur/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/liquidation-divers/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/liquidation-plomberie/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/liquidation/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/nous-joindre/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/produits/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/sample-page/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/services/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://missionventilation.com/zone-conseils/ — the likely hero/LCP image (mission-logo.png) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

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

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

notice Internal link has no anchor text / accessible name

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

notice Meta description too short

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

notice Missing Open Graph tags

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

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

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

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

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

  • https://missionventilation.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://missionventilation.com/2026/02/12/ — 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://missionventilation.com/about/ — 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://missionventilation.com/attribution/ — 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://missionventilation.com/author/tgimission/ — 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://missionventilation.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://missionventilation.com/category/cctv-surveillance/ — 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://missionventilation.com/category/design/ — 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://missionventilation.com/category/digital-safety/ — 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://missionventilation.com/category/divided-development/ — 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://missionventilation.com/category/edits/ — 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://missionventilation.com/conseils-dexpert-pour-votre-plomberie/ — 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://missionventilation.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://missionventilation.com/home-clone/ — 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://missionventilation.com/le-guide-complet-du-poele-aux-granules/ — 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://missionventilation.com/liquidation-chaleur/ — 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://missionventilation.com/liquidation-divers/ — 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://missionventilation.com/liquidation-plomberie/ — 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://missionventilation.com/liquidation/ — 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://missionventilation.com/nous-joindre/ — 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://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/ — 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://missionventilation.com/produits/ — 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://missionventilation.com/sample-page/ — 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://missionventilation.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://missionventilation.com/zone-conseils/ — 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 · 33 occurrence(s)

  • https://missionventilation.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://missionventilation.com/2026/02/12/ — 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://missionventilation.com/about/ — 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://missionventilation.com/attribution/ — 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://missionventilation.com/author/tgimission/ — 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://missionventilation.com/blog/ — 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://missionventilation.com/category/cctv-surveillance/ — 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://missionventilation.com/category/design/ — 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://missionventilation.com/category/digital-safety/ — 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://missionventilation.com/category/divided-development/ — 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://missionventilation.com/category/edits/ — 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://missionventilation.com/conseils-dexpert-pour-votre-plomberie/ — 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://missionventilation.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://missionventilation.com/home-clone/ — 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://missionventilation.com/le-guide-complet-du-poele-aux-granules/ — 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://missionventilation.com/liquidation-chaleur/ — 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://missionventilation.com/liquidation-divers/ — 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://missionventilation.com/liquidation-plomberie/ — 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://missionventilation.com/liquidation/ — 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://missionventilation.com/nous-joindre/ — 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://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/ — 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://missionventilation.com/produits/ — 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://missionventilation.com/sample-page/ — 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://missionventilation.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://missionventilation.com/zone-conseils/ — 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 Article schema missing recommended properties (Top Stories / image carousel)

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

notice Missing recommended security headers

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

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

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

Pages (showing 33 of 33)
URLStatusIndexableWordsIn-links
https://missionventilation.com/
Accueil - Mission Ventilation
200 yes 629 33
https://missionventilation.com/about/
À Propos - Mission Ventilation
200 yes 525 33
https://missionventilation.com/contact/
Contact - Mission Ventilation
200 yes 347 33
https://missionventilation.com/liquidation-chaleur/
Liquidation Chaleur - Mission Ventilation
200 yes 273 33
https://missionventilation.com/liquidation-divers/
Liquidation Divers - Mission Ventilation
200 yes 273 33
https://missionventilation.com/liquidation-plomberie/
Liquidation Plomberie - Mission Ventilation
200 yes 273 33
https://missionventilation.com/liquidation/
Liquidation - Mission Ventilation
200 yes 273 33
https://missionventilation.com/nous-joindre/
Nous joindre - Mission Ventilation
200 yes 402 33
https://missionventilation.com/produits/
Produits - Mission Ventilation
200 yes 335 33
https://missionventilation.com/zone-conseils/
Zone Conseils - Mission Ventilation
200 yes 382 33
https://missionventilation.com/category/uncategorized/
Uncategorized - Mission Ventilation
200 yes 379 19
https://missionventilation.com/conseils-dexpert-pour-votre-plomberie/
Conseils d’expert pour votre plomberie - Mission Ventilation
200 yes 538 19
https://missionventilation.com/le-guide-complet-du-poele-aux-granules/
Le guide complet du poêle aux granules - Mission Ventilation
200 yes 544 19
https://missionventilation.com/pourquoi-lentretien-de-votre-systeme-de-ventilation-nest-pas-une-option/
Pourquoi l’entretien de votre système de ventilation n’est pas une option - Mission Ventilation
200 yes 552 19
https://missionventilation.com/2026/02/12/
12 - Mission Ventilation
200 no 381 3
https://missionventilation.com/author/tgimission/
TGIMission - Mission Ventilation
200 no 381 3
https://missionventilation.com/attribution/
Attribution - Mission Ventilation
200 yes 275 0
https://missionventilation.com/blog/
Blog - Mission Ventilation
200 yes 273 0
https://missionventilation.com/category/cctv-surveillance/
CCTV & Surveillance - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/design/
Design - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/digital-safety/
Digital Safety - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/divided-development/
Divided Built - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/edits/
Edits - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/home-security/
Home Security - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/image/
Image - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/on-point-integration/
On-line Conduct - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/safety-awareness/
Safety & Awareness - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/safety-technology/
Safety Technology - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/smart-home-protection/
Smart Home Protection - Mission Ventilation
200 yes 309 0
https://missionventilation.com/category/utility/
Utility - Mission Ventilation
200 yes 309 0
https://missionventilation.com/home-clone/
Home Clone - Mission Ventilation
200 yes 527 0
https://missionventilation.com/sample-page/
Sample Page - Mission Ventilation
200 yes 428 0
https://missionventilation.com/services/
Services - Mission Ventilation
200 yes 524 0

Audit your own site — free

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

Scan your site →