Files
2nd/10_Wiki/Topic_Blog/robots.txt.md
T
koriweb 27b2c25e4d feat(wiki): Topic_Blog SEO 지식화 + orphan 연결
- Topic_Blog: 미추적 상태였던 SEO/색인 지식 문서 일괄 추적 추가
  (Google '페이지 색인 생성 보고서' 기반 신규 6종 포함:
   페이지 색인 생성 보고서/색인 생성 유효성 검사/Soft 404/NOINDEX/
   크롤링됨·발견됨-현재 색인 안 됨/SEO를 위한 HTTP 상태 코드).
- orphan 연결: 완전 고립된 지식 문서 9개를 관련 기존 문서와 양방향 링크
  (Game Design 쌍, Aerospace, Apple Vision Pro, 3D_Web_HMI, Stock 3,
   Topics_Biz). append-only, 존재 타깃만 링크(dangling 0).
도구: Datacollect/scripts/wiki_audit.mjs (중복·orphan 감사)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-10 14:48:16 +09:00

139 lines
9.2 KiB
Markdown

---
id: robots.txt
title: "robots.txt"
category: "Architecture"
status: "draft"
verification_status: "conceptual"
canonical_id: ""
aliases: ["로봇 배제 표준", "Robots Exclusion Protocol", "robots.txt file", "크롤러 지침", "로봇 설정", "Crawler Instructions"]
duplicate_of: ""
source_trust_level: "S"
confidence_score: 0.95
created_at: 2026-06-10
updated_at: 2026-06-10
review_reason: ""
merge_history: []
tags: ["research", "sitemap 정리 방법", "SEO", "robots.txt"]
raw_sources: ["robots.txt와 sitemap 제대로 설정하기 - 인덱스키트", "사이트맵 생성 및 제출 가이드 - 웹닷", "사이트맵 제작 및 제출하기 - Google 검색 센터", "Next.js App Router 에서 동적 사이트맵(Sitemap) 만들기 - seohyun"]
applied_in: ["robots.txt", "app/middleware.ts", "palms.blog"]
github_commit: ""
---
# [[robots.txt]]
## 🎯 한 줄 통찰 (One-line insight)
robots.txt는 검색 엔진 크롤러에게 사이트 내 접근 가능한 경로를 지시하고 사이트맵의 위치를 안내함으로써 크롤링 자원을 효율적으로 배분하게 돕는 웹사이트의 기술적 게이트키퍼다. [S1], [S2], [S7]
## 🧠 핵심 개념 (Core concepts)
- **크롤링 제어(Crawl Control):** 검색 엔진 로봇이 방문할 수 있는 페이지와 방문해서는 안 되는 페이지(관리자 페이지, API 등)를 구분하여 지시한다. [S1], [S2]
- **위치 표준:** 반드시 웹사이트의 **루트 디렉토리**(`내사이트.com/robots.txt`)에 위치해야 하며, 텍스트 파일 형식이어야 한다. [S1]
- **필수 지시어:** 대상 크롤러를 지정하는 `User-agent`, 경로를 제어하는 `Allow`/`Disallow`, 그리고 사이트맵 경로를 명시하는 `Sitemap`으로 구성된다. [S2]
- **색인과의 차이:** robots.txt는 '크롤링'을 차단할 뿐, '색인(Indexing)' 자체를 완전히 막지는 못한다. 외부 링크가 있다면 URL이 검색 결과에 노출될 수 있다. [S1]
## 🧩 추출된 패턴 (Extracted patterns)
- **사이트맵 발견 최적화 패턴:** robots.txt 내에 `Sitemap: [절대경로]`를 명시하여 검색 엔진이 별도의 제출 과정 없이도 사이트 구조를 스스로 파악하게 유도한다. [S2], [S6], [S7]
- **보안 및 자원 보호 패턴:** `/admin/`, `/api/` 등 일반 사용자에게 노출될 필요가 없거나 서버 부하를 유발하는 경로를 `Disallow`로 설정하여 크롤링 예산을 절약한다. [S2]
- **교차 도메인 제출 패턴:** 여러 사이트의 사이트맵을 한 곳에서 관리할 때, 각 사이트의 robots.txt가 중앙 호스팅된 사이트맵 파일을 참조하도록 설정한다. [S8]
## ⚖️ 비교 및 선택 기준 (Comparison & decision criteria)
| 항목 (Option) | 장점 | 단점 | 언제 선택 |
|---|---|---|---|
| **robots.txt Disallow** | 설정이 간편하며 크롤러의 방문 자체를 차단하여 서버 부하 감소 [S1], [S2] | 외부 링크가 있을 경우 URL은 검색 결과에 노출될 수 있음 [S1] | 관리자 페이지, API, 중복 콘텐츠 경로를 막고 싶을 때 [S2] |
| **noindex 메타태그** | 검색 결과에서 해당 페이지를 완전히 제외하는 것을 보장함 [S1] | 크롤러가 일단 페이지를 읽어야 하므로 크롤링 자원이 소모됨 [S1] | 민감한 정보나 검색에 노출되면 안 되는 특정 페이지 관리 시 [S1] |
## 📖 세부 내용 (Details)
### 1. robots.txt의 기본 문법과 지시어
- **User-agent:** 지침을 적용할 크롤러의 이름을 명시한다. 모든 로봇에게 적용하려면 `*`을 사용한다. [S2]
- **Allow/Disallow:** 슬래시(`/`)로 시작하는 경로를 지정한다. `Disallow: /`는 사이트 전체의 크롤링을 차단하므로 주의가 필요하다. [S2], [S3]
- **Sitemap:** 사이트맵의 완전한 절대 URL을 입력한다. 파일 내 어느 위치에나 삽입 가능하며 여러 개를 명시할 수 있다. [S2], [S7]
### 2. 설정 시 흔히 발생하는 치명적 실수
- **슬래시 누락:** `Disallow: admin`은 정상 작동하지 않는다. 반드시 `Disallow: /admin/`과 같이 슬래시를 포함해야 한다. [S3]
- **개발 환경 설정 방치:** 개발 단계에서 검색 엔진을 막아두기 위해 설정한 `Disallow: /`를 라이브 배포 후에도 수정하지 않아 사이트가 검색 결과에서 사라지는 사례가 빈번하다. [S3]
- **대소문자 구분:** robots.txt 파일명과 내부에 기술된 경로는 대소문자를 구분하므로 정확한 표기가 필수적이다. [S1]
### 3. 반영 시간 및 검증
- **주기적 크롤링:** 구글 등 검색 엔진은 보통 하루에 여러 번 robots.txt를 다시 읽지만, 수정 사항이 즉시 반영되지는 않는다. [S5]
- **테스트 도구:** Google Search Console의 'robots.txt 테스터'를 사용하여 수정된 지침이 올바른지 사전에 검증하고 빠른 반영을 요청할 수 있다. [S5]
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
- **크롤링 vs 색인:** 많은 사용자가 robots.txt로 차단하면 검색 결과에 아예 안 나올 것으로 오해하지만, Google은 내용물만 읽지 못할 뿐 외부 참조가 있다면 URL 자체는 색인할 수 있다는 점을 명확히 하고 있다. [S1]
- **반영 속도:** robots.txt를 수정해도 검색 엔진의 캐시로 인해 실제 크롤링 행동이 변화하기까지는 몇 시간에서 하루 정도의 시차가 발생한다. [S5]
## 🛠️ 적용 사례 (Applied in summary)
- **palms.blog (Next.js):** 서브도메인 기반 블로그 서비스에서 robots.txt 관련 에러를 해결하기 위해 Next.js의 middleware를 이용하여 동적으로 지침을 생성하고 관리함. [S9]
- **일반적인 웹사이트 배포:** 배포 체크리스트에 robots.txt 확인 항목을 포함하여 개발용 차단 지침이 라이브 서버에 적용되는 것을 방지함. [S3]
## 💻 코드 패턴 (Code patterns)
### 표준 robots.txt 구성 패턴
```text
User-agent: *
Allow: /
Disallow: /admin/
Disallow: /api/
Disallow: /temp/
Sitemap: https://yourdomain.com/sitemap.xml
```
[S2]
### 교차 제출(Cross-site) 참조 패턴
```text
# example.com의 robots.txt
User-agent: *
Sitemap: https://sitemaps.central-repo.com/sitemap-example-com.xml
```
[S8]
## ✅ 검증 상태 및 신뢰도
- **상태:** draft
- **검증 단계:** conceptual
- **출처 신뢰도:** S (Google Search Central 가이드 및 전문 SEO 리소스 기반)
- **신뢰 점수:** 0.95
- **중복 검사 결과:** 신규 생성 (New discovery)
## 🔗 관련 문서 링크 (Related document links)
### 상위/유사 개념
- [[sitemap 정리 방법]] — robots.txt는 사이트맵을 발견하게 하는 출발점임. [S2]
- [[SEO 기초]] — robots.txt 설정은 테크니컬 SEO의 가장 기본적인 단계임. [S1]
- [[사이트맵 색인]] — robots.txt에서 참조하는 최상위 사이트맵 구조임. [S7]
### 심층 후속 질문 (Deeper Research Questions)
- robots.txt에서 차단된 페이지가 백링크를 통해 색인될 때, 해당 페이지의 랭킹 가중치는 어떻게 처리되는가?
- Next.js Middleware에서 User-agent별로 서로 다른 robots.txt 응답을 줄 때 발생할 수 있는 캐싱 이슈는?
- `Crawl-delay` 지시어는 현재 Google 및 주요 검색 엔진에서 실제로 유효한가?
- robots.txt 파일 자체의 크기 제한이나 URL 개수 제한이 존재하는가?
### 실무 적용 맥락 (Practical Application Contexts)
- **Implementation:** 웹 서버 루트 디렉토리에 정적 파일 배치 또는 미들웨어를 통한 동적 응답. [S1], [S9]
- **System Design:** 크롤러의 비정상적 접근을 막기 위한 경로 차단 설계. [S2]
- **Operation / Maintenance:** 배포 시마다 robots.txt 지침 유효성 검사 수행. [S3]
- **Learning Path:** 기본 문법 습득 → robots.txt 테스터 활용 → 사이트맵 연동. [S5]
### 인접 주변 주제
- [[이미지 최적화]] — 이미지 크롤러 전용 robots.txt 지침 설정 가능성. [S2]
- [[Indexing API]] — robots.txt 수정 후 빠른 색인 반영을 위한 보조 수단. [S4]
## 🔗 지식 그래프 (Knowledge Graph)
- **상위/루트:** [[sitemap 정리 방법]]
- **관련 개념:** [[사이트맵]], [[SEO 기초]]
- **참조 맥락:** 크롤러의 효율적인 사이트 탐색을 위한 진입점 및 경로 제어 가이드로 참조.
## 📚 출처 (Sources)
- [S1] robots.txt와 sitemap 제대로 설정하기 - 인덱스키트 (p. 35)
- [S2] robots.txt와 sitemap 제대로 설정하기 - 인덱스키트 (p. 36)
- [S3] robots.txt와 sitemap 제대로 설정하기 - 인덱스키트 (p. 37)
- [S4] robots.txt와 sitemap 제대로 설정하기 - 인덱스키트 (p. 39)
- [S5] robots.txt와 sitemap 제대로 설정하기 - 인덱스키트 (p. 40)
- [S6] 사이트맵 생성 및 제출 가이드 - 웹닷 (p. 71)
- [S7] 사이트맵 제작 및 제출하기 - Google 검색 센터 (p. 111)
- [S8] 사이트맵 제작 및 제출하기 - Google 검색 센터 (p. 113)
- [S9] Next.js App Router 에서 동적 사이트맵(Sitemap) 만들기 - seohyun (p. 6)
- [S10] 초심자 가이드: Google의 sitemap <lastmod> 태그 정책 변경 - TOPPING website (p. 166)
## 📝 변경 이력 (Change history)
- 2026-06-10: Initial draft generated via Datacollector_MAC P-Reinforce engine. (Source: NotebookLM)