--- id: wiki-2026-0508-seo-중심의-마케팅-및-블로그-사이트-구축 title: SEO 중심의 마케팅 및 블로그 사이트 구축 category: 10_Wiki/Topics status: verified canonical_id: self aliases: [seo-marketing-site, blog-site-construction] duplicate_of: none source_trust_level: A confidence_score: 0.9 verification_status: applied tags: [seo, marketing-site, blog, ssg, frontend, next-js, astro] raw_sources: [] last_reinforced: 2026-05-10 github_commit: pending tech_stack: language: typescript framework: astro-next-js --- # SEO 중심의 마케팅 및 블로그 사이트 구축 ## 매 한 줄 > **"매 organic search 의 의 LCP < 2.5s + crawlability + structured data + content velocity 의 four-pillar 의 site architecture."**. 2026 의 의 SEO-first build 의 의 default stack 의 Astro / Next.js (SSG) + MDX content + Schema.org JSON-LD + Core Web Vitals optimization — 매 GEO (Generative Engine Optimization, AI overview) 의 등장 의 의 traditional SEO 의 augment. ## 매 핵심 ### 매 4-pillar 1. **Crawlability**: server-rendered HTML, sitemap, robots.txt, canonical URLs, hreflang. 2. **Performance**: LCP < 2.5s, INP < 200ms, CLS < 0.1 — Core Web Vitals 의 ranking factor. 3. **Content**: depth, freshness, E-E-A-T (Experience, Expertise, Authoritativeness, Trust). 4. **Structure**: Schema.org JSON-LD, OpenGraph, semantic HTML, internal linking. ### 매 stack 선택 - **Astro**: content-heavy, Islands architecture, minimal JS — best LCP. - **Next.js (App Router, SSG mode)**: hybrid 가능, MDX support, vast ecosystem. - **Hugo / 11ty**: pure SSG, sub-second build, no JS runtime. - **WordPress (headless)**: editorial workflow + Astro/Next frontend. ### 매 2026 GEO consideration - AI overview (Google SGE, Perplexity, ChatGPT search) 의 citation 의 desired — clear `

`, summary paragraph, bulleted facts, schema markup. - LLM-friendly: clean semantic HTML, llms.txt 의 publishing. ### 매 응용 1. SaaS marketing site (homepage + features + pricing + blog). 2. Tech blog with MDX + code highlighting. 3. Documentation site (Mintlify, Nextra, Starlight). 4. Local business + multi-region landing pages. ## 💻 패턴 ### Astro 의 blog setup ```astro --- // src/pages/blog/[slug].astro import { getCollection } from 'astro:content'; import Layout from '@/layouts/Article.astro'; export async function getStaticPaths() { const posts = await getCollection('blog'); return posts.map((post) => ({ params: { slug: post.slug }, props: { post } })); } const { post } = Astro.props; const { Content } = await post.render(); ---

{post.data.title}

``` ### JSON-LD (Article schema) ```tsx // components/ArticleSchema.tsx export function ArticleSchema({ post }: { post: Post }) { return (