콘텐츠로 이동
Search

IndexNow

lastmod 2026-10-27created 2026-10-275 edits

IndexNow는 웹 마스터, 웹 사이트 소유자가 웹 사이트의 최신 콘텐츠 변경 사항을 즉시 검색 엔진에 알려주는 간단한 방법입니다. 가장 간단한 형태의 IndexNow는 검색 엔진이 URL과 해당 콘텐츠가 추가, 업데이트 또는 삭제되었음을 알 수 있도록 하여 검색 엔진이 검색 결과에 이러한 변경 사항을 신속하게 반영할 수 있도록 하는 간단한 핑입니다.

IndexNow가 없으면 검색 엔진이 모든 URL을 자주 크롤링하지 않기 때문에 검색 엔진이 콘텐츠가 변경된 것을 발견하는 데 며칠에서 몇 주가 걸릴 수 있습니다. IndexNow를 사용하면 검색 엔진이 "변경된 URL"을 즉시 파악하여 이러한 URL에 대한 크롤링의 우선 순위를 정하고 새로운 콘텐츠를 발견하기 위해 유기적 크롤링을 제한할 수 있습니다.

URL 1개 제출

HTTP 요청으로 URL 1개를 제출하려면 다음 URL로 요청을 보낸다. <searchengine>은 검색 엔진에서 제공한 호스트로 대체한다.

https://<searchengine>/indexnow?url=url-changed&key=your-key
  • 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여야 한다.

https://www.example.com/a5b2c8d4e6f74a1b9c3d5e7f8a0b2c4d.txt

방법 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 예시

유효함

http://example.com/catalog/show?item=23

http://example.com/catalog/show?item=233&user=3453

유효하지 않음

http://example.com/image/show?item=23

http://example.com/image/show?item=233&user=3453

  • 방법 2에서 유효하지 않은 것으로 판단된 URL은 인덱싱에서 고려되지 않을 수 있다.
  • 따라서 방법 1을 사용하여 키 파일을 웹 서버의 루트 디렉터리에 두는 것이 좋다.

응답 형식

HTTP 코드

응답

사유

200

OK

URL 제출 성공

202

Accepted

URL 수신 완료. IndexNow 키 검증 대기 중

400

Bad request

잘못된 형식

403

Forbidden

키가 유효하지 않음 (예: 키 파일을 찾을 수 없음, 파일은 있으나 파일 안에 키가 없음)

422

Unprocessable Entity

URL이 해당 호스트에 속하지 않거나, 키가 프로토콜의 스키마와 일치하지 않음

429

Too Many Requests

요청이 너무 많음 (스팸 가능성)

검색 엔진 요건

  • IndexNow 프로토콜을 채택한 검색 엔진은 제출된 URL을 다른 모든 참여 검색 엔진과 자동으로 공유하는 데 동의한다.
  • 참여하려면 다음 조건을 갖춰야 한다.
    • 최소 한 개 시장에서 뚜렷한 존재감이 있거나, 검색 시장과 밀접하게 연결되어 있을 것
    • URL 제출 수에 상당한 기여를 할 것
  • 자세한 내용은 참여 검색 엔진 페이지를 참조한다.

See also

Favorite site

author Zer0 sitemap