IndexNow๋ฅผ ํ์ฉํ์ฌ ์น์ฌ์ดํธ ์ฝํ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ๋ฐ์ํ๋ ๋ฐฉ๋ฒ
์น์ฌ์ดํธ์ ์ฝํ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒ์ ์์ง์ ์ ์ํ๊ฒ ์๋ฆฌ๋ IndexNow ์ฌ์ฉ ๋ฐฉ๋ฒ์ ๋ํด ์์๋ด ๋๋ค. IndexNow API ํค ๋ฐ๊ธ ๋ฐ ํธ์คํ , JSON ํ์์ URL ์ ์ถ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ RSS ํผ๋๋ฅผ ์ด์ฉํ ์๋ ์์ธ ์์ฒญ ์คํฌ๋ฆฝํธ ์ ์ฉ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค. IndexNow๋ฅผ ํตํด ๊ฒ์ ๊ฒฐ๊ณผ์ ๋น ๋ฅด๊ฒ ๋ฐ์ํ๊ณ SEO ์ต์ ํ ํจ์จ์ ๋์ฌ๋ณด์ธ์!
IndexNow ์๊ฐ ๋ฐ ๊ฒ์ ์์ง ์ต์ ํ(SEO)์์์ ์ญํ
IndexNow๋ ์น์ฌ์ดํธ์ ์ฝํ ์ธ ๋ณ๊ฒฝ ์ฌํญ(์ ๊ธ ๋ฐํ, ์์ , ์ญ์ )์ Google, Bing, Yandex ๋ฑ ์ฐธ์ฌ ๊ฒ์ ์์ง์ ์ ์ํ๊ฒ ์๋ฆด ์ ์๋ ์คํ ํ์ค ํ๋กํ ์ฝ์ ๋๋ค. ๊ธฐ์กด์๋ ๊ฒ์ ์์ง ํฌ๋กค๋ฌ๊ฐ ์ฌ์ดํธ๋ฅผ ๋ฐฉ๋ฌธํ ๋๊น์ง ๊ธฐ๋ค๋ ค์ผ ํ์ง๋ง, IndexNow ์ฌ์ฉ ๋ฐฉ๋ฒ์ ์ ์ฉํ๋ฉด ์น์ฌ์ดํธ์์ URL์ ๊ฒ์ ์์ง์ ์ฆ์ ์ ์ถํ์ฌ ์น์ฌ์ดํธ ์ฝํ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ์ ๋ฐ์ํ ์ ์์ต๋๋ค. ์ด๋ ๊ฒ์ ๊ฒฐ๊ณผ์ ๋น ๋ฅด๊ฒ ๋ ธ์ถ๋์ด SEO ์ต์ ํ์ ํฐ ๋์์ด ๋๋ฉฐ, ํฌ๋กค๋ง ์์ฐ์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํ ์ ์๊ฒ ํฉ๋๋ค.
ํนํ, API ํค๋ฅผ ํ์ฉํด ์๋์ผ๋ก URL์ ์ ์ถํ ์ ์์ด ๊ด๋ฆฌ ํจ์จ์ฑ์ด ๋์์ง๋๋ค. ๋ํ, RSS ํผ๋๋ฅผ ํตํด ์ต์ ์ฝํ ์ธ ๋ฅผ ์๋์ผ๋ก ์๋ฆด ์ ์์ด ๊ด๋ฆฌ ํจ์จ์ฑ์ด ๋์์ง๋๋ค. IndexNow๋ ์น์ฌ์ดํธ์ ์ ์ํ ์์ธ ์์ฒญ์ ์ํ ๊ฐ์ฅ ํจ๊ณผ์ ์ธ ๋๊ตฌ ์ค ํ๋์ ๋๋ค.
IndexNow API ํค ๋ฐ๊ธ ๋ฐ ์๋ URL ์ ์ถ ์ ์ฐจ
IndexNow๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ API ํค๋ฅผ ๋ฐ๊ธ๋ฐ๊ณ , ์ด ํค๋ฅผ ์ด์ฉํด URL์ ์ ์ถํ๋ ๊ณผ์ ์ด ํ์ํฉ๋๋ค. Bing Webmaster Tools๋ฅผ ํตํด ํค๋ฅผ ๋ฐ๊ธ๋ฐ๊ณ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ผ๋ฐ์ ์ ๋๋ค.
1. Bing Webmaster Tools ๊ฐ์ ๋ฐ ์ฌ์ดํธ ๋ฑ๋ก
- Bing Webmaster Tools ์น์ฌ์ดํธ์ ๋ฐฉ๋ฌธํ์ฌ Microsoft ๊ณ์ ์ผ๋ก ๋ก๊ทธ์ธํฉ๋๋ค. (๊ณ์ ์ด ์๋ค๋ฉด ์๋ก ์์ฑํฉ๋๋ค.)
- ๋ก๊ทธ์ธ ํ ๋์๋ณด๋์์ "์ฌ์ดํธ ์ถ๊ฐ"๋ฅผ ํด๋ฆญํ๊ณ , ์์ ์ ์น์ฌ์ดํธ URL์ ์ ๋ ฅํฉ๋๋ค.
- ์ฌ์ดํธ ์์ ํ์ธ ์ ์ฐจ(HTML ํ์ผ ์ ๋ก๋, ๋ฉํ ํ๊ทธ ์ถ๊ฐ, ๋๋ DNS ๋ ์ฝ๋ ์ถ๊ฐ)๋ฅผ ์๋ฃํฉ๋๋ค.
IndexNow ๊ณต์ ์น์ฌ์ดํธ: IndexNow | Bing Webmaster Tools
2. IndexNow API ํค ๋ฐ๊ธ ๋ฐฉ๋ฒ
API ํค ์์ฑ ๋ฐ ํธ์คํ
- ์ฌ์ดํธ ๋์๋ณด๋์์ "IndexNow" ์น์ ์ ์ฐพ์ API ํค๋ฅผ ์์ฑํฉ๋๋ค.
- ์์ฑ๋ API ํค๋ฅผ ๋ณต์ฌํ์ฌ ์์ ํ ๊ณณ์ ์ ์ฅํฉ๋๋ค. API ํค๋ ๊ฐ ์ฌ์ดํธ๋ง๋ค ๊ณ ์ ํ๋ฉฐ, ๋ณด์์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
- ์์ฑํ API ํค๋ฅผ ์น์ฌ์ดํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ UTF-8 ํ์์ ํ ์คํธ ํ์ผ๋ก ํธ์คํ ํด์ผ ํฉ๋๋ค. ํ์ผ๋ช ์ API ํค ๊ฐ๊ณผ ๋์ผํ๊ฒ ์ง์ ๋ฉ๋๋ค.
- ์์ ๊ฒฝ๋ก:
https://www.example.com/b9d89505474244e4898ec830e96aed1e.txt์ ํ์ผ ๋ด์ฉ์ผ๋ก API ํค๋ฅผ ํฌํจ์ํต๋๋ค.
์ฃผ์: API ํค ํ์ผ์ IndexNow ์๋ฒ๊ฐ ์์ ๊ถ์ ๊ฒ์ฆํ๊ธฐ ์ํด ํ์์ ์ผ๋ก ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ํธ์คํ ๋์ด์ผ ํฉ๋๋ค.
3. URL ์ ์ถ (JSON POST ์์ฒญ)
URL์ ์ ์ถํ๊ธฐ ์ํด์๋ JSON ํ์์ผ๋ก HTTP POST ์์ฒญ์ IndexNow ์๋ํฌ์ธํธ(https://api.indexnow.org/indexnow)๋ก ๋ณด๋
๋๋ค. ์ด ์์ฒญ์ ํตํด ์ฌ๋ฌ ๊ฐ์ URL์ ํ ๋ฒ์ ์ ์ถํ์ฌ ์ ์ํ URL ์์ธ ์์ฒญ์ด ๊ฐ๋ฅํฉ๋๋ค.
{
"host": "www.example.org",
"key": "b9d89505474244e4898ec830e96aed1e",
"keyLocation": "https://www.example.org/b9d89505474244e4898ec830e96aed1e.txt",
"urlList": [
"https://www.example.org/url1",
"https://www.example.org/folder/url2",
"https://www.example.org/url3"
]
}
4. HTTP ์๋ต ๋ฐ ์ํ ๋ชจ๋ํฐ๋ง
์์ฒญ ํ ์๋ฒ๋ ๋ค์ํ HTTP ์๋ต ์ฝ๋๋ฅผ ๋ฐํํ๋ฉฐ, URL ์ ์ถ ์ํ๋ฅผ ๋ํ๋ ๋๋ค.
- 200 (OK): URL ์ ์ถ ์ฑ๊ณต (๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฑ๊ณต ์๋ต)
- 400 (Bad Request): ์์ฒญ ํ์ ์ค๋ฅ (JSON ํฌ๋งท, ํ์ ํ๋ ๋๋ฝ ๋ฑ ํ์ธ)
- 403 (Forbidden): ์ ํจํ์ง ์์ API ํค ๋๋ ํค ํ์ผ ์ ๊ทผ ๋ถ๊ฐ
- 422 (Unprocessable Entity): ์ ์ถ๋ URL์ด ํธ์คํธ์ ์ํ์ง ์๊ฑฐ๋ ํค๊ฐ ์ผ์นํ์ง ์์
- 429 (Too Many Requests): ์ผ์ผ ํ์ฉ ์์ฒญ ํ์ ์ด๊ณผ (์์ฒญ ๋น๋ ์กฐ์ ํ์)
Bing Webmaster Tools๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ถํ URL์ด ๊ฒ์ ์์ง์ ์ ๋๋ก ์ ๋ฌ๋์๋์ง ์ฃผ๊ธฐ์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ์ฌ ์์ธ ์์ฒญ์ ์ฑ๊ณต ์ฌ๋ถ๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
์๋ํ๋ฅผ ์ํ RSS ํผ๋ ์ฐ๋ ๋ฐ ์คํฌ๋ฆฝํธ ํ์ฉ
IndexNow๋ RSS ํผ๋๋ฅผ ํ์ฉํ์ฌ ์๋์ผ๋ก ํ์ด์ง ๋ณ๊ฒฝ ์ฌํญ์ ๊ฐ์งํ๊ณ URL ์ ์ถ์ ์์ฒญํ๋ ์คํฌ๋ฆฝํธ ๋ฐฉ์์ผ๋ก๋ ๊ตฌํํ ์ ์์ต๋๋ค. ์ด ๋ฐฉ์์ ์น์ฌ์ดํธ์ ๊ด๋ฆฌ ํจ์จ์ฑ์ ํฌ๊ฒ ๋์ฌ์ค๋๋ค.
์๋ ๋ฐ์ก ์คํฌ๋ฆฝํธ (RSS ์ฐ๋)
์๋ JavaScript ์คํฌ๋ฆฝํธ๋ ์นํ์ด์ง ๋ก๋ ์ RSS ํผ๋์์ ์ต์ URL ๋ชฉ๋ก์ ๊ฐ์ ธ์ IndexNow API์ ์ ์ถํฉ๋๋ค. ์ค๋ณต ์์ฒญ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฃจ์ ํ ๋ฒ๋ง ์คํ๋๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด ์ฝ๋๋ฅผ ์น์ฌ์ดํธ HTML์ head ํ๊ทธ๋ ์ ์ ํ ์์น์ ์ฝ์ ํ์ฌ ์๋ํ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
- ํ์ด์ง๊ฐ ๋ก๋๋ ๋ URL ์ ์ถ์ ํ๋ฃจ์ ํ ๋ฒ๋ง ์คํํ๋๋ก ๋ก์ปฌ ์คํ ๋ฆฌ์ง๋ฅผ ํ์ฉํฉ๋๋ค. ์ด๋ฌํ ๋ฐฉ์์ ๋ถํ์ํ ์ค๋ณต ์์ฒญ์ ๋ฐฉ์งํ๋ฉฐ, ํจ์จ์ ์ธ URL ์ ์ถ์ ๋ณด์ฅํฉ๋๋ค.
- API ํค, ํค ํ์ผ URL, ํธ์คํธ, RSS ํผ๋ URL์ ์์ ์ ์ ๋ณด๋ก ์ ํํ ์์ ํด์ผ ํฉ๋๋ค.
async function fetchRssUrls(rssUrl) {
const response = await fetch(rssUrl);
const text = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(text, "application/xml");
// RSS/Atom ํผ๋ ๊ตฌ์กฐ์ ๋ง๊ฒ link ํ๊ทธ ๋๋ item์ link๋ฅผ ํ์ฑํด์ผ ํจ
const urls = Array.from(xmlDoc.getElementsByTagName("link")).map(link = link.textContent);
return urls;
}
async function submitUrlsToIndexNow(rssUrl) {
const apiKey = 'b9d89505474244e4898ec830e96aed1e';
const keyLocation = 'https://www.example.com/b9d89505474244e4898ec830e96aed1e.txt'; // ํธ์คํ
๋ ํค ํ์ผ์ URL
const host = 'www.example.com'; // ๊ทํ์ ๋๋ฉ์ธ
// RSS ํผ๋์์ URL ๊ฐ์ ธ์ค๊ธฐ
const urls = await fetchRssUrls(rssUrl);
const requestBody = {
host: host,
key: apiKey,
keyLocation: keyLocation,
urlList: urls
};
try {
const response = await fetch('https://api.indexnow.org/indexnow', {
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8'
},
body: JSON.stringify(requestBody)
});
const result = await response.json();
if (response.ok) {
console.log('URLs submitted successfully:', result);
} else {
console.error('Error submitting URLs:', result);
}
} catch (error) {
console.error('Fetch error:', error);
}
}
function shouldRunOnceADay() {
const lastRun = localStorage.getItem('lastIndexNowRun');
const now = Date.now();
// ํ๋ฃจ (24์๊ฐ) ๋ฐ๋ฆฌ์ด
const oneDay = 24 * 60 * 60 * 1000;
if (!lastRun || (now - lastRun) oneDay) {
localStorage.setItem('lastIndexNowRun', now);
return true;
}
return false;
}
// ํ์ด์ง ๋ก๋ ์ ์คํ
window.addEventListener('load', () = {
const rssFeedUrl = 'https://example.com/rss'; // RSS ํผ๋ URL
if (shouldRunOnceADay()) {
submitUrlsToIndexNow(rssFeedUrl);
} else {
console.log('Already executed today.');
}
});
์ด์ ๊ฐ์ ์ ์ฐจ๋ฅผ ํตํด IndexNow๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ์ฌ ์น์ฌ์ดํธ์ URL์ ๊ฒ์ ์์ง์ ์ ์ํ๊ฒ ์ ์ถํ๊ณ SEO ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.

