최적 크롤링을 위한 robots.txt와 sitemap.xml 설정 가이드
robots.txt 파일의 한 글자 오류로 인해 웹사이트의 핵심 섹션이 차단되어 트래픽이 급감할 수 있습니다. 최근 한 프로젝트에서는 파일 오류로 인해 제품 카탈로그 디렉토리가 검색 엔진 크롤러에게 차단되었고, 2주 만에 유기적 트래픽이 1/3로 줄었습니다. Robots.txt는 크롤러 접근을 관리하고, sitemap.xml은 스캔 우선순위를 설정합니다. 이 두 파일은 Google과 Yandex에서의 인덱싱 효율성을 결정합니다.
robots.txt의 지시어와 문법
Robots.txt는 사이트 루트에 위치하며 Googlebot, YandexBot 등 크롤러에 대한 지침을 포함합니다. 주요 지시어:
- User-agent: 봇을 지정합니다.
User-agent: *— 모든 봇,User-agent: Googlebot— Google만. - Disallow: 경로를 금지합니다.
Disallow: /admin/은 디렉토리를 차단하고,Disallow: /search?는 검색 매개변수가 있는 URL을 차단합니다. - Allow: 차단된 디렉토리 내에서 허용합니다. 예시:
User-agent: *
Disallow: /catalog/
Allow: /catalog/main-page/
- Sitemap: 사이트맵 링크, User-agent 블록 외부에 작성합니다.
Disallow 끝의 슬래시는 디렉토리를 나타냅니다. 슬래시 없음—접두사가 있는 모든 URL. Robots.txt는 인덱싱을 완전히 차단하지 않습니다: 외부 링크로 인해 경고와 함께 페이지가 인덱스에 추가될 수 있습니다. Noindex를 원한다면 메타 태그나 인증을 사용하세요.
기본 robots.txt 예시:
User-agent: *
Disallow: /admin/
Disallow: /cart/
Disallow: /search?
Disallow: /*?sort=
Disallow: /*?filter=
Allow: /
Sitemap: https://site.ru/sitemap.xml
이 템플릿은 서비스 섹션과 필터 매개변수를 차단합니다.
지시어 지원 차이
| 지시어 | Google | Yandex |
|--------------|--------|--------|
| User-agent | ✅ | ✅ |
| Disallow | ✅ | ✅ |
| Allow | ✅ | ✅ |
| Sitemap | ✅ | ✅ |
| Host | ❌ | ✅ |
| Crawl-delay | ❌ | ✅ |
| Clean-param | ❌ | ✅ |
Yandex의 Host 지시어는 기본 미러를 설정합니다: Host: https://site.ru. Google은 이를 무시합니다—Search Console을 사용하세요.
robots.txt 배치 및 검증
- 텍스트 편집기(VS Code, Notepad++)에서
robots.txt파일 생성. - 루트에 업로드:
https://site.ru/robots.txt. - CMS별 방법:
- WordPress: Yoast SEO 또는 FTP.
- Bitrix: 관리자 패널 파일 관리자.
- Tilda/Wix: 패널 설정.
- 접근성 확인: 브라우저에서 URL 열기(404/500 오류가 아닌 텍스트 표시).
- 테스트: Google Search Console(크롤링), Yandex.Webmaster(Robots.txt 분석).
문법 오류는 줄 무시나 예측 불가능한 동작을 초래합니다.
sitemap.xml 구조
Sitemap.xml은 크롤 우선순위를 위한 중요 URL 목록입니다. 100페이지 이상, 자주 업데이트되거나 고립된 페이지가 있는 사이트에 유용합니다.
기본 구조:
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://site.ru/</loc>
<lastmod>2026-01-15</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
</url>
</urlset>
태그:
loc: 필수 URL.lastmod: 실제 수정 날짜.changefreq: 빈도(일별/주별; Google은 무시, Yandex는 고려).priority: 순서를 위한 0.0–1.0 값.
제한: 50,000 URL, 50 MB. 초과 시—사이트맵 인덱스:
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://site.ru/sitemap-pages.xml</loc>
</sitemap>
</sitemapindex>
sitemap.xml 생성 방법
- CMS/플러그인: WordPress(Yoast), Bitrix(마케팅). 자동 업데이트되지만 불필요한 URL 확인 필요.
- 온라인 생성기: 정적 사이트용, 수동 업데이트.
- 스크립트: SPA용(Next.js + next-sitemap). 빌드 시 생성.
루트에 배치하거나 robots.txt에 지정합니다.
파일 통합
- robots.txt에 추가:
Sitemap: https://site.ru/sitemap.xml. - Google Search Console(사이트맵)과 Yandex.Webmaster(인덱싱)에 제출.
- 검증: 사이트맵의 URL이 Disallow에 없어야 하며, 상태 200 OK여야 합니다.
고급 사이트맵
미디어용:
이미지:
<url>
<loc>https://site.ru/article/</loc>
<image:image>
<image:loc>https://site.ru/images/photo.jpg</image:loc>
<image:title>설명</image:title>
</image:image>
</url>
비디오 (일부):
<url>
<loc>https://site.ru/video-page/</loc>
<video:video>
<video:thumbnail_loc>https://site.ru/thumb.jpg</video:thumbnail_loc>
</video:video>
</url>
Google 이미지와 Yandex.이미지에서 인덱싱을 개선합니다.
핵심 요약
- Robots.txt는 크롤 예산을 절약하지만 noindex를 대체하지 않습니다.
- Sitemap은 새 페이지 발견을 가속화하고 사이트 구조를 정리합니다.
- 항상 충돌 확인: 사이트맵의 URL은 접근 가능해야 합니다.
- Google/Yandex의 지시어 차이(Host, Clean-param) 고려.
- 대규모 사이트의 경우 사이트맵 인덱스와 미디어 확장 사용.
— Editorial Team
아직 댓글이 없습니다.