사이트 에이전트 친화적
원칙: 각 HTML 페이지에는 동일한 콘텐츠를 가진 Markdown 쌍둥이 파일이 있으며, 에이전트가 이를 찾을 수 있어야 합니다.
python3 scripts/check_seo_agents.py가 다음 모든 사항을 확인합니다.
1. 각 페이지의 .md 쌍둥이 파일
| HTML 페이지 | 파일 | Markdown URL |
|---|---|---|
site/index.html → / | site/index.md | /index.md |
site/tutos/git-rebase/index.html → /tutos/git-rebase/ | site/tutos/git-rebase/index.md | /tutos/git-rebase/index.md |
예외: 404.html (쌍둥이 없음).
페이지를 생성하거나 수정할 때는 동일한 커밋에서 두 파일을 모두 수정합니다. .md 파일은 요약이 아닙니다: 페이지의 모든 유용한 콘텐츠(텍스트, 단계, 코드, 링크)를 장식 없이 포함합니다.
.md 형식:
---
title: 3분 만에 하는 대화형 Git 리베이스
description: git rebase -i를 사용하여 커밋을 안전하고 깔끔하게 다시 작성합니다.
url: https://bytetuto.com/tutos/git-rebase/
lang: ko
updated: 2026-10-16
---
# 3분 만에 하는 대화형 Git 리베이스
> 1-2문장으로 바로 답변: 페이지가 알려주는 내용.
## 단계
1. …
```bash
git rebase -i HEAD~3
```
## 함께 보기
- [커밋 취소하기](https://bytetuto.com/tutos/annuler-commit/index.md)
동영상: https://www.youtube.com/watch?v=…
규칙:
- YAML Front matter:
title,description,url(= 표준 HTML URL),lang,updated(페이지와 동일한 값). - 단일
# 제목=<h1>과 동일.##/###계층 구조는 HTML과 동일하게 유지. - 링크는 절대 경로(
https://bytetuto.com/…)를 사용하며, 대상에.md파일이 있을 경우.md파일로 연결. - 코드는 언어와 함께 ``` 블록 사용. 원시 HTML 없음, 장식용 이모지 없음, 텍스트가 없는 이미지 없음(
형식 사용). - HTML의
<head>에<link rel="alternate" type="text/markdown" href="…/index.md">를 포함.
2. /llms.txt — 에이전트를 위한 요약
site/llms.txt, llmstxt.org 형식: # byteTuto, 사이트를 요약하는 인용문 >, 그 다음 .md 파일 링크 목록이 있는 ## 섹션:
## 튜토리얼
- [대화형 Git 리베이스](https://bytetuto.com/tutos/git-rebase/index.md): 커밋을 깔끔하게 다시 작성합니다.
페이지가 생성/삭제될 때마다 해당 줄을 추가/제거합니다. 부차적인 내용은 ## Optional 섹션에 넣습니다.
약 10개 이상의 튜토리얼이 있을 경우: site/llms-full.txt도 생성합니다 (모든 .md 파일을 연결한 파일).
3. 서버 (nginx/에 이미 구성됨)
.md파일은text/markdown; charset=utf-8로 제공되며,X-Robots-Tag: noindex헤더가 포함됩니다 (Google에 중복 콘텐츠가 색인되지 않도록 — HTML 버전만 색인됨).- 콘텐츠 협상:
Accept: text/markdown헤더와 함께/또는/tutos/x/에 대한 요청은.md파일을 직접 받습니다 (HTML에Vary: Accept헤더 포함). - 테스트:
curl -s http://localhost:8088/index.md | head curl -s -H 'Accept: text/markdown' http://localhost:8088/ | head curl -sI http://localhost:8088/index.md | grep -i content-type # text/markdown
4. 에이전트가 탐색할 수 있는 HTML
- 콘텐츠가 초기 HTML에 존재해야 함 (JS로만 렌더링되지 않음).
- 시맨틱 태그 사용, 고유한
<main>, 계층적 제목,<ol>/<ul>목록,<pre><code class="language-…">코드 블록. - 버튼은
<button>, 링크는<a href>; 모든 컨트롤에는 접근 가능한 이름이 있어야 함 (보이는 텍스트 또는aria-label). - 양식(뉴스레터): 각 필드에
<label for>, 명시적인name과autocomplete, DOM 내 결과 메시지. - 필수 상호작용 뒤에 콘텐츠가 숨겨져 있지 않아야 함 (숨겨진 탭: 콘텐츠는 DOM에 남아 있어야 함).
- 최신 JSON-LD 구조화된 데이터 (
site-seo참조): 에이전트도 이를 활용합니다.
5. AI 크롤러 (robots.txt)
프로젝트 선택: AI 크롤러를 허용합니다 (ChatGPT, Claude, Perplexity, Google AI에서의 가시성 확보). 명시적인 결정 없이 GPTBot, ClaudeBot, PerplexityBot, Google-Extended 등에 Disallow를 추가하지 마십시오. 파일 하단에 Sitemap:을 유지합니다.