SEO·GEO

검색엔진과 AI 답변 엔진이 잘 읽는 사이트 — lidgeai.com을 만든 방식

이 사이트를 SEO와 GEO(생성형 엔진 최적화)를 염두에 두고 만든 과정입니다. hreflang 상호 참조, JSON-LD, llms.txt, 답을 먼저 쓰는 문단, 빌드 단계 검사기까지 실제 적용한 내용만 정리했습니다.

글쓴이 Byungjun Kim발행 3 분 읽기

lidgeai.com은 Astro 7로 만든 정적 사이트입니다. 모든 페이지가 한국어·영어 짝을 갖고 서로를 hreflang으로 가리키며, 도구 페이지에는 SoftwareApplication과 FAQPage 구조화 데이터를, 글에는 BlogPosting을 넣었습니다. 검색 크롤러와 AI 크롤러 모두 허용하고, llms.txt로 사이트 요약을 제공합니다. 이 규칙들은 빌드 직후 검사기가 확인합니다.

출발점: 답을 먼저 쓴다

생성형 답변 엔진은 페이지에서 “질문에 바로 답하는 문단”을 잘 가져갑니다. 그래서 도구 페이지와 글 모두 첫머리에 40~60단어 정도의 요약 문단을 두었습니다. 이 글의 맨 위 상자가 그 예입니다. 그 뒤에 자세한 설명, 마지막에 자주 묻는 질문을 둡니다.

두 언어, 한 쌍

한국어 페이지는 /, 영어는 /en/ 아래에 있습니다. 모든 페이지에는 자기 자신과 상대 언어, 그리고 기본값(x-default)을 가리키는 hreflang 링크가 들어갑니다. 번역 쌍은 같은 파일 이름으로 묶습니다. posts/ko/abc.md와 posts/en/abc.md가 한 쌍입니다. 그래서 링크가 한쪽만 가리키는 실수가 구조적으로 생기기 어렵습니다.

구조화 데이터

페이지 JSON-LD
모든 페이지 Organization
홈을 뺀 모든 페이지 BreadcrumbList
홈 WebSite
도구 페이지 SoftwareApplication, FAQPage
글 BlogPosting, FAQPage(질문이 있을 때)

평점이나 리뷰처럼 실제 데이터가 없는 필드는 넣지 않았습니다.

크롤러와 llms.txt

robots.txt는 일반 크롤러와 함께 GPTBot, ClaudeBot, PerplexityBot 같은 AI 크롤러를 명시적으로 허용하고, 사이트맵 위치를 알려 줍니다. llms.txt에는 사이트 한 줄 소개와 도구·글 목록을, llms-full.txt에는 영어 원문 전체를 둡니다. llms.txt는 검색엔진이 요구하는 표준은 아니지만, 만드는 비용이 거의 없고 에이전트가 사이트를 빠르게 파악하는 데 도움이 됩니다.

숫자는 빌드할 때, 하한으로

도구 카드의 GitHub 스타와 npm 다운로드는 빌드할 때 API에서 가져와 “1만 6천+“처럼 하한으로 표시합니다. API가 실패하면 저장소에 커밋된 스냅샷 값을 쓰고, 화면에 스냅샷이라고 표시합니다. 과장된 숫자는 한 번 걸리면 나머지 신뢰까지 깎아 먹기 때문입니다.

규칙은 검사기로 지킨다

규칙을 문서로만 두면 언젠가 어긋납니다. 그래서 빌드가 끝나면 검사 스크립트가 모든 페이지를 읽고 다음을 확인합니다.

  • <html lang>이 경로 언어와 맞는지, <h1>이 정확히 하나인지
  • 제목이 60자 이하인지, 설명 길이가 적당한지
  • canonical이 자기 주소를 정확히 가리키는지
  • hreflang 세 개가 모두 있고, 상대 페이지가 실제로 존재하며 서로를 되가리키는지
  • 모든 JSON-LD가 파싱되는지
  • robots.txt, llms.txt, RSS, 사이트맵이 있는지

하나라도 어긋나면 빌드가 실패합니다. 일부러 hreflang 하나를 깨뜨려 검사기가 실제로 잡는지도 확인했습니다.

성능

스크롤 모션과 카드 애니메이션이 있지만, 가장 큰 콘텐츠(LCP)는 애니메이션 없는 히어로 텍스트가 되도록 했고, 카드 그림은 덱을 펼치기 전에는 그리지 않습니다. 로컬 미리보기 기준 모바일 Lighthouse에서 홈이 성능 99, 접근성·권장사항·SEO 100, 레이아웃 이동 0을 기록했습니다. 모션 효과는 design-isms 카탈로그에서 가져와 사이트 톤에 맞게 옮겼고, 모션 줄이기 설정을 켜면 멈춥니다.

자주 묻는 질문

GEO는 SEO와 무엇이 다른가요?

SEO가 검색 결과 순위를 다룬다면, GEO는 ChatGPT나 Perplexity 같은 생성형 답변 안에서 인용되는 것을 목표로 합니다. 기반은 같아서, 빠르고 구조가 분명한 페이지가 둘 다에 유리합니다.

llms.txt가 꼭 필요한가요?

검색엔진이 요구하는 표준은 아닙니다. 만드는 비용이 거의 없어서, AI 에이전트가 사이트를 읽을 때 쓸 수 있는 요약본으로 두었습니다.

이 검사들은 어디서 돌아가나요?

빌드가 끝나면 scripts/verify-dist.mjs가 모든 페이지를 읽어 검사하고, 하나라도 어긋나면 실패합니다.