๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
SEO/seo-tips

IndexNow ์ธ๋ฑ์Šค ๋‚˜์šฐ ์‚ฌ์šฉ Bing ์›น๋งˆ์Šคํ„ฐ์—์„œ URL์„ ์‹ ์†ํ•˜๊ฒŒ ์ œ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

IndexNow๋กœ ์›น์‚ฌ์ดํŠธ ์ฝ˜ํ…์ธ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ฆ‰์‹œ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•

๋น™ ์›น๋งˆ์Šคํ„ฐ ์›น์‚ฌ์ดํŠธ์—์„œ URL์„ ๊ฒ€์ƒ‰ ์—”์ง„์— ์‹ ์†ํ•˜๊ฒŒ ์ œ์ถœํ•  ์ˆ˜ ์žˆ๋Š” IndexNow ์‚ฌ์šฉ ๋ฐฉ๋ฒ• ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์›น์‚ฌ์ดํŠธ์˜ ์ฝ˜ํ…์ธ  ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ฆ‰์‹œ ๋ฐ˜์˜ํ•˜์—ฌ ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋น ๋ฅด๊ฒŒ ๋…ธ์ถœ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŠนํžˆ, API ํ‚ค๋ฅผ ํ™œ์šฉํ•ด ์ž๋™์œผ๋กœ URL์„ ์ œ์ถœํ•  ์ˆ˜ ์žˆ์–ด SEO ์ตœ์ ํ™”์— ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, RSS ํ”ผ๋“œ๋ฅผ ํ†ตํ•ด ์ตœ์‹  ์ฝ˜ํ…์ธ ๋ฅผ ์ž๋™์œผ๋กœ ์•Œ๋ฆด ์ˆ˜ ์žˆ์–ด ๊ด€๋ฆฌ ํšจ์œจ์„ฑ์ด ๋†’์•„์ง‘๋‹ˆ๋‹ค.

IndexNow ์ธ๋ฑ์Šค ๋‚˜์šฐ ์‚ฌ์šฉ ๋ฐฉ๋ฒ•

Bing Webmaster Tools ๊ฐ€์ž…

  • Bing Webmaster Tools ์›น์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•ฉ๋‹ˆ๋‹ค.
  • Microsoft ๊ณ„์ •์œผ๋กœ ๋กœ๊ทธ์ธํ•ฉ๋‹ˆ๋‹ค. ๊ณ„์ •์ด ์—†๋‹ค๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ ์ถ”๊ฐ€

  • ๋กœ๊ทธ์ธ ํ›„ ๋Œ€์‹œ๋ณด๋“œ์—์„œ "์‚ฌ์ดํŠธ ์ถ”๊ฐ€" ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ์ž์‹ ์˜ ์›น์‚ฌ์ดํŠธ URL์„ ์ž…๋ ฅํ•˜๊ณ  "์ถ”๊ฐ€" ๋ฒ„ํŠผ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

์‚ฌ์ดํŠธ ์†Œ์œ  ํ™•์ธ

  • ์‚ฌ์ดํŠธ ์†Œ์œ ๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด HTML ํŒŒ์ผ ์—…๋กœ๋“œ, ๋ฉ”ํƒ€ ํƒœ๊ทธ ์ถ”๊ฐ€, ๋˜๋Š” DNS ๋ ˆ์ฝ”๋“œ ์ถ”๊ฐ€ ์ค‘ ํ•˜๋‚˜์˜ ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์ธ์ด ์™„๋ฃŒ๋˜๋ฉด ๋Œ€์‹œ๋ณด๋“œ์—์„œ ์‚ฌ์ดํŠธ๊ฐ€ ๋ชฉ๋ก์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

IndexNow | Bing Webmaster Tools

IndexNow API ํ‚ค ๋ฐœ๊ธ‰ ๋ฐฉ๋ฒ•

1. API ํ‚ค ์ƒ์„ฑ

  • ์‚ฌ์ดํŠธ ๋Œ€์‹œ๋ณด๋“œ์—์„œ "IndexNow" ์„น์…˜์„ ์ฐพ์•„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.
  • ์—ฌ๊ธฐ์—์„œ API ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์ƒ์„ฑ๋œ API ํ‚ค๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์•ˆ์ „ํ•œ ๊ณณ์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

API ํ‚ค๋Š” ๊ฐ ์‚ฌ์ดํŠธ๋งˆ๋‹ค ๊ณ ์œ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์‚ฌ์ดํŠธ์— ์ ์šฉํ•˜๋ ค๋ฉด ๋ณ„๋„์˜ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์•„์•ผ ํ•˜๋ฉฐ, ๋ฐœ๊ธ‰๋ฐ›์€ API ํ‚ค๋Š” ๋ณด์•ˆ์— ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

2. API ํ‚ค ํ˜ธ์ŠคํŒ…

  • ์ƒ์„ฑํ•œ API ํ‚ค๋Š” ์›น์‚ฌ์ดํŠธ์˜ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— UTF-8 ํ˜•์‹์˜ ํ…์ŠคํŠธ ํŒŒ์ผ๋กœ ํ˜ธ์ŠคํŒ…ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, https://www.example.com/b9d89505474244e4898ec830e96aed1e.txt์™€ ๊ฐ™์€ ๊ฒฝ๋กœ์— ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•˜๊ณ , ํŒŒ์ผ ๋‚ด์šฉ์—๋Š” ์ƒ์„ฑํ•œ API ํ‚ค๋ฅผ ํฌํ•จ์‹œํ‚ต๋‹ˆ๋‹ค.

