[κ³ λν] SEO λΆμ ν¨λ Β· μλ νκ·Έ μ μ Β· λ°ν νμ€ν 리 κ°μ
μ€λμ μ΄λλ―Ό ν¨λμ μ½ν μΈ νμ§ κ΄λ ¨ κΈ°λ₯ μΈ κ°μ§λ₯Ό μ§μ€μ μΌλ‘ κ°μ νλ€. SEO μ μλ₯Ό μ€μκ°μΌλ‘ νμΈν μ μλ λΆμ ν¨λ, AI κΈ°λ° ν΄μνκ·Έ μλ μ μ, κ·Έλ¦¬κ³ λ°ν μ΄λ ₯μ μ’ λ νΈλ¦¬νκ² νμν μ μλ νν°Β·νμ΄μ§λ€μ΄μ κΉμ§ β λͺ¨λ λΈλ‘κ·Έ μ΄μ ν¨μ¨μ λμ΄κΈ° μν μμ μ΄λ€.
1. SEO λΆμ ν¨λ (μ€μκ°)
미리보기 νμ΄μ§(/admin/preview/[id])μ SEO λΆμ ν¨λμ μΆκ°νλ€. κΈμ μμ±νλ©΄μ μ¦κ°μ μΌλ‘ SEO μ μ(0~100μ )μ μΈλΆ μ²΄ν¬ νλͺ©μ νμΈν μ μλ€.
μ μ κ΅¬μ± (7κ° νλͺ©)
- μ λͺ© κΈΈμ΄ 20~60μ μ μ§ β 20pt
- μμ½ 50~160μ β 20pt
- λ³Έλ¬Έ 300μ μ΄μ (700μ μ΄μ λ§μ ) β 20pt
- H2 ν€λ© 1κ° μ΄μ ν¬ν¨ β 15pt
- μΈλ€μΌ μ΄λ―Έμ§ μ€μ μ¬λΆ β 10pt
- μ¬λ¬κ·Έ νμ (μμ«μΒ·νμ΄ν) μ ν¨μ± β 5pt
- ν€μλ λ°λ 0.5~3% (μ ν μ λ ₯ μ) β 10pt μ μλ 70μ μ΄μ μ΄λ‘, 50μ μ΄μ λ Έλ, λ―Έλ§ λΉ¨κ°μΌλ‘ μμμ΄ κ΅¬λΆλλ©°, ν€μλλ₯Ό μ λ ₯νμ§ μμ κ²½μ° 90μ λ§μ μ 100μ μΌλ‘ μ κ·νν΄ νμνλ€. μμ λ μ μκ°κ³Ό λ¨μ΄ μλ ν¨κ» 보μ¬μ€ κ°λ μ± νμ μ λμμ μ€λ€.
ν΅μ¬ νμΌ: lib/seo-utils.ts (μμ μ νΈ), components/admin/SeoAnalysisPanel.tsx (UI μ»΄ν¬λνΈ)
2. AI μλ νκ·Έ μ μ
미리보기 νμ΄μ§ λ©νλ°μ΄ν° μΉ΄λμ 'AI νκ·Έ μ μ' λ²νΌμ μΆκ°νλ€. λ²νΌμ λλ₯΄λ©΄ μ λͺ©Β·μμ½Β·λ³Έλ¬Έμ OpenAI gpt-4o-miniμ μ λ¬ν΄ SEOμ μμ 곡μ μ μ ν©ν νκ΅μ΄ ν΄μνκ·Έ 5~10κ°λ₯Ό μλμΌλ‘ μμ±νλ€.
μ£Όμ λμ
- POST /api/blog/suggest-tags νΈμΆ β μ΄λλ―Ό μΈμ μΈμ¦ ν AIμ ν둬ννΈ μ λ¬
- μλ΅ JSON λ°°μ΄μμ '#' κΈ°νΈλ₯Ό μ κ±°ν νκ·Έ μΉ©(chip) UIλ‘ νμ
- κ°λ³ X λ²νΌμΌλ‘ λΆνμν νκ·Έ μ κ±° κ°λ₯
- 'λ³Έλ¬Έ νλ¨μ μ½μ ' λ²νΌμΌλ‘ μλν° λ³Έλ¬Έ λμ #νκ·Έ λ¬Έμμ΄ μλ μΆκ° API νΈμΆμ withRetry()λ‘ κ°μΈ 5xxΒ·429Β·νμμμ μ€λ₯ μ μ΅λ 3ν μ¬μλνλ€. λ³Έλ¬Έμ λ§ν¬λ€μ΄μ μ κ±°ν μμ ν μ€νΈ μ΅λ 3,000μλ§ AIμ μ λ¬ν΄ λΉμ©μ μ κ°νλ€.
3. λ°ν νμ€ν 리 κ°μ
/admin/posts νμ΄μ§λ κΈ°μ‘΄μ λ¨μ λͺ©λ‘κ³Ό μ λͺ© κ²μλ§ μ 곡νλ€. κ²μλ¬Όμ΄ μμΌμλ‘ νμμ΄ λΆνΈν΄μ§λ λ¬Έμ λ₯Ό ν΄κ²°νκΈ° μν΄ μλ κΈ°λ₯μ μΆκ°νλ€.
μΆκ°λ κΈ°λ₯
- μΈμ΄ νν° (μ 체 / νκ΅μ΄ KO / μμ΄ EN): λ‘μΌμΌλ³ λΆλ¦¬ νμΈ
- κΈ°κ° νν° (μ 체 / μ΅κ·Ό 1κ°μ / 3κ°μ / 6κ°μ / 1λ ): λ μ§ λ²μ μ’νκΈ°
- νμ΄μ§λ€μ΄μ (20건/νμ΄μ§): λλ κ²μλ¬Όμμ μΎμ ν νμ
- ν€λ KO/EN μΉ΄μ΄νΈ νμ: νμ¬ νν° κ²°κ³Όμμ κ° μΈμ΄ 건μ μ€μκ° νμΈ
- 'λΈλ‘κ·Έμμ 보기' λ²νΌ: ExternalLink μμ΄μ½, μ νμΌλ‘ μ€μ λΈλ‘κ·Έ ν¬μ€νΈ λ°λ‘ μ΄κΈ° λͺ¨λ νν°λ§κ³Ό νμ΄μ§λ€μ΄μ μ ν΄λΌμ΄μΈνΈμμ useMemoλ‘ μ²λ¦¬ν΄ API μμ²μ μΆκ°νμ§ μμλ€. νν° λ³κ²½ μ νμ΄μ§ λ²νΈλ μλμΌλ‘ 1λ‘ λ¦¬μ λλ€.
λ§λ¬΄λ¦¬
μΈ κΈ°λ₯ λͺ¨λ κΈ°μ‘΄ μν€ν μ²(Next.js App Router, Notion CMS, shadcn/ui)μ μμ°μ€λ½κ² ν΅ν©λλ€. μΈλΆ λΌμ΄λΈλ¬λ¦¬ μΆκ° μμ΄ Date λ΄μ₯ APIλ‘ κΈ°κ° νν°λ₯Ό ꡬνν μ , AI νκ·Έ μ μμμ λ§ν¬λ€μ΄ μ μ ν 3,000μ μ νμΌλ‘ ν ν° λΉμ©μ κ΄λ¦¬ν μ μ΄ μμ ν¬μΈνΈμλ€.
λ€μ λ¨κ³λ‘λ SEO λΆμ κ²°κ³Όλ₯Ό Notion κ²μλ¬Ό λ©νλ°μ΄ν°μ μλ μ μ₯νκ±°λ, νκ·Έ νμ€ν 리λ₯Ό λμ ν΄ μμ£Ό μ°λ νκ·Έλ₯Ό μΆμ²νλ κΈ°λ₯μ κ³ λ €ν΄λ³Ό μ μλ€.
β¬οΈ If this helped, please click the ad below! It supports me a lot πββοΈ β¬οΈ