Catalog / girardengineering.ca
53

SEO audit for girardengineering.ca

Professional Engineers - Girard Engineering

otherWordPress

Health 53/100 (fair) · 50 pages crawled · generated 2026-08-26

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

Girard Engineering is a full service Civil Engineering firm specializing in Structural and Municipal engineering projects. At Girard Engineering we pride ourselves on our ability to serve our clients…

Screenshot of girardengineering.ca
50
pages crawled
41
indexable pages
15
errors
95
warnings
510
notices
0
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Crawlability 88 6 0 1
Sitemap 88 6 0 1
Security 94 3 0 48
Performance 75 0 41 166
Content 89 0 19 41
Meta Description 92 0 13 19
Indexability 96 0 7 1
Agent Readiness 97 0 5 10
Duplicate 98 0 4 2
Links 99 0 2 5
Budget 99 0 1 0
Headings 99 0 1 0
Robots 99 0 1 0
Titles 99 0 1 0
Cache 100 0 0 42
Canonical 100 0 0 7
Images 100 0 0 45
Social 100 0 0 71
Structured Data 100 0 0 44
URL 100 0 0 7
Findings

Errors (3 rules)

error Mixed content on HTTPS page

Rule security.mixed_content · Security · 3 occurrence(s)

error Non-200 URL listed in sitemap

Rule sitemap.not_200 · Sitemap · 6 occurrence(s)

Warnings (12 rules)

warning Control has no accessible name

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

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

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

warning Near-duplicate page content

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

warning Duplicate <title> across pages

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

warning Missing <h1>

Rule h1.missing · Headings · 1 occurrence(s)

warning Page is noindex

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

warning Internal link points to a redirect

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

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

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

warning robots.txt blocks CSS/JS the pages need to render

Rule robots.blocks_css_js · Robots · 1 occurrence(s)

  • https://girardengineering.ca/ — robots.txt Disallow blocks render-critical CSS/JS under: /wp-admin/css/, /wp-admin/js/ — Google's renderer can't fetch these, so the affected pages may render blank or thin. Allow the asset path(s) for Googlebot.

warning Title likely truncated in SERP (too wide)

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

Notices (27 rules)

notice No llms.txt for AI agents

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

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 42 occurrence(s)

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

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

notice Canonical points to a different URL

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

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

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

  • https://girardengineering.ca/ — this page reads as difficult (Flesch Reading Ease 37, 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.
  • https://girardengineering.ca/checkout/ — this page reads as difficult (Flesch Reading Ease 32, 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.
  • https://girardengineering.ca/checkout/purchase-confirmation/ — this page reads as difficult (Flesch Reading Ease 35, 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.
  • https://girardengineering.ca/civil-engineer-job/ — this page reads as very difficult (Flesch Reading Ease -3, 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.
  • https://girardengineering.ca/civil-engineering-software-review-continued/ — this page reads as difficult (Flesch Reading Ease 46, 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.
  • https://girardengineering.ca/civil-engineering-software-review/ — this page reads as difficult (Flesch Reading Ease 47, 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.
  • https://girardengineering.ca/contact-us/ — this page reads as difficult (Flesch Reading Ease 41, 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.
  • https://girardengineering.ca/faqs/ — this page reads as difficult (Flesch Reading Ease 36, 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.
  • https://girardengineering.ca/gallery/ — this page reads as difficult (Flesch Reading Ease 33, 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.
  • https://girardengineering.ca/hello-world/ — this page reads as difficult (Flesch Reading Ease 34, 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.
  • https://girardengineering.ca/new-engineer-hired/ — this page reads as very difficult (Flesch Reading Ease 17, 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.
  • https://girardengineering.ca/new-sign-installed/ — this page reads as difficult (Flesch Reading Ease 45, 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.
  • https://girardengineering.ca/new-sign-installed/new-sign-jpg-1/ — this page reads as difficult (Flesch Reading Ease 42, 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.
  • https://girardengineering.ca/ownership-announcement/ — this page reads as difficult (Flesch Reading Ease 45, 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.
  • https://girardengineering.ca/oxford-county-structural-engineering-prices/ — this page reads as difficult (Flesch Reading Ease 36, 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.
  • https://girardengineering.ca/sample-page/blog/ — this page reads as very difficult (Flesch Reading Ease 28, 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.
  • https://girardengineering.ca/sample-page/staff/len-girard/ — this page reads as difficult (Flesch Reading Ease 34, 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.
  • https://girardengineering.ca/sample-page/staff/len-girard/len/ — this page reads as difficult (Flesch Reading Ease 38, 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.
  • https://girardengineering.ca/services/ — this page reads as very difficult (Flesch Reading Ease 20, 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.
  • https://girardengineering.ca/services/two-architect-working-together-2/ — this page reads as difficult (Flesch Reading Ease 36, 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.
  • https://girardengineering.ca/structural-engineers-must-dos/ — this page reads as difficult (Flesch Reading Ease 34, 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.
  • https://girardengineering.ca/what-happens-in-an-engineering-inspection/ — this page reads as very difficult (Flesch Reading Ease 27, 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.
  • https://girardengineering.ca/woodstock-structural-engineer/ — this page reads as very difficult (Flesch Reading Ease 20, 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.
  • https://girardengineering.ca/woodstock-structural-engineer/structural-eng-pic/ — this page reads as difficult (Flesch Reading Ease 38, 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.
  • https://girardengineering.ca/woodstock-structural-engineers-when-should-i-consult-one/ — this page reads as difficult (Flesch Reading Ease 35, 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 noarchive directive (blocks cached copy)