์ฐธ๊ณ : IndexNow๋ ๋ชจ๋ ์น ํธ์คํ ํ๊ฒฝ์ ์ง์ํ์ง ์์ผ๋ฉฐ, ํนํ ์ผ๋ถ ๋ธ๋ก๊ทธ ์๋น์ค(์: ํฐ์คํ ๋ฆฌ)์์๋ ์ง์ ์ ์ธ API ํค ํธ์คํ ๋ฐ ์๋ฒ ์ธก ์คํฌ๋ฆฝํธ ์คํ์ ์ ํ์ด ์์ด ์ฌ์ฉ์ด ๋ถ๊ฐ๋ฅํ ์ ์์ต๋๋ค. ์ฌ์ฉ ์ ํธ์คํ ํ๊ฒฝ์ ํ์ธํด์ผ ํฉ๋๋ค.
Q1. IndexNow๋ Google์๋ ์ ํจํ๊ฐ์?
A1. ๋ค, IndexNow๋ Bing์์ ์์๋ ํ๋กํ ์ฝ์ด์ง๋ง, ํ์ฌ Google์ ํฌํจํ ์ฌ๋ฌ ์ฃผ์ ๊ฒ์ ์์ง์ด ์ด ํ๋กํ ์ฝ์ ์ง์ํ๊ณ ์์ต๋๋ค. ๋ฐ๋ผ์ IndexNow API๋ฅผ ํตํด ์ ์ถ๋ URL์ Google ๊ฒ์ ๊ฒฐ๊ณผ์๋ ์ ์ํ ์์ธ ๋ฐ์์ ๊ธฐ๋ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋กฑํ ์ผ ํค์๋๋ฅผ ํฌํจํ ๋ชจ๋ ์ฝํ ์ธ ์ ๋ ธ์ถ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
Q2. IndexNow API ํค๋ฅผ ์ง์ ๋ ธ์ถํด๋ ์์ ํ๊ฐ์?
A2. IndexNow API ํค๋ ์น์ฌ์ดํธ์ ๋ฃจํธ ๋๋ ํ ๋ฆฌ์ ํ์ผ ํํ๋ก ํธ์คํ ๋์ด์ผ ํ๋ฏ๋ก ์์ ํ ์จ๊ธฐ๊ธฐ๋ ์ด๋ ต์ต๋๋ค. ํ์ง๋ง ์ด ํค๋ ์ค์ง URL ์ ์ถ ์ฉ๋๋ก๋ง ์ฌ์ฉ๋๋ฉฐ, ํค๋ฅผ ๋ฐ๊ธ๋ฐ์ ์น์ฌ์ดํธ์ URL๋ง ์ ์ถํ ์ ์๋๋ก ์์คํ ์ ์ผ๋ก ์ ํ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ค๋ฅธ ์ฌ๋์ด ํค๋ฅผ ์์๋ ๋ค๋ฅธ ์ฌ์ดํธ์ ์์ธ์ ์์ฒญํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ด ๋ณด์ ์ํ์ ์๋์ ์ผ๋ก ๋ฎ์ต๋๋ค. ๊ทธ๋ผ์๋ ๋ถ๊ตฌํ๊ณ , ํค ํ์ผ์ ๋ฌด๋จ ๋ณ๊ฒฝ์ ๋ฐฉ์งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
Q3. IndexNow๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ์กด์ ์ฌ์ดํธ๋งต(Sitemap) ์ ์ถ์ด ๋ถํ์ํ๊ฐ์?
A3. ๊ทธ๋ ์ง ์์ต๋๋ค. IndexNow๋ ์ฝํ ์ธ ๋ณ๊ฒฝ ์ฌํญ์ ์ฆ๊ฐ์ ์ธ ๋ฐ์์ ์ค์ ์ ๋๋ ๋ฐ๋ฉด, ์ฌ์ดํธ๋งต์ ์น์ฌ์ดํธ์ ์ ์ฒด ๊ตฌ์กฐ์ ๋ชจ๋ URL ๋ชฉ๋ก์ ๊ฒ์ ์์ง์ ์ ๊ณตํ๋ ์ญํ ์ ํฉ๋๋ค. IndexNow์ ์ฌ์ดํธ๋งต์ ์ํธ ๋ณด์์ ์ธ ๊ด๊ณ์ด๋ฉฐ, ๊ฒ์ ์์ง ์ต์ ํ ์ ๋ต์ ์ผํ์ผ๋ก ๋ ๊ฐ์ง ๋ชจ๋ ์ฌ์ฉํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค.