feat(blog): Phase 5 SEO/GEO content with 5 new blog posts
Add 5 long-form Thai blog posts (1,200-2,500 words each) with SEO + GEO optimization for the dealplustech water-systems site. Each post targets a specific audience (contractors, engineers, project managers) and follows a content-quality workflow: source real product specs, verify Thai text, dedupe images, link back to product pages. ## New blog posts (src/content/blog/) - thermobreak-guide.md (Thermobreak closed-cell insulation overview) - plastic-grilles-guide.md (ABS plastic grilles for HVAC) - ppr-pipe-guide.md (PPR pipe properties + heat-fusion welding) - ppr-vs-hdpe-vs-upvc.md (3-way pipe comparison with PE80/PE100) - thermobreak-series-guide.md (Thermobreak LS vs Solar series) - 10-things-checklist-pipe-ordering.md (10-point pre-order checklist) ## Removed legacy posts - pipe-knowledge.md, valve-guide.md, welcome-post.md (orphans) ## Hero images (public/images/blog/) ~20 product photos sourced from manufacturers (Thermobreak, Thai PPR, thaiconsupply) plus Nano Banana Pro infographics. All resized to 3:2 aspect ratio per user preference. Source folder preserved for re-derivation. ## Astro layout/SEO work - src/components/seo/SEO.astro, JsonLd.astro (new SEO components) - src/layouts/BaseLayout.astro, Layout.astro (OG/Twitter/JSON-LD wiring) - src/pages/404.astro - Product pages (8): added #pricelist anchors + schema work - src/styles/global.css: scroll-padding for sticky-header anchors ## Automation scripts (scripts/) - build_og_image.py (OG image builder) - inject_faq_schema.py, inject_product_schema.py (JSON-LD injection) ## Misc - public/robots.txt, public/images/og/default-og.jpg - .gitignore: exclude scripts/__pycache__/
This commit is contained in:
84
src/pages/404.astro
Normal file
84
src/pages/404.astro
Normal file
@@ -0,0 +1,84 @@
|
||||
---
|
||||
import BaseLayout from '@/layouts/BaseLayout.astro';
|
||||
|
||||
// 404 — noindex, friendly UI with category shortcuts.
|
||||
const popularLinks = [
|
||||
{ name: 'ท่อ PPR ไทยพีพีอาร์', slug: '/ท่อ-ppr-thai-ppr' },
|
||||
{ name: 'ท่อ HDPE', slug: '/ท่อ-hdpe' },
|
||||
{ name: 'เครื่องเชื่อม HDPE', slug: '/เครื่องเชื่อม-hdpe' },
|
||||
{ name: 'วาล์ว', slug: '/วาล์ว-valve' },
|
||||
{ name: 'ปั๊มน้ำ', slug: '/water-pump' },
|
||||
{ name: 'กริลแอร์', slug: '/grilles' },
|
||||
{ name: 'ตู้ดับเพลิง', slug: '/ตู้ดับเพลิง' },
|
||||
{ name: 'Armaflex', slug: '/armflex' },
|
||||
];
|
||||
---
|
||||
|
||||
<BaseLayout
|
||||
title="404 - ไม่พบหน้าที่ค้นหา"
|
||||
description="ขออภัย ไม่พบหน้าที่คุณกำลังมองหา กรุณาตรวจสอบ URL หรือเลือกเมนูที่ต้องการจากด้านล่าง"
|
||||
robots="noindex, nofollow"
|
||||
>
|
||||
<main class="bg-white min-h-screen flex items-center justify-center px-4 py-16">
|
||||
<div class="max-w-2xl w-full text-center">
|
||||
<!-- 404 graphic -->
|
||||
<div class="relative mb-8">
|
||||
<h1 class="text-9xl lg:text-[12rem] font-bold text-primary-600 leading-none">404</h1>
|
||||
<div class="absolute inset-0 flex items-center justify-center pointer-events-none">
|
||||
<div class="w-64 h-64 bg-primary-200 rounded-full blur-3xl opacity-30"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2 class="text-2xl lg:text-3xl font-bold text-slate-900 mb-4">ไม่พบหน้าที่ค้นหา</h2>
|
||||
<p class="text-lg text-slate-600 mb-8">
|
||||
ขออภัย หน้าที่คุณกำลังมองหาอาจถูกย้าย ลบ หรือ URL ผิดพลาด
|
||||
</p>
|
||||
|
||||
<!-- Primary CTAs -->
|
||||
<div class="flex flex-wrap justify-center gap-4 mb-12">
|
||||
<a
|
||||
href="/"
|
||||
class="inline-flex items-center gap-2 bg-accent-500 hover:bg-accent-600 text-white py-3 px-6 rounded-xl font-semibold transition-all hover:shadow-xl"
|
||||
>
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 12l2-2m0 0l7-7 7 7M5 10v10a1 1 0 001 1h3m10-11l2 2m-2-2v10a1 1 0 01-1 1h-3m-6 0a1 1 0 001-1v-4a1 1 0 011-1h2a1 1 0 011 1v4a1 1 0 001 1m-6 0h6" />
|
||||
</svg>
|
||||
กลับหน้าแรก
|
||||
</a>
|
||||
<a
|
||||
href="/all-products"
|
||||
class="inline-flex items-center gap-2 bg-white border-2 border-primary-600 text-primary-700 hover:bg-primary-50 py-3 px-6 rounded-xl font-semibold transition-all"
|
||||
>
|
||||
<svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6h16M4 10h16M4 14h16M4 18h16" />
|
||||
</svg>
|
||||
ดูสินค้าทั้งหมด
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- Popular links -->
|
||||
<div class="bg-neutral-50 rounded-2xl p-8 text-left">
|
||||
<h3 class="text-sm font-semibold text-slate-500 uppercase tracking-wider mb-4 text-center">
|
||||
หรือเลือกหมวดหมู่ยอดนิยม
|
||||
</h3>
|
||||
<div class="grid grid-cols-2 md:grid-cols-4 gap-3">
|
||||
{popularLinks.map((link) => (
|
||||
<a
|
||||
href={link.slug}
|
||||
class="block bg-white px-4 py-3 rounded-lg text-sm text-slate-700 hover:text-primary-700 hover:shadow-md transition-all text-center"
|
||||
>
|
||||
{link.name}
|
||||
</a>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Contact hint -->
|
||||
<p class="mt-8 text-sm text-slate-500">
|
||||
ต้องการความช่วยเหลือ?
|
||||
<a href="/contact-us" class="text-primary-600 hover:underline font-medium">ติดต่อเรา</a>
|
||||
หรือโทร 090-555-1415
|
||||
</p>
|
||||
</div>
|
||||
</main>
|
||||
</BaseLayout>
|
||||
Reference in New Issue
Block a user