Indexing API 사용

개요

Indexing API를 사용하여 Google 색인에서 페이지를 업데이트하거나 삭제하도록 Google에 요청할 수 있습니다. 요청에서는 웹페이지의 위치를 지정해야 합니다. Google에 전송한 알림의 상태를 확인할 수도 있습니다. 현재 Indexing API는 VideoObject에 삽입된 BroadcastEvent또는 JobPosting가 포함된 페이지를 크롤링하는 데만 사용할 수 있습니다.

Indexing API로 요청을 전송할 때는 독립된 웹페이지의 위치를 정의하여 페이지를 크롤링하거나 색인에서 삭제할 수 있음을 Google에 알리세요.

다음 예에서 Indexing API로 할 수 있는 작업을 알아볼 수 있습니다.

URL 업데이트하기

Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_UPDATED"
}
URL 삭제하기

Send the following HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish endpoint
{
  "url": "https://careers.google.com/jobs/google/technical-writer",
  "type": "URL_DELETED"
}
알림 상태 받기

Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata endpoint

매개변수

다음 표에서는 모든 메소드(URL 업데이트 및 삭제)에 필요한 필드를 설명합니다.

필드
url

필수

업데이트하거나 삭제하려는 항목의 정규화된 위치입니다.

type

필수

제출한 알림의 유형입니다.

가이드라인

다음 가이드라인은 URL 요청 업데이트 및 삭제에 적용됩니다.

  • 모든 https://indexing.googleapis.com/v3/UrlNotifications:publish 호출은 Content-Type 헤더로 'application/json'을 사용해야 합니다.
  • 업데이트 요청의 본문에서 하나의 URL만 제출하거나 일괄 색인 생성 요청 보내기에 설명된 대로 최대 100개의 요청을 일괄적으로 결합할 수 있습니다.
  • 이 예에 표시된 요청 본문은 액세스 토큰 예제에 사용된 content 변수의 값입니다.

URL 업데이트하기

크롤링할 새로운 URL 또는 이전에 제출된 URL의 콘텐츠가 업데이트되었음을 Google에 알리려면 다음 단계를 따르세요.

  1. 다음 엔드포인트에 POST 요청을 제출합니다.
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. 요청 본문에서 다음 구문을 사용하여 페이지의 위치를 지정합니다.
    {
      "url": "content_location",
      "type": "URL_UPDATED"
    }
  3. Google은 정상적인 Indexing API 호출에 HTTP 200으로 응답합니다. HTTP 200 응답은 Google에서 곧 이 URL을 다시 크롤링할 수 있다는 의미입니다. 응답 본문에는 UrlNotificationMetadata 객체가 포함되며, 이 객체의 필드는 알림 상태 요청에서 반환된 필드에 해당합니다.
  4. HTTP 200 응답을 받을 수 없는 경우 Indexing API 관련 오류를 참고합니다.
  5. 페이지의 콘텐츠가 변경된 경우 업데이트 알림을 다시 제출하면 Google에서 페이지를 다시 크롤링합니다.
  6. 기본값보다 많은 할당량이 필요할 수 있습니다. 현재 할당량을 확인하고 추가 할당량을 요청하려면 할당량을 참조하세요.

URL 삭제하기

서버에서 페이지를 삭제하거나 페이지의 <head> 섹션에 <meta name="robots" content="noindex" /> 태그를 추가한 경우, Google에 알려서 색인에서 페이지를 삭제하고 페이지를 다시 크롤링 및 색인 생성하지 않도록 합니다. 삭제를 요청하려면 URL이 404 또는 410 상태 코드를 반환하거나 페이지에 <meta name="robots" content="noindex" /> meta 태그가 포함되어 있어야 합니다.

색인에서 삭제를 요청하려면 다음 단계를 따르세요.

  1. 다음 엔드포인트에 POST 요청을 제출합니다.
    Send a HTTP POST request to https://indexing.googleapis.com/v3/urlNotifications:publish
  2. 다음 구문을 사용하여 요청 본문에서 삭제할 URL을 지정합니다.
    {
      "url": "content_location",
      "type": "URL_DELETED"
    }

    예:

    {
      "url": "https://careers.google.com/jobs/google/technical-writer",
      "type": "URL_DELETED"
    }
  3. Google은 정상적인 Indexing API 호출에 HTTP 200으로 응답합니다. HTTP 200 응답은 Google이 색인에서 이 URL을 삭제할 수 있다는 의미입니다. 응답 본문에는 UrlNotificationMetadata 객체가 포함되며, 이 객체의 필드는 알림 상태 요청에서 반환된 필드에 해당합니다.
  4. HTTP 200 응답을 받을 수 없는 경우 Indexing API 관련 오류를 참고합니다.
  5. 기본값보다 많은 할당량이 필요할 수 있습니다. 현재 할당량을 확인하고 추가 할당량을 요청하려면 할당량을 참조하세요.