Rule directives.noarchive · Indexability · 1 occurrence(s)

notice Duplicate meta description across pages

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

notice Image filename is generic/auto-generated (missed image-search signal)

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

notice Likely hero image lacks fetchpriority=high

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

  • https://girardengineering.ca/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/checkout/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/checkout/purchase-confirmation/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/civil-engineer-job/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/civil-engineering-software-review-continued/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/civil-engineering-software-review/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/contact-us/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/faqs/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/gallery/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/hello-world/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/new-engineer-hired/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/new-sign-installed/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/new-sign-installed/new-sign-jpg-1/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/ownership-announcement/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/oxford-county-structural-engineering-prices/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/sample-page/blog/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/sample-page/staff/len-girard/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/sample-page/staff/len-girard/len/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/services/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/services/two-architect-working-together-2/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/structural-engineers-must-dos/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/what-happens-in-an-engineering-inspection/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/woodstock-structural-engineer/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/woodstock-structural-engineer/structural-eng-pic/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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://girardengineering.ca/woodstock-structural-engineers-when-should-i-consult-one/ — the likely hero/LCP image (girard-eng.-logo-05.26.15.jpg) 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 · 41 occurrence(s)

notice Internal link has no anchor text / accessible name

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

notice Missing Open Graph tags

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

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

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

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

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

  • https://girardengineering.ca/ — 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://girardengineering.ca/checkout/ — 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://girardengineering.ca/checkout/purchase-confirmation/ — 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://girardengineering.ca/civil-engineer-job/ — 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://girardengineering.ca/civil-engineering-software-review-continued/ — 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://girardengineering.ca/civil-engineering-software-review/ — 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://girardengineering.ca/contact-us/ — 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://girardengineering.ca/faqs/ — 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://girardengineering.ca/gallery/ — 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://girardengineering.ca/hello-world/ — 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://girardengineering.ca/new-engineer-hired/ — 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://girardengineering.ca/new-sign-installed/ — 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://girardengineering.ca/new-sign-installed/new-sign-jpg-1/ — 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://girardengineering.ca/ownership-announcement/ — 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://girardengineering.ca/oxford-county-structural-engineering-prices/ — 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://girardengineering.ca/sample-page/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://girardengineering.ca/sample-page/staff/len-girard/ — 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://girardengineering.ca/sample-page/staff/len-girard/len/ — 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://girardengineering.ca/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://girardengineering.ca/services/two-architect-working-together-2/ — 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://girardengineering.ca/structural-engineers-must-dos/ — 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://girardengineering.ca/what-happens-in-an-engineering-inspection/ — 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://girardengineering.ca/woodstock-structural-engineer/ — 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://girardengineering.ca/woodstock-structural-engineer/structural-eng-pic/ — 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://girardengineering.ca/woodstock-structural-engineers-when-should-i-consult-one/ — 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 · 42 occurrence(s)

  • https://girardengineering.ca/ — 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://girardengineering.ca/checkout/ — 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://girardengineering.ca/checkout/purchase-confirmation/ — 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://girardengineering.ca/civil-engineer-job/ — 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://girardengineering.ca/civil-engineering-software-review-continued/ — 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://girardengineering.ca/civil-engineering-software-review/ — 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://girardengineering.ca/contact-us/ — 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://girardengineering.ca/faqs/ — 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://girardengineering.ca/gallery/ — 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://girardengineering.ca/hello-world/ — 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://girardengineering.ca/new-engineer-hired/ — 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://girardengineering.ca/new-sign-installed/ — 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://girardengineering.ca/new-sign-installed/new-sign-jpg-1/ — 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://girardengineering.ca/ownership-announcement/ — 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://girardengineering.ca/oxford-county-structural-engineering-prices/ — 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://girardengineering.ca/sample-page/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://girardengineering.ca/sample-page/staff/len-girard/ — 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://girardengineering.ca/sample-page/staff/len-girard/len/ — 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://girardengineering.ca/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://girardengineering.ca/services/two-architect-working-together-2/ — 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://girardengineering.ca/structural-engineers-must-dos/ — 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://girardengineering.ca/what-happens-in-an-engineering-inspection/ — 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://girardengineering.ca/woodstock-structural-engineer/ — 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://girardengineering.ca/woodstock-structural-engineer/structural-eng-pic/ — 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://girardengineering.ca/woodstock-structural-engineers-when-should-i-consult-one/ — 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 · 1 occurrence(s)

