mirror of
https://github.com/Sea-Haven-Industries/seahaven-site.git
synced 2026-10-06 05:11:58 +00:00
Add 404 page, font preloading, JSON-LD schema, and reCAPTCHA badge fix
- Add custom 404.html page with branded design - Preload Google Fonts stylesheet on all 9 pages for faster rendering - Add LocalBusiness JSON-LD structured data on homepage for SEO - Hide reCAPTCHA v3 floating badge on form pages and add required Google attribution text in footer Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
3a9bcc59ce
commit
a208794404
10 changed files with 122 additions and 0 deletions
80
404.html
Normal file
80
404.html
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Page Not Found — Sea Haven Industries</title>
|
||||
<meta name="robots" content="noindex, nofollow">
|
||||
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/assets/images/favicon-32.png">
|
||||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
:root {
|
||||
--rose: #cc3366;
|
||||
--rose-dark: #a82a54;
|
||||
--ink: #1a1814;
|
||||
--text: #333;
|
||||
--text-muted: #6b7280;
|
||||
--font-display: 'DM Serif Display', Georgia, serif;
|
||||
--font-body: 'Inter', system-ui, sans-serif;
|
||||
}
|
||||
body {
|
||||
font-family: var(--font-body);
|
||||
color: var(--text);
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
text-align: center;
|
||||
padding: 2rem;
|
||||
background: #fafaf8;
|
||||
}
|
||||
.error-code {
|
||||
font-family: var(--font-display);
|
||||
font-size: clamp(5rem, 15vw, 10rem);
|
||||
color: var(--rose);
|
||||
line-height: 1;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
h1 {
|
||||
font-family: var(--font-display);
|
||||
font-size: clamp(1.5rem, 4vw, 2rem);
|
||||
color: var(--ink);
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
p {
|
||||
color: var(--text-muted);
|
||||
font-size: 1.05rem;
|
||||
max-width: 480px;
|
||||
margin-bottom: 2rem;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.btn {
|
||||
display: inline-block;
|
||||
background: var(--rose);
|
||||
color: #fff;
|
||||
padding: 0.85rem 2rem;
|
||||
border-radius: 4px;
|
||||
text-decoration: none;
|
||||
font-weight: 600;
|
||||
font-size: 0.95rem;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.btn:hover { background: var(--rose-dark); }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div class="error-code">404</div>
|
||||
<h1>Page Not Found</h1>
|
||||
<p>The page you're looking for doesn't exist or has been moved. Let's get you back on track.</p>
|
||||
<a href="/" class="btn">Back to Homepage</a>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -19,6 +19,7 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -19,9 +19,11 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
.grecaptcha-badge { visibility: hidden; }
|
||||
/* ── Reset & Tokens ── */
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
|
|
@ -634,6 +636,7 @@
|
|||
<li><a href="/terms-of-service/">Terms of Service</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p style="color: rgba(255,255,255,0.35); font-size: 0.75rem; margin-top: 0.75rem;">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" style="color: rgba(255,255,255,0.45);">Privacy Policy</a> and <a href="https://policies.google.com/terms" style="color: rgba(255,255,255,0.45);">Terms of Service</a> apply.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
|
|
|||
28
index.html
28
index.html
|
|
@ -19,6 +19,7 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
|
|
@ -1234,5 +1235,32 @@
|
|||
a.addEventListener('click', () => mobileMenu.classList.remove('open'));
|
||||
});
|
||||
</script>
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "LocalBusiness",
|
||||
"name": "Sea Haven Industries",
|
||||
"description": "Construction and facilities services company specializing in electrical, plumbing, HVACR, handyman, and garage door services.",
|
||||
"url": "https://seahaven.com",
|
||||
"telephone": "+16317765102",
|
||||
"email": "work-orders@seahaven.com",
|
||||
"address": {
|
||||
"@type": "PostalAddress",
|
||||
"streetAddress": "710 Koehler Ave",
|
||||
"addressLocality": "Ronkonkoma",
|
||||
"addressRegion": "NY",
|
||||
"postalCode": "11779",
|
||||
"addressCountry": "US"
|
||||
},
|
||||
"image": "https://seahaven.com/assets/images/seahaven-logo-nav-new.png",
|
||||
"numberOfEmployees": {
|
||||
"@type": "QuantitativeValue",
|
||||
"minValue": 120
|
||||
},
|
||||
"foundingDate": "2006",
|
||||
"serviceType": ["Electrical Work", "Plumbing", "HVACR Services", "Handyman Services", "Garage Door Repair"]
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
|||
|
|
@ -19,9 +19,11 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
.grecaptcha-badge { visibility: hidden; }
|
||||
/* ── Reset & Tokens ── */
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
|
|
@ -723,6 +725,7 @@
|
|||
<li><a href="/terms-of-service/">Terms of Service</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p style="color: rgba(255,255,255,0.35); font-size: 0.75rem; margin-top: 0.75rem;">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" style="color: rgba(255,255,255,0.45);">Privacy Policy</a> and <a href="https://policies.google.com/terms" style="color: rgba(255,255,255,0.45);">Terms of Service</a> apply.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -19,9 +19,11 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
.grecaptcha-badge { visibility: hidden; }
|
||||
/* ── Reset & Tokens ── */
|
||||
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
||||
|
||||
|
|
@ -756,6 +758,7 @@
|
|||
<li><a href="/terms-of-service/">Terms of Service</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<p style="color: rgba(255,255,255,0.35); font-size: 0.75rem; margin-top: 0.75rem;">This site is protected by reCAPTCHA and the Google <a href="https://policies.google.com/privacy" style="color: rgba(255,255,255,0.45);">Privacy Policy</a> and <a href="https://policies.google.com/terms" style="color: rgba(255,255,255,0.45);">Terms of Service</a> apply.</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@
|
|||
<link rel="apple-touch-icon" sizes="192x192" href="/assets/images/favicon-192.png">
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload" as="style" href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap">
|
||||
<link href="https://fonts.googleapis.com/css2?family=DM+Serif+Display:ital@0;1&family=Inter:wght@300;400;500;600&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue