Skip to content

Commit fe88b97

Browse files
youngminssclaude
andauthored
feat: SEO 크롤링/인덱싱 및 소셜 공유 메타데이터 강화 (#93)
* feat: SEO 크롤링/인덱싱 기본 설정 추가 - HTML lang 속성을 "en"에서 "ko"로 변경 - robots.ts 추가 (크롤러 허용, /api/ 차단, sitemap 참조) - sitemap.ts 추가 (루트 경로만 포함) - Google Search Console 인증 메타태그 추가 - metadataBase 설정으로 canonical URL 자동 생성 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * feat: 소셜 공유 메타데이터 보완 (Twitter Card, OG locale/siteName) - root layout에 twitter card: summary_large_image 설정 - 전체 layout의 openGraph에 locale(ko_KR), siteName 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 77828ba commit fe88b97

File tree

8 files changed

+46
-1
lines changed

8 files changed

+46
-1
lines changed

app/gathering/[accessKey]/landing/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ export const metadata: Metadata = {
1414
title: "함께 갈 맛집, 같이 정해요!",
1515
description: "[요기잇] 다인원을 위한 맛집 서비스",
1616
type: "website",
17+
locale: "ko_KR",
18+
siteName: "요기잇",
1719
images: [
1820
{
1921
url: "https://yogieat-statics.s3.ap-southeast-2.amazonaws.com/images/opengraph/opinion-landing-og-image.png",

app/gathering/[accessKey]/opinion/complete/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export const metadata: Metadata = {
88
title: "함께 갈 맛집, 같이 정해요!",
99
description: "[요기잇] 다인원을 위한 맛집 서비스",
1010
type: "website",
11+
locale: "ko_KR",
12+
siteName: "요기잇",
1113
images: [
1214
{
1315
url: "https://yogieat-statics.s3.ap-southeast-2.amazonaws.com/images/opengraph/opinion-complete-og-image.png",

app/gathering/[accessKey]/opinion/pending/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export const metadata: Metadata = {
88
title: "함께 갈 맛집, 같이 정해요!",
99
description: "[요기잇] 다인원을 위한 맛집 서비스",
1010
type: "website",
11+
locale: "ko_KR",
12+
siteName: "요기잇",
1113
images: [
1214
{
1315
url: "https://yogieat-statics.s3.ap-southeast-2.amazonaws.com/images/opengraph/opinion-complete-og-image.png",

app/gathering/[accessKey]/opinion/result/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export const metadata: Metadata = {
88
title: "메뉴 추천이 완료 되었어요",
99
description: "[요기잇] 추천 결과를 확인해 보세요",
1010
type: "website",
11+
locale: "ko_KR",
12+
siteName: "요기잇",
1113
images: [
1214
{
1315
url: "https://yogieat-statics.s3.ap-southeast-2.amazonaws.com/images/opengraph/opinion-result-og-image.png",

app/gathering/create/complete/[accessKey]/layout.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@ export const metadata: Metadata = {
88
title: "함께 갈 맛집, 같이 정해요!",
99
description: "[요기잇] 다인원을 위한 맛집 서비스",
1010
type: "website",
11+
locale: "ko_KR",
12+
siteName: "요기잇",
1113
images: [
1214
{
1315
url: "https://yogieat-statics.s3.ap-southeast-2.amazonaws.com/images/opengraph/gathering-create-complete-og-image.png",

app/layout.tsx

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,12 @@ const geistMono = Geist_Mono({
1414
});
1515

1616
export const metadata: Metadata = {
17+
// 모든 페이지의 OG URL, canonical URL 등이 이 도메인 기준으로 자동 생성됨
18+
metadataBase: new URL("https://yogieat.com"),
1719
title: "요기잇",
1820
description: "다인원을 위한 맛집 추천 서비스",
1921
verification: {
22+
google: "DWerIwsk8QxOFZn9w97PETIerR75SFr21Xp",
2023
other: {
2124
"naver-site-verification":
2225
"dca905378a4e205448cc02fa95930206096ac4aa",
@@ -26,6 +29,8 @@ export const metadata: Metadata = {
2629
title: "요기잇",
2730
description: "다인원을 위한 맛집 추천 서비스",
2831
type: "website",
32+
locale: "ko_KR",
33+
siteName: "요기잇",
2934
images: [
3035
{
3136
url: "https://yogieat-statics.s3.ap-southeast-2.amazonaws.com/images/opengraph/landing-og-image.png",
@@ -35,6 +40,10 @@ export const metadata: Metadata = {
3540
},
3641
],
3742
},
43+
// Twitter/X 공유 시 OG 이미지를 대형 카드로 표시 (하위 페이지도 자동 적용)
44+
twitter: {
45+
card: "summary_large_image",
46+
},
3847
};
3948

4049
export const viewport: Viewport = {
@@ -49,7 +58,7 @@ export default function RootLayout({
4958
children: React.ReactNode;
5059
}>) {
5160
return (
52-
<html lang="en" className="ygi:overflow-x-hidden">
61+
<html lang="ko" className="ygi:overflow-x-hidden">
5362
<body
5463
className={`${geistSans.variable} ${geistMono.variable} antialiased ygi:overflow-x-hidden ygi:bg-bg-website`}
5564
>

app/robots.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import type { MetadataRoute } from "next";
2+
3+
export default function robots(): MetadataRoute.Robots {
4+
return {
5+
rules: [
6+
{
7+
userAgent: "*",
8+
allow: "/",
9+
disallow: ["/api/"],
10+
},
11+
],
12+
sitemap: "https://yogieat.com/sitemap.xml",
13+
};
14+
}

app/sitemap.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import type { MetadataRoute } from "next";
2+
3+
export default function sitemap(): MetadataRoute.Sitemap {
4+
return [
5+
{
6+
url: "https://yogieat.com",
7+
lastModified: new Date(),
8+
changeFrequency: "weekly",
9+
priority: 1,
10+
},
11+
];
12+
}

0 commit comments

Comments
 (0)