notice Deep page has no BreadcrumbList structured data

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

notice Deprecated schema type with no Google rich result

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

notice Missing recommended security headers

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

notice Indexable page not listed in sitemap

Rule sitemap.orphan_not_listed · Sitemap · 1 occurrence(s)

notice Uppercase letters in URL path

Rule url.uppercase · URL · 1 occurrence(s)

Pages (showing 50 of 50)
URLStatusIndexableWordsIn-links
https://girardengineering.ca/
Professional Engineers - Girard Engineering
200 yes 251 48
https://girardengineering.ca/contact-us/
Contact Us - Girard Engineering
200 yes 172 47
https://girardengineering.ca/faqs/
FAQ's - Girard Engineering
200 yes 700 47
https://girardengineering.ca/gallery/
Gallery - Girard Engineering
200 yes 129 47
https://girardengineering.ca/sample-page/blog/
Blog - Girard Engineering
200 yes 765 47
https://girardengineering.ca/sample-page/file-upload/
File Upload - Girard Engineering
200 yes 124 47
https://girardengineering.ca/sample-page/jobs/
Engineering Jobs - Girard Engineering
200 yes 596 47
https://girardengineering.ca/sample-page/staff/
Staff - Girard Engineering
200 yes 130 47
https://girardengineering.ca/sample-page/staff/drew-fallowfield/
Drew Fallowfield - Girard Engineering
200 yes 475 47
https://girardengineering.ca/sample-page/staff/len-girard/
Len Girard - Girard Engineering
200 yes 286 47
https://girardengineering.ca/services/
Services - Girard Engineering
200 yes 589 47
https://girardengineering.ca/?page_id=37
Contact Us - Girard Engineering
200 yes 172 2
https://girardengineering.ca/author/kevin/
kevin, Author at Girard Engineering
200 yes 766 17
https://girardengineering.ca/category/civil-engineering/
Civil Engineering Archives - Girard Engineering
200 yes 854 8
https://girardengineering.ca/structural-engineers-must-dos/
Structural Engineers Must Do's - Girard Engineering
200 yes 479 6
https://girardengineering.ca/new-engineer-hired/
New Civil Engineer Hired - Girard Engineering
200 yes 377 5
https://girardengineering.ca/tag/woodstock-structural-engineers/
woodstock structural engineers Archives - Girard Engineering
200 yes 269 5
https://girardengineering.ca/gallery/?page_number_0=2
Gallery - Girard Engineering
200 yes 129 1
https://girardengineering.ca/civil-engineering-software-review/
Civil Engineering Software Review - Girard Engineering
200 yes 578 4
https://girardengineering.ca/civil-engineering-software-review-continued/
Civil Engineering Software Review continued... - Girard Engineering
200 yes 590 3
https://girardengineering.ca/civil-engineer-job/
Civil Engineer Job Posting - Girard Engineering
200 yes 496 4
https://girardengineering.ca/what-happens-in-an-engineering-inspection/
What Happens In An Engineering Inspection? - Girard Engineering
200 yes 705 3
https://girardengineering.ca/woodstock-structural-engineers-when-should-i-consult-one/
Woodstock Structural Engineers: When Should I Consult One? - Girard Engineering
200 yes 609 3
https://girardengineering.ca/oxford-county-structural-engineering-prices/
Oxford County Structural Engineering Prices - Girard Engineering
200 yes 573 3
https://girardengineering.ca/author/kevin/page/2/
kevin, Author at Girard Engineering - Page 2 of 3
200 yes 1114 1
https://girardengineering.ca/woodstock-structural-engineer/
Why Do You Need A Woodstock Structural Engineer? - Girard Engineering
200 yes 569 2
https://girardengineering.ca/ownership-announcement/
Ownership Announcement - Girard Engineering
200 yes 334 2
https://girardengineering.ca/new-sign-installed/
New Sign Installed! - Girard Engineering
200 yes 231 2
https://girardengineering.ca/new-engineer-hired/george-pic-for-local-paper/
george pic for local paper - Girard Engineering
200 yes 140 1
https://girardengineering.ca/new-sign-installed/new-sign-jpg-1/
new sign.JPG-1 - Girard Engineering
200 yes 137 1
https://girardengineering.ca/services/two-architect-working-together-2/
Two Architect Working Together - Girard Engineering
200 yes 151 1
https://girardengineering.ca/woodstock-structural-engineer/structural-eng-pic/
structural eng pic - Girard Engineering
200 yes 138 1
https://girardengineering.ca/woodstock-structural-engineers-when-should-i-consult-one/structural-engineering-photo/
Woodstock Structural Engineering - Girard Engineering
200 yes 141 1
https://girardengineering.ca/bwg_gallery/structural-engineering/?page_number_0=2
Structural Engineering - Girard Engineering
200 yes 130 1
https://girardengineering.ca/open_sesame/?redirect_to=https%3A%2F%2Fgirardengineering.ca%2Fsample-page%2Fstaff%2Flen-girard%2Flen%2F%23main
Log In ‹ Girard Engineering — WordPress
200 no 18 1
https://girardengineering.ca/sample-page/staff/len-girard/len/
len - Girard Engineering
200 yes 136 1
https://girardengineering.ca/hello-world/
Structural Engineering Permits Tips and Tricks - Girard Engineering
200 yes 195 1
https://girardengineering.ca/bwg_gallery/structural-engineering/
Structural Engineering - Girard Engineering
200 yes 130 0
https://girardengineering.ca/checkout/
Checkout - Girard Engineering
200 yes 123 0
https://girardengineering.ca/checkout/purchase-confirmation/
Purchase Confirmation - Girard Engineering
200 yes 129 0
https://girardengineering.ca/checkout/purchase-history/
Purchase History - Girard Engineering
200 yes 124 0
https://girardengineering.ca/checkout/transaction-failed/
Transaction Failed - Girard Engineering
200 yes 133 0
https://girardengineering.ca/girard-eng-logo-05-26-15-2/
Page not found - Girard Engineering
404 no 141 0
https://girardengineering.ca/girard_training-pdf/
Page not found - Girard Engineering
404 no 141 0
https://girardengineering.ca/hrai_wholesalersdiv_application-pdf/
Page not found - Girard Engineering
404 no 141 0
https://girardengineering.ca/laserjet-m775-mfp-ug/
Page not found - Girard Engineering
404 no 141 0
https://girardengineering.ca/software-pic-2/
Page not found - Girard Engineering
404 no 141 0
https://girardengineering.ca/training-application/
Page not found - Girard Engineering
404 no 141 0
https://girardengineering.ca/wp-content/uploads/2016/03/george-pic-for-local-paper.jpg 200 no 0 5
https://girardengineering.ca/wp-content/uploads/photo-gallery/RHS%20Twin%20Syncronised%20hoists.JPG 200 no 0 2

Audit your own site — free

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

Scan your site →