크롤링·플랫폼 · 공식 문서
IndexNow API 요청 방법, 응답 코드 확인 순서
사이트 루트에 키 파일을 올린 뒤, URL 하나는 GET 으로 url·key 를 붙여 보내고 여러 개는 POST JSON(host·key·urlList)으로 한 번에 최대 10,000개까지 보냅니다. 응답 200 은 받았다는 뜻이고, 202 는 받았으며 키를 확인하는 중이라는 뜻입니다.
IndexNow 는 URL 이 추가·수정·삭제됐다고 검색엔진에 알리는 공개 프로토콜입니다. 요청은 HTTP 한 줄이라 서버 코드 몇 줄로 붙습니다.
문제가 생기는 자리는 대개 요청 형식이 아니라 키 파일과 응답 코드입니다. 그래서 키 파일부터 응답 코드까지 확인 순서로 묶었습니다.
발견 01
자동 제출은 키 파일을 먼저 올리고, 7단계 순서로 붙입니다
| 순서 | 단계 | 할 일 | 공식 문서 원문 |
|---|---|---|---|
| 1 | 키 만들기 | 0~9, a~f 로 된 32자 키를 만듭니다. 세 문서의 문자 규칙을 모두 만족하는 형태입니다. | Your-key should have a minimum of 8 and a maximum of 128 hexadecimal characters. The key can contain only the following characters: lowercase characters (a-z), uppercase characters (A-Z), numbers (0-9), and dashes (-).키는 16진수 8자 이상 128자 이하로 만든다. 쓸 수 있는 문자는 영문 소문자·대문자, 숫자, 하이픈(-)이다. |
| 2 | 키 파일 올리기 | {키}.txt 를 사이트 루트에 UTF-8 로 올리고, 브라우저로 열어 키만 보이는지 확인합니다. | You must host a UTF-8 encoded text key file {your-key}.txt listing the key in the file at the root directory of your website. If the file loads and displays only your key, your site is verified.UTF-8 텍스트 파일 {키}.txt 에 키를 적어 사이트 루트에 올린다. 그 파일을 열어 키만 보이면 확인된 것이다. |
| 3 | 엔드포인트 고르기 | 아래 목록 중 하나만 골라 보냅니다. 받은 쪽이 다른 참여 검색엔진에 나눕니다. | You may submit your request to only one of the following participating endpoints.아래 참여 엔드포인트 가운데 한 곳에만 제출하면 된다. |
| 4 | URL 인코딩 | GET 의 url 값은 %3A·%2F 처럼 인코딩해 붙입니다. | URL must be URL-escaped and encoded and please make sure that your URLs follow the RFC-3986 standard for URIs. Be sure to URL-encode the submitted page URL (e.g., %3A for : and %2F for /)URL 은 RFC 3986 에 맞게 인코딩해야 한다. 예를 들어 : 는 %3A, / 는 %2F 로 바꾼다. |
| 5 | curl 로 한 번 보내기 | 자동화 전에 손으로 한 번 보내 응답 코드를 봅니다. 첫 요청은 202 일 수 있습니다. | Use tools like curl or wget to test URL submissions and view HTTP response codes.curl·wget 같은 도구로 시험 제출을 하고 HTTP 응답 코드를 확인한다. |
| 6 | 게시 흐름에 걸기 | 글 게시·수정·삭제가 저장되는 자리에서 요청을 보냅니다. | Use backend scripts or CMS hooks to trigger submissions when content is added, updated, or deleted.백엔드 스크립트나 CMS 훅으로 콘텐츠가 추가·수정·삭제될 때 제출이 일어나게 한다. |
| 7 | 로그 남기기 | 요청마다 시각·URL·응답 코드·방식을 남기고, 200·202 가 아닌 코드를 따로 봅니다. | Log each submission and monitor HTTP response codes for issues.제출마다 기록을 남기고 HTTP 응답 코드를 지켜본다. |
키 문자 규칙은 문서마다 적은 범위가 다릅니다. IndexNow 문서는 16진수라고 하면서 a~z 를 허용한다고 적었고, 네이버는 a~f 로 적었습니다.
네이버 원문은 「key는 16진수에 사용되는 문자, 숫자, - 만을 이용해서 만들어야 합니다.」입니다. 0~9 와 a~f 만 쓰면 어느 엔드포인트로 보내도 같은 키가 통합니다. 키 파일 인증이 실패하는 원인은 「IndexNow API 키 파일」 편에 자세히 적었습니다.
Once you submit your URLs to search engines, search engines will crawl the key file to verify ownership and use the key until you change the key.
URL 을 제출하면 검색엔진이 키 파일을 크롤링해 소유를 확인하고, 키를 바꿀 때까지 그 키를 쓴다.
발견 02
URL 하나는 GET, 여러 개는 POST JSON 으로 보내고 엔드포인트는 하나만 고릅니다
| 형식 | 요청 예 | 쓰는 때 | 네이버 원문 |
|---|---|---|---|
| GET (URL 하나) | https://api.indexnow.org/indexnow?url=https%3A%2F%2Fwww.example.com%2Fproduct%2F101&key=3f2a9c1e7b4d4e6f8a0b1c2d3e4f5a6b | 게시·수정·삭제가 한 건씩 일어날 때 | HTTP 요청을 이용하여 웹사이트의 페이지가 갱신되었음을 검색엔진에 알립니다. |
| POST (URL 여러 개) | POST /indexnow · Host: api.indexnow.org · Content-Type: application/json; charset=utf-8 · {"host":"www.example.com","key":"3f2a9c1e7b4d4e6f8a0b1c2d3e4f5a6b","urlList":["https://www.example.com/product/101","https://www.example.com/product/102"]} | 가격표·재고처럼 여러 URL 이 한꺼번에 바뀔 때 | HTTP POST 요청에 Json 데이터를 이용하여 웹사이트의 페이지가 갱신되었음을 검색엔진에 알립니다. 한 번의 POST 요청에 최대 10,000개까지의 url 을 담을 수 있습니다. |
| 규칙 | IndexNow.org 원문 |
|---|---|
| url 값 | url-changed is a URL of your website which has been added, updated, or deleted.url 값은 추가·수정·삭제된 우리 사이트의 URL 이다. |
| 한 번에 보내는 수 | You can submit up to 10,000 URLs per post, mixing http and https URLs if needed.한 번 보낼 때 URL 을 10,000개까지 보낼 수 있고, http·https URL 을 섞어도 된다. |
| 10,000개를 넘기면 | Submitting more than this may cause the request to fail or return an HTTP 422 (Unprocessable Entity) response.10,000개를 넘기면 요청이 실패하거나 HTTP 422 응답이 올 수 있다. |
| 키 파일 자리 | It is strongly recommended that you use Option 1 and place your file key at the root directory of your web server.1번 방식, 곧 키 파일을 웹 서버 루트 디렉터리에 두는 방식을 강하게 권한다. |
| 다른 폴더에 둘 때 | In this option 2, the location of a key file determines the set of URLs that can be included with this key.2번 방식에서는 키 파일이 놓인 위치가 그 키로 보낼 수 있는 URL 범위를 정한다. |
| 서브도메인 | Each subdomain is treated as a separate host, which means you must create and manage individual key files for each one.서브도메인은 각각 별개 호스트로 보므로 서브도메인마다 키 파일을 따로 만들고 관리해야 한다. |
| 엔드포인트 | 요청 URL |
|---|---|
| IndexNow global endpoint | https://api.indexnow.org/indexnow |
| Amazon | https://indexnow.amazonbot.amazon/indexnow |
| Bing | https://www.bing.com/indexnow |
| Naver | https://searchadvisor.naver.com/indexnow |
| Seznam.cz | https://search.seznam.cz/indexnow |
| Yandex | https://yandex.com/indexnow |
| Yep | https://indexnow.yep.com/indexnow |
발견 03
응답 코드는 7개이고, 200 은 받았다는 뜻일 뿐입니다
The HTTP 200 response code only indicates that the search engine has received your URL.
HTTP 200 응답은 검색엔진이 URL 을 받았다는 뜻일 뿐이다.
| 코드 | IndexNow.org 원문(Response · Reasons) | 네이버 설명 | 확인할 것 |
|---|---|---|---|
| 200 | OK: URL submitted successfully정상(URL 이 제출됨) | 전송이 성공하였습니다. | 받았다는 뜻입니다. 색인 여부는 웹마스터 도구에서 따로 봅니다. |
| 202 | Accepted: URL received. IndexNow key validation pending.접수(URL 을 받았고 IndexNow 키 확인은 아직 남음) | URL 정보가 수신되었습니다. key 정보를 확인 중입니다. | 첫 요청에서 흔합니다. 키 파일이 열리는지 확인하고 다음 요청을 봅니다. |
| 400 | Bad request: Invalid format잘못된 요청(형식이 틀림) | 잘못된 형식으로 요청되었습니다. | JSON 문법, Content-Type, url 인코딩을 봅니다. |
| 403 | Forbidden: In case of key not valid (e.g. key not found, file found but key not in the file)거부. 키가 유효하지 않음(키 파일이 없거나, 파일은 있지만 키가 들어 있지 않음) | key가 유효하지 않습니다. | 키 파일 이름과 내용이 키와 같은지, 로그인 없이 열리는지 봅니다. |
| 422 | Unprocessable Entity: In case of URLs which don’t belong to the host or the key is not matching the schema in the protocol처리 불가. URL 이 그 호스트 것이 아니거나 키가 프로토콜 형식과 맞지 않음 | URL이 key 정보와 일치하지 않습니다. | urlList 가 host 와 같은 호스트인지, 10,000개를 넘지 않는지 봅니다. |
| 429 | Too Many Requests요청이 너무 많음(제한 초과) | 과도하게 많은 요청을 보내고 있습니다. | Retry-After 헤더가 알려 준 시간만큼 멈춘 뒤, 빈도와 묶음 크기를 줄여 다시 보냅니다. |
| 500 | 없음 | 서버 에러입니다. | 받는 쪽 오류입니다. 시간을 두고 다시 보냅니다. |
| 남길 항목 | FAQ 원문 |
|---|---|
| 제출 시각 | Timestamp of submission제출 시각 |
| 제출한 전체 URL | Full submitted URL제출한 전체 URL |
| HTTP 응답 코드 | HTTP response code (e.g., 200, 400, 429)HTTP 응답 코드(예: 200, 400, 429) |
| 재시도·실패 | Retry attempts or failures재시도 횟수나 실패 |
| 제출 방식 | Submission method (GET or POST)제출 방식(GET 또는 POST) |
| 쓴 키(키가 여럿일 때) | API key used (optional if managing multiple keys)사용한 API 키(키를 여럿 관리할 때만) |
200 이 아닌 응답을 받으면 문서는 빈도·키·URL 을 확인하고 다시 보내라고 적었습니다. 원문: A successful request will return an HTTP 200 response code; if you receive a different response, verify that you don’t submit too often, that the key and URL are valid and resubmit the request.
얼마나 자주 보내도 되는지, 색인이 빨라지는지는 「IndexNow 색인 속도와 제출 빈도」 편에 자세히 적었습니다.
발견 04
같은 요청 형식이라도 B2B·B2C·B2G 는 요청을 거는 자리가 다릅니다
예시 ① 산업 자재 유통사의 제품 카탈로그(B2B)
분기마다 단가표를 올리면 제품 상세 페이지 수백 개가 한꺼번에 바뀝니다. 단가 반영 작업이 끝나는 자리에서 바뀐 URL 을 모아 POST 한 번으로 보냅니다.
제품이 10,000개를 넘으면 요청을 나눕니다. 넘기면 422 가 돌아올 수 있다고 FAQ 가 적었습니다.
예시 ② 품절이 잦은 자사 쇼핑몰(B2C)
재고가 0 이 되거나 다시 들어오는 순간이 상품 페이지가 바뀌는 순간입니다. 재고 상태를 저장하는 코드에서 그 상품 URL 하나를 GET 으로 보냅니다.
판매를 끝낸 상품 URL 이 404·410 을 돌려주게 바꾼 날에도 그 URL 을 보냅니다. 삭제도 알리는 대상입니다.
예시 ③ 공지·채용 공고가 잦은 공공기관 누리집(B2G)
공지 게시판 글이 저장되는 자리에서 GET 요청을 보냅니다. 기관 본 사이트와 채용 서브도메인은 호스트가 달라 키 파일을 따로 둡니다.
유지보수 사업자가 바뀌어도 이어지게, 키와 키 파일 위치를 인수인계 문서에 적어 둡니다.
그럼 오늘 무엇부터 붙이나요?
- 쓰는 CMS·호스팅·CDN 에 IndexNow 기능이 있는지 먼저 봅니다. 원문: Check your CMS documentation or plugin library first before setting up IndexNow manually.
- 0~9, a~f 로 된 32자 키를 만들고 {키}.txt 를 사이트 루트에 올립니다. 브라우저로 열어 키만 보이는지 확인합니다.
- 엔드포인트를 하나 고르고 curl 로 URL 하나를 GET 으로 보내 봅니다. 200 또는 202 가 오면 다음 단계로 갑니다.
- 게시·수정·삭제를 저장하는 코드에 요청을 겁니다. 여러 URL 이 한꺼번에 바뀌는 작업은 POST 로 묶습니다.
- 요청마다 시각·URL·응답 코드·방식을 로그로 남기고, 400·403·422·429 가 나오면 위 표의 확인할 것을 봅니다.
- 제출 뒤 크롤링·색인 상태는 빙 웹마스터 도구의 IndexNow 화면에서 봅니다.
조사 방법
- IndexNow.org 「Documentation」 · 최종 확인일 2026-10-25 · https://www.indexnow.org/documentation
- IndexNow.org 「FAQ」 · 최종 확인일 2026-10-25 · https://www.indexnow.org/faq
- 네이버 서치어드바이저 「페이지 갱신 요청하기」 · 최종 확인일 2026-10-25 · https://searchadvisor.naver.com/guide/indexnow-request
- 네이버 서치어드바이저 「API Key 생성하기」 · 최종 확인일 2026-10-25 · https://searchadvisor.naver.com/guide/indexnow-api-key
- 순서 7단계는 위 문서들이 키·요청·확인에 대해 적은 일을 붙이는 순서대로 묶은 것입니다. 묶는 방식은 편집 판단입니다.
- 응답 코드 7개는 IndexNow 「Response format」 표 6행과 네이버 「API의 HTTP 응답 형식」 표를 코드로 맞춘 것입니다. 「확인할 것」 칸은 원문의 설명을 바탕으로 적은 편집 판단입니다.
- 예시 ①②③은 이해를 돕기 위해 만든 가상 상황이며, 실제 기업·기관 사례가 아닙니다.
- IndexNow.org 문서는 영어 원문(한국어판 아님)을 인용했고, 네이버 가이드는 한국어 원문입니다. 두 문서 모두 페이지에 수정일 표기가 없어 최종 확인일만 적었습니다.