3. URL ์ œ์ถœ

  • URL์„ ์ œ์ถœํ•˜๊ธฐ ์œ„ํ•ด JSON ํ˜•์‹์œผ๋กœ HTTP POST ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์š”์ฒญ์˜ ๊ตฌ์กฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:
  • ์ด ์š”์ฒญ์„ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ 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 ์‘๋‹ต ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ฝ”๋“œ์˜ ์˜๋ฏธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

  • 200 (OK): URL ์ œ์ถœ ์„ฑ๊ณต
  • 400 (Bad Request): ์ž˜๋ชป๋œ ํ˜•์‹
  • 403 (Forbidden): ์œ ํšจํ•˜์ง€ ์•Š์€ ํ‚ค
  • 422 (Unprocessable Entity): URL์ด ํ˜ธ์ŠคํŠธ์— ์†ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ํ‚ค๊ฐ€ ์ผ์น˜ํ•˜์ง€ ์•Š์Œ
  • 429 (Too Many Requests): ์š”์ฒญ์ด ๋„ˆ๋ฌด ๋งŽ์Œ

5. URL ํ™•์ธ

  • Bing Webmaster Tools๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ์ถœํ•œ URL์ด ๊ฒ€์ƒ‰ ์—”์ง„์— ์ œ๋Œ€๋กœ ์ „๋‹ฌ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ œ์ถœ ์ƒํƒœ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IndexNow
IndexNow

RSS ๋ฅผ ์ด์šฉํ•ด์„œ ์ž๋™ ๋ฐœ์†กํ•˜๊ธฐ

์ž๋™์œผ๋กœ ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋ ๋•Œ ๋งˆ๋‹ค ์ผ์ •๊ธฐ๊ฐ„์„ ์„ค์ •ํ•ด์„œ ์ž๋™์œผ๋กœ ์ƒ‰์ธ ์š”์ฒญ์„ ์ง„ํ–‰ํ• ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ์‚ฌ์ดํŠธ์™€ API ํ‚ค, RSS ์ฃผ์†Œ๋ฅผ ์ˆ˜์ •ํ•ด์„œ HTML ํ—ค๋“œ์— ๋„ฃ์–ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  • ํŽ˜์ด์ง€๊ฐ€ ๋กœ๋“œ๋  ๋•Œ URL ์ œ์ถœ์„ ํ•˜๋ฃจ์— ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰ํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ด๋ฅผ ์œ„ํ•ด ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ๋งˆ์ง€๋ง‰ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์ €์žฅํ•˜๊ณ , ํ˜„์žฌ ์‹œ๊ฐ„๊ณผ ๋น„๊ตํ•˜์—ฌ ํ•˜๋ฃจ๊ฐ€ ๊ฒฝ๊ณผํ–ˆ๋Š”์ง€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์ค‘๋ณต ์š”์ฒญ์„ ๋ฐฉ์ง€ํ•˜๋ฉฐ, ํšจ์œจ์ ์ธ URL ์ œ์ถœ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ด์™€ ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด IndexNow๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•˜์—ฌ ์›น์‚ฌ์ดํŠธ์˜ 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");
    
    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.');
    }
});
์ธ๋ฑ์Šค๋‚˜์šฐ๋Š” ์ผ๋ถ€ ๋ธ”๋กœ๊ทธ(ํ‹ฐ์Šคํ† ๋ฆฌ)์—์„œ๋Š” ์‚ฌ์šฉ์„ ํ• ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

'SEO > seo-tips' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ ํฐํŠธ ์ตœ์ ํ™” ] ๊ฒ€์ƒ‰์—”์ง„ ์ตœ์ ํ™”(SEO)์—์„œ ํฐํŠธ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฒ•  (0) 2024.10.22
[ ๋ธ”๋กœ๊ทธ ๊ธ€์ž ์ƒ‰์ƒ ์ตœ์ ํ™” ] ๊ธฐ๋ณธ ์Šคํ‚จ ๊ธ€์ž ์ƒ‰์ƒ, ์ด๋ ‡๊ฒŒ ๋ฐ”๊ฟ”์•ผ SEO์— ์ข‹์Šต๋‹ˆ๋‹ค  (0) 2024.10.22
๊ตฌ๊ธ€ ์• ๋“œ์„ผ์Šค ์Šน์ธ ๋ฐ˜๋ ค ์ด์œ ์™€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ• ์ด์ •๋ฆฌ  (0) 2024.10.21
ํŽ˜์ด์ง€ ์ฃผ์†Œ ์„ ํƒ ์‹œ ๋ฌธ์ž์™€ ์ˆซ์ž, ์–ด๋–ค ๊ฒƒ์ด ๋” ํšจ๊ณผ์ ์ธ๊ฐ€?  (0) 2024.10.20
[ LCP ์†๋„ ์ตœ์ ํ™” ]์ฝ˜ํ…์ธ  ํ‘œ์‹œ ์‹œ๊ฐ„ LCP ์†๋„ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ด๋ฏธ์ง€ ์ตœ์ ํ™”  (0) 2024.10.20
[์ด๋ฏธ์ง€ ์ตœ์ ํ™” ] ์ด๋ฏธ์ง€ ์‚ฌ์šฉ์‹œ ๋ธ”๋กœ๊ทธ ์ €ํ’ˆ์งˆ ์˜ˆ๋ฐฉ ๋ฐฉ๋ฒ• ๋ฐ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•  (0) 2024.10.19
๋กœ๋”ฉ์†๋„ ์ตœ์ ํ™” ์›นํŽ˜์ด์ง€ ๋กœ๋”ฉ์˜ ๋‹จ๊ณ„๋ณ„ ๊ณผ์ •๊ณผ ์Šคํƒ€์ผ ์ ์šฉ ๋‹จ๊ณ„ ์„ค๋ช…  (0) 2024.10.18