Insights / 기술 해설
SEO 개선 가이드: Astro 사이트에 구조화 데이터와 OGP 구현하기
Astro + Cloudflare Pages 사이트에서 JSON-LD 구조화 데이터, OGP, 사이트맵, RSS를 올바르게 구현하는 단계별 가이드. Google 리치 결과 지원부터 RSS 피드 최적화까지 실전 SEO 개선을 다룹니다.

구현된 구조화 데이터
Organization
검색 결과에 회사명, URL, 로고, 연락처를 표시합니다.
BlogPosting
저자, 게재일, 업데이트일, 이미지가 포함된 글에 대한 리치 결과를 활성화합니다.
BreadcrumbList
모든 페이지의 계층 구조를 브레드크럼 리스트로 출력합니다.
FAQPage
FAQ를 기계가 읽을 수 있게 표시합니다. 일반 사이트의 Google FAQ 리치 결과는 드뭅니다.
WebPage / ContactPage
최상위 페이지와 문의 페이지에 전용 타입을 지정합니다.
SearchAction
Google은 2024년 사이트링크 검색창을 종료했습니다. 검색 기능은 사이트 안에서 제공합니다.
목차
Astro SEO 구현은 대표 글의 생성 HTML에서 title, description, canonical과 화면 내용에 맞는 JSON-LD를 확인하는 것부터 시작하세요. Google: Structured Data에 따라 필수 필드를 검증하고 공개 후 Search Console을 확인하세요. 문법이 올바르더라도 리치 결과나 검색 순위는 보장되지 않습니다.
2026년 9월 업데이트: Google은 2024년 11월 검색 결과의 사이트링크 검색창을 종료했습니다. FAQ 리치 결과는 대체로 권위 있는 정부·의료 사이트로 제한되며 Google은 사이트맵의
changefreq와priority를 사용하지 않습니다. 이 2026년 3월 구현 기록은 검색창 변경, FAQ 변경, 사이트맵 안내와 함께 읽으세요.
서론
SEO라 하면 “키워드 채우기”를 떠올리는 분도 있지만, 현대 SEO는 기본적으로 사이트의 구조와 콘텐츠를 검색 엔진에 정확하게 전달하는 것입니다.
이 글에서는 Astro 사이트에서 구현해야 할 SEO 시책을 네 가지 카테고리로 나누어 설명합니다. 각각 한 번 설정하면 지속적으로 효과를 발휘합니다.
OGP 및 메타 태그 설정
OGP와 메타 태그는 소셜 미디어에서 공유될 때의 외관과 검색 엔진에 대한 정보 전달을 담당합니다.
기본 메타 태그
Astro 레이아웃 컴포넌트에서 각 페이지에 다음을 출력합니다:
og:title/og:description/og:image— 소셜 미디어에서 공유 시 제목, 설명, 이미지twitter:card=summary_large_image— X(Twitter)에서 큰 이미지 카드 표시rel="canonical"— 중복 페이지의 정규 URL 지정rel="prev"/rel="next"— 페이지네이션 관계 표시
블로그 글 메타 태그
글 페이지에는 다음 태그를 추가로 설정합니다:
article:published_time/article:modified_time— 게재일 및 업데이트일article:tag— 글 태그 정보article:section— 콘텐츠 카테고리
구현 팁
레이아웃 컴포넌트에서 title / description / image를 prop으로 받아 각 페이지에서 전달하면, 모든 페이지에서 일관된 메타 태그 출력을 보장할 수 있습니다. 홈페이지의 og:title에는 단순히 “홈”이 아닌 사이트명과 태그라인을 포함한 구체적인 제목을 사용합니다.
구조화 데이터(JSON-LD) 구현
구조화 데이터는 검색 엔진이 페이지 콘텐츠를 기계적으로 이해할 수 있도록 하는 메커니즘입니다. 올바르게 구현하면 검색 결과에 리치 결과(FAQ, 브레드크럼, 저자 정보 등)가 표시될 수 있습니다.
Organization
회사 정보를 Google에 전달합니다. 지식 패널에 표시될 수 있습니다.
{
"@type": "Organization",
"name": "Acecore",
"url": "https://acecore.net",
"logo": "https://acecore.net/logo.png",
"contactPoint": { "@type": "ContactPoint", "telephone": "..." }
}
회사 소개 페이지에 knowsAbout 필드를 추가하여 사업 영역을 지정할 수도 있습니다.
BlogPosting
블로그 글에는 BlogPosting을 설정합니다. 저자, 게재일, 업데이트일, 대표 이미지를 포함하면 Google Discover 및 검색 결과에서 저자 정보 표시가 가능합니다.
BreadcrumbList
브레드크럼 구조화 데이터는 모든 페이지에 설정해야 합니다. 중요한 구현 참고 사항: 중간 경로(/blog/tags/ 같은 목록 페이지)가 실제로 존재하는지 확인하고, 존재하지 않는 경로에는 item 프로퍼티를 출력하지 마세요.
Product / Offer
상품 페이지를 추가할 때 상품인 Product와 판매 조건인 Offer를 구분합니다. 이름·이미지·설명은 공개 페이지에 맞추고 가격·통화·구매 URL·재고는 실제 조건과 일치시킵니다. 판매 가격이 없는 무료 배포 페이지에 추측한 가격이나 Offer를 넣지 않으며 평가나 재고도 꾸며내지 않습니다.
이 내용은 추가 설계 참고이며 2026년 3월 모든 페이지에서 구현했다는 실적이 아닙니다. 생성 HTML과 Google 상품 마크업 요건을 확인합니다. 마크업만으로 검색 표시나 순위 상승이 보장되지 않습니다.
FAQPage
페이지에 FAQ가 있다면 보이는 내용과 일치하는 FAQPage 데이터를 출력할 수 있습니다. 다만 Google의 FAQ 리치 결과는 대체로 권위 있는 정부·의료 사이트에 제한되므로 일반 사이트는 표시를 기대하지 않아야 합니다.
WebSite + SearchAction
Google은 2024년 11월 사이트링크 검색창을 종료했습니다. 기존 SearchAction 마크업이 남아 있어도 그 자체로 검색 오류가 발생하지 않습니다. Pagefind 같은 사이트 내부 검색은 여전히 유용합니다.
사이트맵 최적화
Astro의 @astrojs/sitemap 플러그인으로 사이트맵을 자동 생성할 수 있지만, 기본 설정만으로는 불충분합니다.
페이지 유형별 설정
당시 serialize() 설정은 URL 종류에 따라 changefreq와 priority를 출력했습니다. 아래 표는 그 구현 기록입니다. Google은 두 값을 무시하므로 순위 상승을 위해 설정할 필요는 없습니다.
| 페이지 유형 | changefreq | priority |
|---|---|---|
| 홈페이지 | daily | 1.0 |
| 블로그 글 | weekly | 0.8 |
| 기타 | monthly | 0.6 |
lastmod 설정
lastmod는 실제로 중요한 페이지 변경 날짜를 나타낼 때 사용합니다. 바뀌지 않은 모든 페이지에 빌드 날짜를 일괄 입력하지 말고 글의 발행일 또는 lastUpdated와 맞추세요.
RSS 피드 강화
RSS는 “한 번 설정하고 잊어버리기” 쉬운 작업이지만, 피드 품질을 높이면 RSS 리더에서의 표시가 개선되고 구독자 경험이 향상됩니다.
추가할 정보
- author: 글별 저자명 포함
- categories: 태그 정보를 카테고리로 추가하여 RSS 리더에서의 분류 개선
items: posts.map((post) => ({
title: post.data.title,
description: post.data.description,
link: `/blog/${post.id}/`,
pubDate: post.data.date,
author: post.data.author,
categories: post.data.tags,
}));
SEO 개선 체크리스트
마지막으로 Astro 사이트 SEO 개선을 위해 확인해야 할 핵심 사항을 정리합니다:
- 모든 페이지에 canonical URL이 설정되어 있는가?
- 각 페이지마다 고유한 OGP 이미지가 준비되어 있는가?
- 구조화 데이터 검증: Google 리치 결과 테스트로 확인
- 브레드크럼 리스트의 중간 경로가 실제 URL을 가리키는가?
- 사이트맵에서 불필요한 페이지(404 등)가 제외되어 있는가?
- RSS 피드에 저자와 카테고리가 포함되어 있는가?
- robots.txt에서 검색 인덱스(
/pagefind/등)가 크롤링 제외되어 있는가?
이 설정은 공개 콘텐츠를 검색 엔진에 올바르게 전달하는 기반입니다. 순위는 콘텐츠 품질과 업데이트 빈도만으로 결정되지 않으며 설정 완료가 유입 증가의 증거도 아닙니다. 공개 후 검색어, 노출, 클릭률을 확인해 독자의 문제에 답하는 내용을 개선하세요.
시리즈 소개
이 글은 “Astro 사이트 품질 개선 가이드” 시리즈의 일부입니다. 성능, 접근성, UX 개선에 대해서는 별도 글에서 다루고 있습니다.
SEO 개선 워크플로우
메타 태그
모든 페이지에 title, description, canonical, OGP를 설정합니다.
구조화 데이터
JSON-LD를 사용하여 페이지의 의미를 Google에 전달합니다.
사이트맵
표준 URL을 포함하고 실제로 중요한 변경이 일어난 날짜를 확인합니다.
RSS
저자 및 카테고리 정보가 포함된 고품질 피드를 제공합니다.
자주 묻는 질문
구조화 데이터를 추가하면 검색 결과가 즉시 바뀌나요?
아닙니다. Google이 크롤링하고 재인덱싱하는 데 며칠에서 몇 주가 걸립니다. 반영 상태는 Google Search Console의 "리치 결과" 보고서에서 확인할 수 있습니다.
권장 OGP 이미지 크기는 어떻게 되나요?
1200×630px가 권장됩니다. 이 비율은 summary_large_image 사용 시 X(Twitter)에 최적입니다.
사이트맵의 priority가 SEO에 영향을 미치나요?
Google은 `priority`와 `changefreq`를 무시하므로 SEO 효과를 위해 값을 만들어 넣을 필요가 없습니다.