feat: SEO 메타데이터 전 페이지 적용 + CTA 텍스트 통일
SEO 메타데이터: - app/layout.tsx: title 템플릿, OG/Twitter 메타, robots 추가 - app/freelance/layout.tsx: 외주 개발 전용 메타 (납기 패널티 키워드) - app/saju/layout.tsx: AI 사주 분석 메타 - app/services/lotto/layout.tsx: 로또 번호 추천 메타 - app/services/stock/layout.tsx: 주식 자동 매매 메타 - app/services/automation/layout.tsx: 업무 자동화 메타 - app/services/prompt/layout.tsx: 프롬프트 엔지니어링 메타 - app/services/website/layout.tsx: 홈페이지 제작 메타 - app/services/automation/tools/scraper/layout.tsx: 웹 크롤러 메타 - app/services/automation/tools/ppt/layout.tsx: PPT 자동화 메타 CTA 텍스트 통일: - 주식: "시스템 확인 후 상담 신청 →" → "무료 상담 신청 →" - 프롬프트: "견적 문의" → "무료 상담 신청", "프롬프트 설계 신청 →" → "무료 상담 신청 →" - 자동화: "견적 문의" → "무료 상담 신청" Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
27
app/services/automation/layout.tsx
Normal file
27
app/services/automation/layout.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '업무 자동화 개발',
|
||||
description:
|
||||
'엑셀 자동화, 웹 스크래핑, 이메일 자동 발송, RPA, 텔레그램 봇 개발. 반복 업무를 자동화하여 시간을 절약하세요. 단순 자동화 5만 원~, 1개월 무상 AS.',
|
||||
keywords: [
|
||||
'업무 자동화',
|
||||
'RPA',
|
||||
'엑셀 자동화',
|
||||
'웹 스크래핑',
|
||||
'텔레그램 봇',
|
||||
'이메일 자동화',
|
||||
'반복업무 자동화',
|
||||
'파이썬 자동화',
|
||||
],
|
||||
openGraph: {
|
||||
title: '업무 자동화 개발 | 쟁승메이드',
|
||||
description:
|
||||
'RPA·엑셀·스크래핑·텔레그램 봇. 단순 자동화 5만 원~, 1개월 무상 AS, 계약서 포함.',
|
||||
url: 'https://jaengseung-made.com/services/automation',
|
||||
},
|
||||
};
|
||||
|
||||
export default function AutomationLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
@@ -241,7 +241,7 @@ export default function AutomationPage() {
|
||||
plan.highlight ? 'bg-cyan-400 text-[#012030] hover:bg-cyan-300' : 'bg-[#04102b] text-white hover:bg-[#0a1f5c]'
|
||||
}`}
|
||||
>
|
||||
견적 문의
|
||||
무료 상담 신청
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
|
||||
25
app/services/automation/tools/ppt/layout.tsx
Normal file
25
app/services/automation/tools/ppt/layout.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: 'PPT 제작 자동화 도구',
|
||||
description:
|
||||
'엑셀 데이터로 PPT를 자동 생성하는 Python 스크립트. 표지·내용·마무리 슬라이드 자동 구성, 색상 테마 커스터마이징. python-pptx 기반. 무료 다운로드.',
|
||||
keywords: [
|
||||
'PPT 자동화',
|
||||
'파워포인트 자동 생성',
|
||||
'python-pptx',
|
||||
'PPT 제작 도구',
|
||||
'엑셀 PPT 변환',
|
||||
'프레젠테이션 자동화',
|
||||
'무료 PPT 도구',
|
||||
],
|
||||
openGraph: {
|
||||
title: 'PPT 제작 자동화 도구 | 쟁승메이드',
|
||||
description: 'Python + python-pptx 기반 PPT 자동 생성 도구 무료 다운로드. 엑셀 연동 지원.',
|
||||
url: 'https://jaengseung-made.com/services/automation/tools/ppt',
|
||||
},
|
||||
};
|
||||
|
||||
export default function PptLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
25
app/services/automation/tools/scraper/layout.tsx
Normal file
25
app/services/automation/tools/scraper/layout.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '웹 크롤링·스크래핑 도구',
|
||||
description:
|
||||
'공공데이터·쇼핑몰 가격·뉴스를 자동 수집해 엑셀로 저장하는 Python 웹 스크래퍼. requests + BeautifulSoup4 + openpyxl 기반. 무료 다운로드.',
|
||||
keywords: [
|
||||
'웹 크롤링',
|
||||
'웹 스크래핑',
|
||||
'파이썬 크롤러',
|
||||
'데이터 수집 자동화',
|
||||
'BeautifulSoup',
|
||||
'엑셀 자동화',
|
||||
'무료 크롤러',
|
||||
],
|
||||
openGraph: {
|
||||
title: '웹 크롤링 자동화 도구 | 쟁승메이드',
|
||||
description: 'Python 기반 웹 크롤러 무료 다운로드. 페이지네이션·재시도·엑셀 저장 지원.',
|
||||
url: 'https://jaengseung-made.com/services/automation/tools/scraper',
|
||||
},
|
||||
};
|
||||
|
||||
export default function ScraperLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
25
app/services/lotto/layout.tsx
Normal file
25
app/services/lotto/layout.tsx
Normal file
@@ -0,0 +1,25 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '로또 번호 추천',
|
||||
description:
|
||||
'1,100+회차 빅데이터 기반 로또 번호 분석. 핫/콜드 번호 통계, 몬테카를로 시뮬레이션으로 매주 최적 번호 조합을 제공합니다. 월 900원부터 구독.',
|
||||
keywords: [
|
||||
'로또 번호 추천',
|
||||
'로또 번호 분석',
|
||||
'로또 빅데이터',
|
||||
'로또 통계',
|
||||
'로또 번호 생성',
|
||||
'핫넘버 콜드넘버',
|
||||
],
|
||||
openGraph: {
|
||||
title: '로또 번호 추천 서비스 | 쟁승메이드',
|
||||
description:
|
||||
'1,100+회차 데이터 분석 · 월 900원 구독 · 이메일/텔레그램 자동 발송.',
|
||||
url: 'https://jaengseung-made.com/services/lotto',
|
||||
},
|
||||
};
|
||||
|
||||
export default function LottoLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
26
app/services/prompt/layout.tsx
Normal file
26
app/services/prompt/layout.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '프롬프트 엔지니어링',
|
||||
description:
|
||||
'ChatGPT·Claude·Gemini에 최적화된 업무 특화 프롬프트 설계. 반복 업무를 AI로 자동화하는 프롬프트 라이브러리 제공. 건당 30,000원~.',
|
||||
keywords: [
|
||||
'프롬프트 엔지니어링',
|
||||
'ChatGPT 프롬프트',
|
||||
'Claude 프롬프트',
|
||||
'AI 프롬프트',
|
||||
'업무 AI 자동화',
|
||||
'프롬프트 최적화',
|
||||
'프롬프트 설계',
|
||||
],
|
||||
openGraph: {
|
||||
title: '프롬프트 엔지니어링 | 쟁승메이드',
|
||||
description:
|
||||
'ChatGPT·Claude 업무 특화 프롬프트 설계. 건당 30,000원~, 납품 후 사용 교육 포함.',
|
||||
url: 'https://jaengseung-made.com/services/prompt',
|
||||
},
|
||||
};
|
||||
|
||||
export default function PromptLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
@@ -235,7 +235,7 @@ export default function PromptPage() {
|
||||
plan.highlight ? 'bg-violet-400 text-[#0d0a2e] hover:bg-violet-300' : 'bg-[#04102b] text-white hover:bg-[#0a1f5c]'
|
||||
}`}
|
||||
>
|
||||
견적 문의
|
||||
무료 상담 신청
|
||||
</button>
|
||||
</div>
|
||||
))}
|
||||
@@ -254,7 +254,7 @@ export default function PromptPage() {
|
||||
onClick={() => openModal('프롬프트 엔지니어링')}
|
||||
className="inline-flex items-center gap-2 bg-violet-400 hover:bg-violet-300 text-[#0d0a2e] px-8 py-3 rounded-xl font-extrabold text-sm transition-all shadow-lg shadow-violet-900/30"
|
||||
>
|
||||
프롬프트 설계 신청 →
|
||||
무료 상담 신청 →
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
26
app/services/stock/layout.tsx
Normal file
26
app/services/stock/layout.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '주식 자동 매매 프로그램',
|
||||
description:
|
||||
'NAS 서버에서 직접 운영 중인 주식 자동 매매 시스템. RSI·MACD·볼린저밴드 기반 매매 신호를 텔레그램으로 수신하고 자동 매수·매도합니다. 키움·한국투자 연동.',
|
||||
keywords: [
|
||||
'주식 자동 매매',
|
||||
'알고트레이딩',
|
||||
'주식 자동화',
|
||||
'텔레그램 주식 알림',
|
||||
'키움 자동매매',
|
||||
'주식 프로그램',
|
||||
'RSI 매매',
|
||||
],
|
||||
openGraph: {
|
||||
title: '주식 자동 매매 프로그램 | 쟁승메이드',
|
||||
description:
|
||||
'직접 운영 중인 알고트레이딩 시스템. 텔레그램 연동 · 자동 매수매도 · 설치 49,000원~.',
|
||||
url: 'https://jaengseung-made.com/services/stock',
|
||||
},
|
||||
};
|
||||
|
||||
export default function StockLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
@@ -267,7 +267,7 @@ export default function StockPage() {
|
||||
onClick={() => openModal('주식 자동 매매')}
|
||||
className="inline-flex items-center gap-2 bg-emerald-400 hover:bg-emerald-300 text-[#011225] px-8 py-3 rounded-xl font-extrabold text-sm transition-all shadow-lg shadow-emerald-900/30"
|
||||
>
|
||||
시스템 확인 후 상담 신청 →
|
||||
무료 상담 신청 →
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
27
app/services/website/layout.tsx
Normal file
27
app/services/website/layout.tsx
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { Metadata } from 'next';
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: '홈페이지·웹사이트 제작',
|
||||
description:
|
||||
'기업 홈페이지, 쇼핑몰, SaaS, 포트폴리오까지 반응형 웹사이트 제작. 디자인부터 배포까지 원스톱. 스타터 20만 원~, 계약서 포함, 3개월 유지보수.',
|
||||
keywords: [
|
||||
'홈페이지 제작',
|
||||
'웹사이트 제작',
|
||||
'쇼핑몰 제작',
|
||||
'반응형 웹',
|
||||
'Next.js 개발',
|
||||
'기업 홈페이지',
|
||||
'랜딩페이지 제작',
|
||||
'SEO 최적화',
|
||||
],
|
||||
openGraph: {
|
||||
title: '홈페이지·웹사이트 제작 | 쟁승메이드',
|
||||
description:
|
||||
'기업·쇼핑몰·포트폴리오 웹사이트 제작. 스타터 20만 원~, 반응형 디자인, 계약서 포함.',
|
||||
url: 'https://jaengseung-made.com/services/website',
|
||||
},
|
||||
};
|
||||
|
||||
export default function WebsiteLayout({ children }: { children: React.ReactNode }) {
|
||||
return children;
|
||||
}
|
||||
Reference in New Issue
Block a user