IndexNow
lastmod 2026-10-27created 2026-10-275 edits
IndexNow는 웹 마스터, 웹 사이트 소유자가 웹 사이트의 최신 콘텐츠 변경 사항을 즉시 검색 엔진에 알려주는 간단한 방법입니다. 가장 간단한 형태의 IndexNow는 검색 엔진이 URL과 해당 콘텐츠가 추가, 업데이트 또는 삭제되었음을 알 수 있도록 하여 검색 엔진이 검색 결과에 이러한 변경 사항을 신속하게 반영할 수 있도록 하는 간단한 핑입니다.
IndexNow가 없으면 검색 엔진이 모든 URL을 자주 크롤링하지 않기 때문에 검색 엔진이 콘텐츠가 변경된 것을 발견하는 데 며칠에서 몇 주가 걸릴 수 있습니다. IndexNow를 사용하면 검색 엔진이 "변경된 URL"을 즉시 파악하여 이러한 URL에 대한 크롤링의 우선 순위를 정하고 새로운 콘텐츠를 발견하기 위해 유기적 크롤링을 제한할 수 있습니다.
URL 1개 제출
HTTP 요청으로 URL 1개를 제출하려면 다음 URL로 요청을 보낸다. <searchengine>은 검색 엔진에서 제공한 호스트로 대체한다.
-
url-changed: 추가, 업데이트 또는 삭제된 웹 사이트의 URL.- URL은 이스케이프 처리하고 인코딩해야 한다.
- URI 표준인 RFC-3986을 따라야 한다.
your-key: 최소 8자, 최대 128자의 16진수 문자.- 소문자(
a-z), 대문자(A-Z), 숫자(0-9), 대시(-)만 사용할 수 있다.
예제
https://www.example.com/product.html이 업데이트되었음을 검색 엔진에 알리고, 키로 a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d를 사용하는 경우의 요청 URL은 다음과 같다.
https://<searchengine>/indexnow?url=https://www.example.com/product.html&key=a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d
- 참고: 이 문서의 키
a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d는 설명용 예시 값이다. 원문 페이지는 방문할 때마다 무작위 키를 생성해 보여준다.
요청 및 응답
- 브라우저, wget, curl 등 원하는 방법으로 HTTP 요청을 보낼 수 있다.
- 요청이 성공하면 HTTP
200응답 코드가 반환된다. 이는 검색 엔진이 URL을 수신했음을 의미한다. - 다른 응답을 받으면 너무 자주 제출하지 않았는지, 키와 URL이 유효한지 확인한 뒤 다시 제출한다.
URL 집합 제출
HTTP 요청으로 URL 집합을 제출하려면 검색 엔진에서 제공한 URL로 POST JSON 요청을 보낸다. <searchengine>은 검색 엔진의 호스트 이름으로 대체한다.
POST /indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: <searchengine>
{
"host": "www.example.com",
"key": "a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d",
"urlList": [
"https://www.example.com/url1",
"https://www.example.com/folder/url2",
"https://www.example.com/url3"
]
}
- POST 요청 1회당 최대 10,000개의 URL을 제출할 수 있으며, 필요하면 http와 https URL을 섞어도 된다.
- wget, curl 등 원하는 방법으로 HTTP 요청을 보낼 수 있다.
- 요청이 성공하면 HTTP
200응답 코드가 반환된다. 이는 검색 엔진이 URL 집합을 수신했음을 의미한다. - 다른 응답을 받으면 요청을 확인하고, 문제가 없어 보이면 다시 제출한다.
권장 사항
- 콘텐츠가 추가, 업데이트 또는 삭제되는 즉시 URL 제출을 자동화하는 것이 좋다.
- 사용자 생성 콘텐츠(UGC)에 대한 모범 사례는 자주 묻는 질문(FAQ)을 참조한다.
키를 통한 소유권 확인
URL을 제출하려면 호스트 안에 텍스트 키 파일을 하나 이상 호스팅하여, URL을 제출하는 호스트의 소유권을 "증명"해야 한다.
- URL을 제출하면 검색 엔진은 키 파일을 크롤링하여 소유권을 확인한다.
- 검색 엔진은 사용자가 키를 변경할 때까지 해당 키를 계속 사용한다.
- 키와 키 파일 위치는 사용자와 검색 엔진만 알고 있어야 한다.
소유권을 확인하는 방법은 다음 두 가지이다.
방법 1: 루트 디렉터리에 키 파일 호스팅 (권장)
웹 사이트의 루트 디렉터리에 UTF-8로 인코딩된 텍스트 키 파일 {your-key}.txt를 호스팅하고, 파일 안에 키를 적어 둔다.
앞의 예제라면 다음 위치에 UTF-8 키 파일을 호스팅해야 하며, 파일 내용은 키 a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d여야 한다.
방법 2: 호스트 내 임의 위치에 키 파일 호스팅
같은 호스트 안의 다른 위치에 UTF-8로 인코딩된 텍스트 키 파일을 하나 이상 호스팅할 수 있다. 이 경우 IndexNow 알림을 보낼 때마다 keyLocation 변수로 키 파일 위치를 검색 엔진에 알려야 한다.
URL 1개 제출 시
keyLocation URL 매개 변수 값으로 키 파일 위치를 지정한다.
https://<searchengine>/indexnow?url=http://www.example.com/product.html&key=a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d&keyLocation=http://www.example.com/myIndexNowKey63638.txt
URL 집합 제출 시
JSON 본문의 keyLocation 변수로 키 파일 위치를 지정한다.
POST /indexnow HTTP/1.1
Content-Type: application/json; charset=utf-8
Host: <searchengine>
{
"host": "www.example.com",
"key": "a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d",
"keyLocation": "https://www.example.com/myIndexNowKey63638.txt",
"urlList": [
"https://www.example.com/url1",
"https://www.example.com/folder/url2",
"https://www.example.com/url3"
]
}
키 파일 위치와 유효한 URL 범위
방법 2에서는 키 파일의 위치가 그 키로 제출할 수 있는 URL 범위를 결정한다.
예를 들어 http://example.com/catalog/key12457EDd.txt에 있는 키 파일은 http://example.com/catalog/로 시작하는 모든 URL에 쓸 수 있지만, http://example.com/help/로 시작하는 URL에는 쓸 수 없다.
| 구분 | URL 예시 |
| 유효함 | |
| 유효하지 않음 | |
- 방법 2에서 유효하지 않은 것으로 판단된 URL은 인덱싱에서 고려되지 않을 수 있다.
- 따라서 방법 1을 사용하여 키 파일을 웹 서버의 루트 디렉터리에 두는 것이 좋다.
응답 형식
| HTTP 코드 | 응답 | 사유 |
| | OK | URL 제출 성공 |
| | Accepted | URL 수신 완료. IndexNow 키 검증 대기 중 |
| | Bad request | 잘못된 형식 |
| | Forbidden | 키가 유효하지 않음 (예: 키 파일을 찾을 수 없음, 파일은 있으나 파일 안에 키가 없음) |
| | Unprocessable Entity | URL이 해당 호스트에 속하지 않거나, 키가 프로토콜의 스키마와 일치하지 않음 |
| | Too Many Requests | 요청이 너무 많음 (스팸 가능성) |
검색 엔진 요건
- IndexNow 프로토콜을 채택한 검색 엔진은 제출된 URL을 다른 모든 참여 검색 엔진과 자동으로 공유하는 데 동의한다.
- 참여하려면 다음 조건을 갖춰야 한다.
- 최소 한 개 시장에서 뚜렷한 존재감이 있거나, 검색 시장과 밀접하게 연결되어 있을 것
- URL 제출 수에 상당한 기여를 할 것
See also
Favorite site
- Home | IndexNow.org
- Documentation | IndexNow.org - IndexNow 설명서 (한국어)