mirror of
https://github.com/Sea-Haven-Industries/seahaven-site.git
synced 2026-09-30 06:33:16 +00:00
feat(seo): BreadcrumbList on interior pages + richer LocalBusiness
Add a breadcrumb-ld partial (rendered from breadcrumbName/breadcrumbParent front-matter) emitting BreadcrumbList JSON-LD on all 11 interior pages (3-level on the job pages). Enrich homepage LocalBusiness with geo, areaServed (US), and hasMap. NOTE: geo coords are approximate (Ronkonkoma ZIP) — set precisely from the Google Business Profile; openingHours and sameAs omitted pending real hours + non-placeholder social URLs.
This commit is contained in:
parent
999249c0fe
commit
381f6b6dce
15 changed files with 44 additions and 0 deletions
|
|
@ -21,6 +21,9 @@ module.exports = function (eleventyConfig) {
|
||||||
// Current year, for the footer (replaces the deprecated document.write pattern).
|
// Current year, for the footer (replaces the deprecated document.write pattern).
|
||||||
eleventyConfig.addShortcode("year", () => `${new Date().getFullYear()}`);
|
eleventyConfig.addShortcode("year", () => `${new Date().getFullYear()}`);
|
||||||
|
|
||||||
|
// JSON-encode a value (for safely emitting strings into JSON-LD).
|
||||||
|
eleventyConfig.addFilter("json", (v) => JSON.stringify(v));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
dir: { input: ".", includes: "_includes", data: "_data", output: "_site" },
|
dir: { input: ".", includes: "_includes", data: "_data", output: "_site" },
|
||||||
templateFormats: ["njk"],
|
templateFormats: ["njk"],
|
||||||
|
|
|
||||||
|
|
@ -50,6 +50,10 @@
|
||||||
|
|
||||||
{% include "footer.njk" %}
|
{% include "footer.njk" %}
|
||||||
|
|
||||||
|
{%- if breadcrumbName %}
|
||||||
|
{% include "breadcrumb-ld.njk" %}
|
||||||
|
{%- endif %}
|
||||||
|
|
||||||
<script src="/assets/js/nav.js" defer></script>
|
<script src="/assets/js/nav.js" defer></script>
|
||||||
{%- if recaptcha %}
|
{%- if recaptcha %}
|
||||||
<script src="/assets/js/form.js" defer></script>
|
<script src="/assets/js/form.js" defer></script>
|
||||||
|
|
|
||||||
13
_includes/breadcrumb-ld.njk
Normal file
13
_includes/breadcrumb-ld.njk
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
<script type="application/ld+json">
|
||||||
|
{
|
||||||
|
"@context": "https://schema.org",
|
||||||
|
"@type": "BreadcrumbList",
|
||||||
|
"itemListElement": [
|
||||||
|
{ "@type": "ListItem", "position": 1, "name": "Home", "item": "{{ site.url }}/" }
|
||||||
|
{%- if breadcrumbParent %},
|
||||||
|
{ "@type": "ListItem", "position": 2, "name": {{ breadcrumbParent.name | json | safe }}, "item": "{{ site.url }}{{ breadcrumbParent.url }}" }
|
||||||
|
{%- endif %},
|
||||||
|
{ "@type": "ListItem", "position": {{ 3 if breadcrumbParent else 2 }}, "name": {{ breadcrumbName | json | safe }}, "item": "{{ site.url }}{{ page.url }}" }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
@ -3,6 +3,7 @@ layout: base.njk
|
||||||
title: "About — Sea Haven Industries"
|
title: "About — Sea Haven Industries"
|
||||||
description: "Learn about Sea Haven Industries — your trusted partner in construction with 20 years of experience, expert technicians, and a commitment to excellence."
|
description: "Learn about Sea Haven Industries — your trusted partner in construction with 20 years of experience, expert technicians, and a commitment to excellence."
|
||||||
pageCss: about
|
pageCss: about
|
||||||
|
breadcrumbName: "About"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ title: "Dispatcher — Sea Haven Industries"
|
||||||
description: "Apply for the Dispatcher position at Sea Haven Industries. View job details and submit your application today."
|
description: "Apply for the Dispatcher position at Sea Haven Industries. View job details and submit your application today."
|
||||||
pageCss: jobs
|
pageCss: jobs
|
||||||
recaptcha: true
|
recaptcha: true
|
||||||
|
breadcrumbName: "Dispatcher"
|
||||||
|
breadcrumbParent: { name: "Careers", url: "/careers/" }
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ layout: base.njk
|
||||||
title: "Careers — Sea Haven Industries"
|
title: "Careers — Sea Haven Industries"
|
||||||
description: "Join the Sea Haven Industries team. Explore careers opportunities and grow with a company committed to staff development and excellence in construction."
|
description: "Join the Sea Haven Industries team. Explore careers opportunities and grow with a company committed to staff development and excellence in construction."
|
||||||
pageCss: careers
|
pageCss: careers
|
||||||
|
breadcrumbName: "Careers"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero careers-hero">
|
<section class="page-hero careers-hero">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ title: "Scheduling Coordinator — Sea Haven Industries"
|
||||||
description: "Apply for the Scheduling Coordinator position at Sea Haven Industries. View job details and submit your application today."
|
description: "Apply for the Scheduling Coordinator position at Sea Haven Industries. View job details and submit your application today."
|
||||||
pageCss: jobs
|
pageCss: jobs
|
||||||
recaptcha: true
|
recaptcha: true
|
||||||
|
breadcrumbName: "Scheduling Coordinator"
|
||||||
|
breadcrumbParent: { name: "Careers", url: "/careers/" }
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ title: "Traveling Maintenance/Electrical Assistant — Sea Haven Industries"
|
||||||
description: "Apply for the Traveling Maintenance/Electrical Assistant position at Sea Haven Industries. View job details and submit your application today."
|
description: "Apply for the Traveling Maintenance/Electrical Assistant position at Sea Haven Industries. View job details and submit your application today."
|
||||||
pageCss: jobs
|
pageCss: jobs
|
||||||
recaptcha: true
|
recaptcha: true
|
||||||
|
breadcrumbName: "Traveling Maintenance / Electrical Assistant"
|
||||||
|
breadcrumbParent: { name: "Careers", url: "/careers/" }
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ title: "Contact — Sea Haven Industries"
|
||||||
description: "Get in touch with Sea Haven Industries. Have a question or project idea? Contact us today to discuss your construction and facilities needs."
|
description: "Get in touch with Sea Haven Industries. Have a question or project idea? Contact us today to discuss your construction and facilities needs."
|
||||||
pageCss: contact
|
pageCss: contact
|
||||||
recaptcha: true
|
recaptcha: true
|
||||||
|
breadcrumbName: "Contact Us"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ title: "End User License Agreement — Sea Haven Industries"
|
||||||
description: "End User License Agreement for Sea Haven Industries QuickBooks application."
|
description: "End User License Agreement for Sea Haven Industries QuickBooks application."
|
||||||
pageCss: legal
|
pageCss: legal
|
||||||
robots: "noindex, nofollow"
|
robots: "noindex, nofollow"
|
||||||
|
breadcrumbName: "End User License Agreement"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
10
index.njk
10
index.njk
|
|
@ -307,6 +307,16 @@ permalink: /index.html
|
||||||
"minValue": 120
|
"minValue": 120
|
||||||
},
|
},
|
||||||
"foundingDate": "2006",
|
"foundingDate": "2006",
|
||||||
|
"geo": {
|
||||||
|
"@type": "GeoCoordinates",
|
||||||
|
"latitude": 40.8126,
|
||||||
|
"longitude": -73.1124
|
||||||
|
},
|
||||||
|
"areaServed": {
|
||||||
|
"@type": "Country",
|
||||||
|
"name": "United States"
|
||||||
|
},
|
||||||
|
"hasMap": "https://www.google.com/maps/search/?api=1&query=710+Koehler+Ave+Ronkonkoma+NY+11779",
|
||||||
"serviceType": ["Electrical Work", "Plumbing", "HVACR Services", "Handyman Services", "Garage Door Repair"]
|
"serviceType": ["Electrical Work", "Plumbing", "HVACR Services", "Handyman Services", "Garage Door Repair"]
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ layout: base.njk
|
||||||
title: "Privacy Policy — Sea Haven Industries"
|
title: "Privacy Policy — Sea Haven Industries"
|
||||||
description: "Privacy Policy for Sea Haven Industries. Learn how we collect, use, and protect your personal information."
|
description: "Privacy Policy for Sea Haven Industries. Learn how we collect, use, and protect your personal information."
|
||||||
pageCss: legal
|
pageCss: legal
|
||||||
|
breadcrumbName: "Privacy Policy"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ title: "Services — Sea Haven Industries"
|
||||||
description: "Sea Haven Industries offers reliable electrical, plumbing, HVAC, handyman, and garage door repair services for every need."
|
description: "Sea Haven Industries offers reliable electrical, plumbing, HVAC, handyman, and garage door repair services for every need."
|
||||||
pageCss: services
|
pageCss: services
|
||||||
recaptcha: true
|
recaptcha: true
|
||||||
|
breadcrumbName: "Services"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ layout: base.njk
|
||||||
title: "Social Accountability — Sea Haven Industries"
|
title: "Social Accountability — Sea Haven Industries"
|
||||||
description: "Learn about Sea Haven Industries' commitment to social accountability and responsible business practices in the construction industry."
|
description: "Learn about Sea Haven Industries' commitment to social accountability and responsible business practices in the construction industry."
|
||||||
pageCss: social
|
pageCss: social
|
||||||
|
breadcrumbName: "Social Accountability"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ layout: base.njk
|
||||||
title: "Terms of Service — Sea Haven Industries"
|
title: "Terms of Service — Sea Haven Industries"
|
||||||
description: "Terms of Service for Sea Haven Industries. Review the terms and conditions governing your use of the Sea Haven Industries website."
|
description: "Terms of Service for Sea Haven Industries. Review the terms and conditions governing your use of the Sea Haven Industries website."
|
||||||
pageCss: legal
|
pageCss: legal
|
||||||
|
breadcrumbName: "Terms of Service"
|
||||||
---
|
---
|
||||||
<!-- ── Page Hero ── -->
|
<!-- ── Page Hero ── -->
|
||||||
<section class="page-hero">
|
<section class="page-hero">
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue