27b2c25e4d
- 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>
139 lines
9.2 KiB
Markdown
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) |