알림 상태 받기

Indexing API를 사용하여 URL과 관련된 각각의 알림 유형을 Google에서 마지막으로 수신한 시간을 확인할 수 있습니다. GET 요청은 Google에서 URL을 색인 생성하거나 삭제한 시기를 알려 주지 않으며, 요청을 정상적으로 제출했는지 여부만 반환합니다.

알림 상태를 확인하려면 다음 단계를 따르세요.

  1. 다음 엔드포인트에 GET 요청을 제출합니다. 지정하는 URL은 URL로 인코딩되어야 합니다. 예를 들어 :(콜론)은 %3A로, /(슬래시)는 %2F로 변경합니다.
    Send a HTTP GET request to https://indexing.googleapis.com/v3/urlNotifications/metadata?url=url-encoded_url

    예:

    GET https://indexing.googleapis.com/v3/urlNotifications/metadata?url=https%3A%2F%2Fcareers.google.com%2Fjobs%2Fgoogle%2Ftechnical-writer
    
  2. Indexing API에서 알림에 관한 세부정보가 포함된 페이로드와 함께 HTTP 200 메시지로 응답합니다. 다음 예에서 업데이트 및 삭제 알림에 관한 정보가 포함된 응답의 본문을 확인할 수 있습니다.
    {
      url: "http://foo.com",
      latest_update: {
        type: "URL_UPDATED",
        notify_time: "2017-07-31T19:30:54.524457662Z"
      },
      latest_remove: {
        type: "URL_DELETED",
        notify_time: "2017-08-31T19:30:54.524457662Z"
      }
    }
    
  3. HTTP 200 응답을 받을 수 없는 경우 Indexing API 관련 오류를 참고합니다.
  4. 기본값보다 많은 할당량이 필요할 수 있습니다. 현재 할당량을 확인하고 추가 할당량을 요청하려면 할당량을 참조하세요.

일괄 색인 생성 요청 보내기

클라이언트에 필요한 HTTP 연결의 수를 줄이기 위해 최대 100건의 Indexing API 호출을 하나의 HTTP 요청으로 결합할 수 있습니다. 배치라고 부르는 다중 요청에서 이 작업을 할 수 있습니다.

Indexing API에 일괄 요청을 전송할 때는 다음 엔드포인트를 사용하세요.

https://indexing.googleapis.com/batch

일괄 요청의 본문에는 여러 부분이 포함됩니다. 각 부분은 자체로 완전한 HTTP 요청이며 자체의 동사, URL, 헤더 및 본문이 있습니다. 일괄 요청 내 각 부분의 크기는 1MB를 초과할 수 없습니다.

일괄 요청을 더 쉽게 보낼 수 있도록 Google API 클라이언트 라이브러리에서는 일괄 처리 기능을 지원합니다. 클라이언트 라이브러리를 통한 일괄 처리를 자세히 알아보려면 다음 언어별 페이지를 참조하세요.

이러한 페이지의 일괄 처리 예시를 사용하는 경우 액세스 토큰 가져오기에 설명된 구현 요구사항을 반영하도록 코드를 업데이트해야 할 수 있습니다.

아래의 일괄 요청 메시지 본문 예시에는 업데이트 알림과 삭제 알림이 포함되어 있습니다.

POST /batch HTTP/1.1
Host: indexing.googleapis.com
Content-Length: content_length
Content-Type: multipart/mixed; boundary="===============7330845974216740156=="
Authorization: Bearer oauth2_token

--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+2>

POST /v3/urlNotifications:publish [1]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/42", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+1>

POST /v3/urlNotifications:publish [2]
Content-Type: application/json
accept: application/json
content-length: 75

{ "url": "http://example.com/widgets/1", "type": "URL_UPDATED" }
--===============7330845974216740156==
Content-Type: application/http
Content-Transfer-Encoding: binary
Content-ID: <b29c5de2-0db4-490b-b421-6a51b598bd22+3>

POST /v3/urlNotifications:publish [3]
Content-Type: application/json
accept: application/json
content-length: 58

{ "url": "http://example.com/jobs/43", "type": "URL_DELETED" }
--===============7330845974216740156==

자세한 내용은 일괄 요청 보내기를 참고하세요.