IndexNow 사용법
IndexNow
IndexNow는 현재 Bing(마이크로소프트, 미국), Naver(한국), Yandex(소련) 등이 지원하고 있습니다.
키획득
- https://www.bing.com/indexnow/getstarted
- Generate API key
- Host your API key
- SubmitURLs
Bing
POST 방식
$urlList = [env('APP_URL').'/'.$path];
$query = [
'host'=> env('APP_URL'),
'key'=> env('INDEXNOW_KEY'),
'keyLocation'=>env('APP_URL').'/'.env('INDEXNOW_KEY').'.txt',
'urlList'=> $urlList
];
$client = new \GuzzleHttp\Client();
$endpoint = 'api.indexnow.org';
$response = $client->request('POST', $endpoint, ['form_params' => $query]);
확인
https://www.bing.com/webmasters 로 로그인 후 IndexNow로 들어가면 현재 진행된 내용을 볼 수 있습니다.
Naver
https://searchadvisor.naver.com/indexnow?key=4c1b569...&keyLocation=https://www.onstory.fun/4c1b569....txt&url=https://www.onstory.fun/doc/programming/nodejs
- Laravel에서 GuzzleHttp 를 이용하여 간단히 만든 네이버용 IndexNow
GET 방식
$client = new \GuzzleHttp\Client();
$endpoint = 'searchadvisor.naver.com/indexnow';
$query = [
'key'=> env('INDEXNOW_KEY'),
'keyLocation'=>env('APP_URL').'/'.env('INDEXNOW_KEY').'.txt',
'url'=>env('APP_URL').'/'.$path
];
$response = $client->request('GET', $endpoint, ['query' => $query]); // GET 을 사용할 경우 'query' 변수에 담아 보낸다.
Log::info($response->getStatusCode());
POST 방식
이 부분은 네이버에서 제공하는 API와 다른지 에러가 발생합니다.
참조로만 봐 주시기 바랍니다. 이후 성공시 업데이트 하도록 하겠습니다.
$urlList = [env('APP_URL').'/'.$path];
$query = [
'host'=> env('APP_URL'),
'key'=> env('INDEXNOW_KEY'),
'keyLocation'=>env('APP_URL').'/'.env('INDEXNOW_KEY').'.txt',
'urlList'=> $urlList
];
$headers = [
'Content-Type' => 'application/json; charset=utf-8'
];
$endpoint = 'https://searchadvisor.naver.com/indexnow';
$response = $client->request('POST', $endpoint, ['json' => $query, 'headers' => $headers]);