Sitemap Generator Language Table of Contents
 Japanese [日本語]  
 English [英語]  
 Korean [韓国語]  
 Simplified Chinese [简体中文]  
 Traditional Chinese [繁體中文]  
 Español [スペイン語]  
 Français [フランス語]  
 Português [ポルトガル語]  
 Arabic العربية [アラビア語]  
 Deutsch [ドイツ語]  
 Italiano [イタリア語]  
 Russian [ロシア語]  
 Turkish [トルコ語]  
 Hindi [ヒンディー語]  
 Vietnamese [ベトナム語]  
 Thai [タイ語]  
 Dutch [オランダ語]  
 Indonesian [インドネシア語]  
 Malay [マレー語]  
 Filipino [フィリピン語]  
 Swedish [スウェーデン語]  
 Norwegian [ノルウェー語]  
 Danish [デンマーク語]  
 Finnish [フィンランド語]  
 Polish [ポーランド語]  
 Czech [チェコ語]  
 Hungarian [ハンガリー語]  
 Greek [ギリシャ語]  
 Romanian [ルーマニア語]  

XML 사이트맵 생성 프로그램
XML Sitemap Generator
코드를 복사하고 프로그램을 만드세요.
XML 사이트맵 샘플

소개
사이트맵은 웹 사이트의 구조와 콘텐츠를 나열한 페이지 또는 파일로, 사용자와 검색 엔진이 사이트의 정보를 이해하고 탐색하는 데 도움을 줍니다.
이 페이지의 제목은 'XML 사이트맵 생성 프로그램'이지만, 현재 보시는 페이지 내에서 사이트맵을 생성하는 도구는 아닙니다.
이 페이지에서는 XML 형식의 사이트맵을 생성하고 가져오는 코드를 소개하고 있습니다. 아래의코드  를 자신의 사이트 서버에 업로드하고 프로그램을 실행하면 됩니다. 코드 수정은 자유입니다. 자유롭게 이용하시기 바랍니다.
면책 조항
사이트 구조에 따라 이 프로그램이 사이트맵을 생성하지 못할 가능성이 있습니다.
이 프로그램은 사이트가 UTF-8로 작성되었다고 가정합니다. 그러나 전체 콘텐츠가 UTF-8이라 하더라도 HTML 태그가 프로그램의 패턴과 일치하지 않으면 작동하지 않을 수 있습니다.
위험 사항
이 프로그램은 기본적으로 온라인 환경에서 실행하는 것을 전제로 합니다. 따라서 다음과 같은 위험이 존재합니다.
  1. 제3자 변조 위험: 악의적인 제3자가 PHP 프로그램을 실행하여 루트를 변경할 수 있습니다.
  2. 서버 성능: 파일/디렉토리가 많으면 시간과 메모리가 필요하며 서버 로드에 영향을 줄 수 있습니다.
  3. Googlebot에 미치는 영향: Googlebot이 사이트맵을 참조하는 동안 프로그램이 크롤링되면 올바른 정보가 봇에 전달되지 않을 수 있습니다.
취한 조치
위험을 줄이기 위해 다음과 같은 조치를 취했습니다.
  1. 생성된 파일 보관: 생성된 사이트맵 파일의 보안을 강화하기 위해 프로그램은 다음 단계를 따릅니다.
    1. 임시 저장소: 사이트맵 파일은 먼저 루트 디렉토리 외부의 임시 저장소에 임시로 저장되어 웹 서버에서 직접 쓰기나 제3자에 의한 조작을 방지합니다.
    2. 파일 이름 바꾸기: 생성된 사이트맵 파일은 임시 위치에 저장한 후 이름을 바꾼다. 이 절차는 원래의 파일 이름을 변경하여 변조 위험을 줄입니다.
취한 조치
위험을 줄이기 위해 다음과 같은 조치를 취했습니다.
  1. 프로그램 파일 삭제: 사이트맵 생성 후 업로드한 프로그램 파일을 서버에서 즉시 삭제하세요.
  2. 안전한 환경에서 실행: 파일을 원격 서버에 올릴 때 주의하고 위험하다고 생각되면 로컬에서 실행을 고려하세요.
  3. 부하 모니터링: 서버 부하가 증가하면 즉시 사용을 중지하세요.
  4. Googlebot 대응: 사이트맵 생성 후 Google Search Console에서 크롤링 성공 여부를 확인하고 필요하면 수동으로 크롤링을 시작하세요.
  • 워드프레스와 같은 사이트맵 생성 플러그인이 있는 경우를 제외하고는 직접 사이트맵을 생성해야 합니다. 이때 이번에 소개하는 코드를 참고하시기 바랍니다.
  • 사이트맵의 구조, 필요성 등에 대해서는 상세히 설명한 사이트가 많으므로 여기서는 생략하고, PHP 코드만 소개합니다.
  • 코드의 각 항목에는 주석이 있으며, 선호하는 방법을 선택하세요.
  • 생성되는 XML 파일(.xml)은 아래와 같으며, 이는 구글에 등록할 때 필요한 최소한의 항목을 생성한 샘플입니다. 이 외에도 '페이지 제목', '업데이트 빈도', '우선순위'도 얻을 수 있습니다.
    XML 사이트맵 샘플
    ・최종 수정 날짜(<lastmod>)는 협정 세계시(UTC)로 표시됩니다.
    ・예를 들어, 일본 시간은 표시된 시간에 9시간을 더합니다.
  • 설치 단계
    1. 'sitemap' 등의 이름을 붙인 디렉토리(폴더)를 준비한다. 아래 코드를 복사하여 사용 중인 웹페이지 제작 편집기 등에 붙여 넣는다.
    2. 아래 코드  를 복사하여 사용 중인 웹페이지 제작 편집기 등에 붙여넣기 한다.
    3. 코드 내 주석을 따라 각 항목을 조건에 맞게 내용으로 바꿉니다.
    4. 'sitemapgenerator.php' 등의 파일명을 붙여서 편집 중인 페이지를 저장한다. (저장하는 파일의 확장자는 ".html"이 아닌 ".php"입니다.)
    5. 웹 서버에 업로드하고 페이지에 접속하여 아래와 같은 화면이 나오면 일단 생성에 성공한 것입니다.
      * 테스트 환경에서 약 2만 페이지 분량의 파일을 생성한 결과, 용량은 약 6MB(설정 가능한 모든 항목 선택), 소요시간은 약 3초 정도였다.
      【MTML부를 포함한 타입】
      【PHP부만의 타입】
    6. 저장된 'XML 파일'을 브라우저에서 열어 확인하거나, 저장된 '.xml'을 다운로드하여 확인하고, 올바르게 생성되었다면 Google Search Console  Bing Webmaster Tools   에 등록하는 등 확인합니다.
      * 파일 용량이 큰 경우, 브라우저에서 열리지 않을 수 있습니다. 이 경우, 웹 서버에서 '.xml' 파일을 다운로드하여 확인하시기 바랍니다.
      * 브라우저 종류에 따라서는 열어도 제대로 표시되지 않는 경우도 있는 것 같습니다.
      * 브라우저에서 열면 첫 번째 줄의 'XML 선언'이 표시되지 않는 경우가 있는 것 같습니다.
    7. 처음 이용하시는 경우, 제대로 생성되었는지, 필요 없는 항목이 들어가지 않았는지 등을 반드시 확인하시기 바랍니다.
    8. 페이지에 접속했을 때 다음과 같은 오류(Encoding error)가 발생한다면 특정 문자가 포함되어 있는 것이 원인 중 하나인 것 같습니다.
      예를 들어, 아래 표와 같이'&'와 같은 문자는 이스케이프 코드로 바꿔서 작성합니다.
      * 이스케이프 코드는 클릭 한 번으로 복사할 수 있습니다.
    9. 문자  이스케이프 코드 
      Ampersand: 앰퍼샌드
      &➡️
      &amp;
      Single Quote: 싱글 쿼트
      ➡️
      &apos;
      Double Quote: 더블 쿼트
      ➡️
      &quot;
      Greater Than: 부등호(더 큰)
      >➡️
      &gt;
      Less Than: 부등호(더 작은)
      <➡️
      &lt;
      "Encoding error"의 일반적인 원인  
      'Encoding error'는 XML 파일이 특정 문자 인코딩으로 제대로 인코딩되지 않았을 때 발생하는 오류 메시지로, 다음과 같은 경우가 있다.
      1. 부정확한 문자가 포함되어 있음
        [원인]XML은 특정 문자(「 & 」「 ' 」「 " 」「 > 」「 < 」등)를 이스케이프 처리해야 한다. 이러한 문자가 이스케이프 처리되지 않은 경우 오류가 발생한다.
        [수정 방법]잘못된 문자를 이스케이프하거나, 올바르게 이스케이프가 되어 있는지 확인한다.
      2. 올바른 인코딩이 지정되지 않음
        [원인]XML 파일 시작 부분에 <?xml version="1.0"?>라는 선언이 있고, 그 뒤에 encoding 속성이 제대로 지정되지 않은 경우 오류가 발생한다.
        [수정 방법]<?xml version="1.0" encoding="UTF-8"?>와 같이 올바른 인코딩을 지정한다.
      3. 선언 부분이 잘못되었습니다.
        [원인]선언 부분이 잘못되었거나 '<?xml' 과 '?>' 사이에 어떤 오류가 있는 경우 오류가 발생한다.
        [수정 방법]선언 부분을 올바르게 수정한다.
      4. 파일의 인코딩이 선언과 일치하지 않음
        [원인]파일의 실제 인코딩이 XML 선언에서 지정한 인코딩과 일치하지 않을 때 오류가 발생한다.
        [수정 방법]파일의 인코딩을 선언에 맞게 수정한다.
      5. 파일이 손상되었습니다.
        [[원인]파일이 제대로 저장되지 않았거나 손상된 경우 오류가 발생한다.
        [수정 방법]파일을 다시 저장하여 정상적으로 불러올 수 있도록 한다.
    10. 테스트 환경에서 검증한 결과, 제외 지정을 전혀 하지 않은 경우 XML 파일 내에 'sys'와 같이 본 사이트에서는 웹페이지 디렉토리(폴더)로 사용하지 않는 디렉토리가 확인되었습니다. 이런 것이 확인되면 '제외할 디렉토리' 항목에 '$excludeDirectories = ['sys']와 같이 해당 디렉토리 이름을 지정해 주시기 바랍니다.
       또는 '메타 태그 제외' 항목에 '$excludeMetaTags = ['NOINDEX']와 같이 지정해보시기 바랍니다. 아래의 PHP 코드에서는 'NOINDEX' 지정을 기본 설정으로 하고 있습니다.
《 XML 사이트맵 생성 PHP 코드 》
 PHP 부분만 zip 파일 다운로드   
PHP 부분만 가지고도 프로그램을 실행할 수 있습니다.
저장할 때 확장자는 '.php'입니다.

<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>XML 사이트맵 생성 PHP 프로그램</title>
<meta name="robots" content="NOINDEX,NOFOLLOW">
<!-- Free Icon Fonts 읽어오기 - 사용하지 않으면 삭제 가능 -->
<link href="https://use.fontawesome.com/releases/v6.2.0/css/all.css" rel="stylesheet">
</head>
<body>
<h2>&nbsp;&nbsp;<i class="fa-regular fa-pen-to-square fa-2x" style="color: crimson"></i>&nbsp;XML 사이트맵 생성</h2>
<hr>
<div style="margin:15px 5px 10px 20px;padding: 0 15px 0 0; font-size: 14px;background-color: lavenderblush; border: gray 1px solid; border-radius: 4px;">
<div style="margin:15px 0 0 20px">
    <form method="post">
        <input type="submit" name="downloadLocal" value="XML 파일을 로컬에 다운로드" style="background-color: white;border-radius: 5px;cursor: pointer;">
    </form>
</div>
<ul>
<li>여기서 다운로드한 XML 파일에는 페이지의 HTML 일부가 포함되어 있습니다.</li>
<li>참고용으로 확인하고 순수한 XML 파일이 필요한 경우 원격 서버에서 다운로드하거나, 다운로드한 파일의 HTML 부분을 삭제하세요. "<?xml version="1.0" encoding="UTF-8"?>"에서 "</urlset>"까지가 XML 파일입니다.</li>
</ul>
</div>
<hr>
<?php
//************************************************
// XML 사이트맵 생성 PHP 프로그램
// XML Sitemap Generation PHP Program
// 프로그램 제공: 모두의 지식 조금 편리한 노트
//         Everyone's Knowledge A Little Useful Book
//         Minna no Chishiki Chotto Benricho
//         みんなの知識 ちょっと便利帳
// https://www.benricho.org/Tips/sitemapgenerator/
// 공개일: 2024년 1월 3일
//************************************************

// 웹 서버의 문서 루트. 자동 획득
$sitemapDirectory = $_SERVER['DOCUMENT_ROOT'];

// .xml 파일의 이름(최종 파일 이름)
// .xml 파일의 이름은 변경 가능하나 많은 검색 엔진이 "sitemap.xml"을 표준 명명 규칙으로 사용하므로 "sitemap.xml"을 사용하는 것이 권장됨
$finalSitemapFilename = 'sitemap.xml';

// 사이트맵 파일의 저장 위치(최종 디렉터리 - 루트)
$finalSitemapPath = $sitemapDirectory . '/' . $finalSitemapFilename;

// 사이트맵 생성 대상 디렉터리
$rootDirectory = $_SERVER['DOCUMENT_ROOT'];

// .xml 파일의 이름(임시 파일 이름)
$tempSitemapFilename = 'temporarysitemap.xml';

// 사이트맵 파일의 저장 위치(임시 디렉터리)
$tempSitemapPath = $sitemapDirectory . '/' . $tempSitemapFilename;

// 임시 디렉터리가 없으면 생성
$tempDirectory = dirname($tempSitemapPath);
if (!file_exists($tempDirectory)) {
    mkdir($tempDirectory, 0777, true);
}

// 이전 사이트맵을 삭제하고 새 사이트맵으로 이름 변경(셸 명령어 사용)
$oldSitemapFilename = 'old-' . $finalSitemapFilename;
$oldSitemapPath = $sitemapDirectory . '/' . $oldSitemapFilename;

// 이전 사이트맵이 존재하는 경우 삭제
if (file_exists($oldSitemapPath)) {
    unlink($oldSitemapPath);
}

// 새 사이트맵으로 이름 변경
if (file_exists($tempSitemapPath)) {
    rename($tempSitemapPath, $oldSitemapPath);
}

// 로컬 다운로드 버튼이 클릭되었는지 확인
if (isset($_POST['downloadLocal'])) {
    // 사이트맵을 임시 디렉터리로 복사
    copy($finalSitemapPath, $tempSitemapPath);

    // 다운로드용 헤더 설정
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="' . $finalSitemapFilename . '"');
    header('Content-Length: ' . filesize($tempSitemapPath));

    // 파일 출력
    readfile($tempSitemapPath);

    // 다운로드 후 임시 디렉터리에 저장한 사이트맵 삭제
    unlink($tempSitemapPath);
    exit;
}

///// 제외 대상 설정 /////
// 제외할 디렉터리. 디렉터리 이름만 지정. ['dir-1', 'dir2'] 등
// 필요하지 않으면 빈 배열. [];
$excludeDirectories = [];

// 제외할 파일. 파일 이름만 지정. ['aaa.html', 'bbb.php'] 등
// 필요하지 않으면 빈 배열. [];
$excludeFiles = [];

// 제외할 디렉터리/파일 ['dir-1/dir1/file1.html', 'dir2/file2.php'] 등
// 앞에 "/"를 추가하지 않음
// 필요하지 않으면 빈 배열. [];
$excludePaths = [];

// 메타 태그의 ['NOINDEX', 'NOFOLLOW', 'REFRESH'] 등이 포함된 파일을 제외
// 필요하지 않으면 빈 배열. [];
// ['NOINDEX']의 지정을 권장합니다
$excludeMetaTags = ['NOINDEX'];

///// 사이트맵 생성 조건 /////
// 페이지 타이틀 가져오기 (1: 가져오기, 2: 가져오지 않기)
// ※ Google Search Console에서 권장하지 않음
// ※ [중요] Google Search Console에 등록하는 경우 "2: 가져오지 않기"로 설정
// ※ "1: 가져오기"로 설정하면 Google Search Console에서 "title 태그가 인식되지 않음. 수정이 필요"라는 경고가 표시됩니다.
$getTitle = 2;
// 페이지 타이틀에서 제거할 문자열 지정
// ※ 제거하려는 문자열을 지정할 수 있습니다. ['의', '입니다'] 등
// 필요하지 않으면 비워 둡니다. [];
$removeTitleStrings = [];

// 파일의 최종 업데이트 날짜 가져오기(1: 가져오기, 2: 가져오지 않기)
// ※ Google Search Console에서 권장
$getLastMod = 1;

// 페이지 업데이트 빈도
// ※ Google에서 무시 및 비권장. '값을 추가하지 마십시오'로 명시
// 페이지 업데이트 빈도 사용(1: 사용, 2: 사용하지 않기)
$useChangeFreq = 2;
// 업데이트 빈도 요소 선택
// "1"로 설정한 경우 페이지 업데이트 빈도 요소 선택. ['always', 'hourly', 'daily', 'weekly', 'monthly', 'yearly', 'never']
// 요소 always: 매 접근마다 업데이트, hourly: 1시간마다 업데이트, daily: 매일 업데이트, weekly: 매주 업데이트, monthly: 매월 업데이트, yearly: 매년 업데이트, never: 업데이트하지 않음
$changefreqValues = ['사이트에 적용할 요소 입력'];

// 페이지 우선 순위
// ※ Google에서 무시 및 비권장. '값을 추가하지 마십시오'로 명시
// priority 가져오기(1: 가져오기, 2: 가져오지 않기)
$getPriority = 2;

// 사이트맵 생성 메시지
$successMessage = "<p>・ 사이트맵 XML 파일이 생성되었습니다.<br>・ Sitemap XML 파일이 원격 서버의 루트에 저장되었습니다.<br>・ 보안 상의 이유로 프로그램 파일을 원격 서버에서 삭제하세요.</p>";

// 사이트맵 XML 헤더(최종 파일용)
$xmlFinal = <<<XML
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
XML;

// 디렉터리 내의 파일을 재귀적으로 처리(최종 파일용)
function generateSitemap($directory, $excludeDirs, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, &$xmlFinal) {
    $dir = new DirectoryIterator($directory);
    foreach ($dir as $fileInfo) {
        if ($fileInfo->isDot()) continue;

        $filename = $fileInfo->getFilename();
        $filepath = $fileInfo->getPathname();
        $fileExtension = pathinfo($filename, PATHINFO_EXTENSION);

        // 제외 대상 디렉터리/파일 여부 확인
        $excludePath = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filepath);
        if (in_array(ltrim($excludePath, '/'), $excludePaths)) {
            continue;
        }
        if ($fileInfo->isDir()) {
            if (in_array($filename, $excludeDirs)) {
                continue;
            } else {
                generateSitemap($filepath, $excludeDirs, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal);
            }
        } else {
            if (in_array($filename, $excludeFiles) || in_array($filename, $excludeDirs)) {
                continue;
            }

            if (in_array($fileExtension, ['html', 'php'])) {
                processFile($filepath, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $xmlFinal);
            }
        }
    }
}

// 파일 처리(최종 파일용)
function processFile($filepath, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, &$xmlFinal) {
    $content = file_get_contents($filepath);
    if (shouldExcludeContent($content, $excludeMetaTags)) {
        return;
    }

    $url = getRelativeUrl($filepath);
    // UTC(협정 세계 시간)로 설정 - 사이트맵 XML에서는 일반적으로 UTC(협정 세계 시간)를 사용하는 것이 권장됨
    $lastMod = ($getLastMod == 1) ? getLastModifiedDateUTC($filepath) : '';

    $xmlFinal .= "\n <url>";
    $xmlFinal .= "\n <loc>{$url}</loc>";

    if ($getTitle == 1) {
        $title = getTitleFromContent($content);
        if (!empty($title)) {
            $title = str_replace($removeTitleStrings, '', $title);
            $xmlFinal .= "\n <title>{$title}</title>";
        }
    }

    // 마지막 업데이트 날짜 표시
    if (!empty($lastMod)) {
        $xmlFinal .= "\n <lastmod>{$lastMod}</lastmod>";
    }

    // changefreq 표시
    if ($useChangeFreq == 1) {
        $changefreq = $changefreqValues[array_rand($changefreqValues)];
        $xmlFinal .= "\n <changefreq>{$changefreq}</changefreq>";
    }

    // priority 표시
    if ($getPriority == 1) {
        $priority = getPriorityFromDepth($filepath);
        $xmlFinal .= "\n <priority>{$priority}</priority>";
    }

    $xmlFinal .= "\n </url>";
}

// 깊이에 따른 priority 계산(최종 파일용)
function getPriorityFromDepth($filepath) {
    $depth = substr_count($filepath, DIRECTORY_SEPARATOR);
    return 1 - ($depth * 0.1);
}

// 메타 태그를 제외해야 할지 확인(최종 파일용)
function shouldExcludeContent($content, $excludeMetaTags) {
    foreach ($excludeMetaTags as $tag) {
        if (stripos($content, '<meta name="robots" content="' . $tag) !== false) {
            return true;
        }
    }

    return false;
}

///// 파일의 최종 업데이트 날짜 가져오기 - 사이트맵 XML에서는 일반적으로 UTC(협정 세계 시간)를 사용하는 것이 권장됨
// UTC(협정 세계 시간)로 설정.('참조로부터 +00:00' 및 UTC(협정 세계 시간)으로 표시)
function getLastModifiedDateUTC($filepath) {
    $lastModTimestamp = filemtime($filepath);
    $lastModDateTime = new DateTimeImmutable('@' . $lastModTimestamp);
    return $lastModDateTime->format('c');
}

// HTML 파일에서 제목 가져오기(최종 파일용)
function getTitleFromContent($content) {
    $dom = new DOMDocument;
    libxml_use_internal_errors(true); // 오류를 표시하지 않도록 설정
    $dom->loadHTML($content);

    $titleElements = $dom->getElementsByTagName('title');
    if ($titleElements->length > 0) {
        $title = $titleElements->item(0)->textContent;
        return $title;
    }

    return '';
}

// 파일의 URL 가져오기(최종 파일용)
function getRelativeUrl($filepath) {
    $relativeUrl = str_replace($_SERVER['DOCUMENT_ROOT'], '', $filepath);
    return $_SERVER['REQUEST_SCHEME'] . '://' . $_SERVER['SERVER_NAME'] . str_replace('\\', '/', $relativeUrl);
}

// 사이트맵 생성 시작(최종 파일용)
generateSitemap($rootDirectory, $excludeDirectories, $excludeFiles, $getTitle, $removeTitleStrings, $getLastMod, $excludeMetaTags, $useChangeFreq, $changefreqValues, $getPriority, $excludePaths, $xmlFinal);

// 사이트맵 푸터(최종 파일용)
$xmlFinal .= "\n</urlset>";

// 사이트맵을 파일에 저장(최종 파일용)
file_put_contents($finalSitemapPath, $xmlFinal);

// 성공 메시지 표시(최종 파일을 생성한 사실을 표시)
echo $successMessage;
?>
<hr>
<p style="margin-top: 20px">
<!-- <a> 태그에 이 PHP 프로그램의 파일 이름을 설정. 확장자는 ".php" -->
<a href="이 프로그램의 파일 이름.php" style="margin-left: 20px; text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i> "XML 파일" 다시 생성&nbsp;&nbsp;<i class="fa-solid fa-rotate fa-spin fa-2x" style="color: crimson"></i>[페이지 다시로드]</a>
</p>
<p>
<!-- 생성된 "XML 파일"을 브라우저에서 열기 -->
<a href='<?php echo '/' . $finalSitemapFilename; ?>' target='_blank' style='margin-left: 20px; text-decoration: none;'><i class="fa-solid fa-check" style="color: #005eff;"></i> "XML 파일" 브라우저에서 열기&nbsp;&nbsp;<i class="fa-solid fa-chalkboard-user fa-beat-fade fa-2x" style="color:green"></i>[새 탭]</a>
<div style="margin-left: 30px;font-size: 12px;color: gray">※ 파일 크기가 큰 경우 등 브라우저에서 열리지 않을 수 있습니다. 브라우저에서 열리지 않으면 ".xml" 파일을 웹 서버에서 다운로드하여 확인하십시오.</div>
</p>
<hr>
<!-- "Google" 사이트맵 추가 및 업데이트 확인 -->
<p>
<!-- <a> 태그에 자신의 URL을 설정 -->
<a href="https://search.google.com/search-console/sitemaps?resource_id=자신의URL" target="_blank" style="margin-left: 20px; text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>"<strong>Google</strong>" 사이트맵 추가 및 업데이트 확인&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- "Google Search Console" -->
<p>
<!-- <a> 태그에 등록 한 Google Search Console의 "사이트맵"페이지 URL을 설정 -->
<a href="https://search.google.com/search-console?resource_id=자신의URL" target="_blank" style="margin-left: 20px; text-decoration: none;"><i class="fa-solid fa-check" style="color: #005eff;"></i>"<strong>Google Search Console</strong>"&nbsp;&nbsp;<i class="fa-solid fa-up-right-from-square fa-beat fa-2x" style="color: blue"></i></a>
<div style="font-size: 13px; margin: 0 40px">※ "Google Search Console"에 등록이 완료되어 있는 것이 전제되어 있습니다.</div>
</p>
<hr>
<!-- "Bing" 사이트맵 재전송 및 업데이트 확인 -->
<p>
<!-- <a> 태그에 등록 한 Bing "웹마스터 도구" 페이지 URL과 설정한 XML 파일 이름을 설정. 파일 이름은 "$sitemapFilename"으로 설정한 파일 이름과 일치해야 합니다. -->
<a href="https://www.bing.com/webmasters/sitemaps?siteUrl=자신의URL/&sitemap=자신의URL/sitemap.xml" target="_blank" style="margin-left: 20px; text-decoration: none;"> <i class="fa-solid fa-check" style="color: #005eff;"></i>"<strong>Bing</strong>" 사이트맵 재전송 및 업데이트 확인&nbsp;&nbsp;<i class="fa-solid fa-arrow-up-from-bracket fa-bounce fa-2x" style="color: #db0016;"></i></a>
</p>
<!-- "Bing webmaster Tools" -->
<p>
<!-- <a> 태그에 등록 한 Bing "웹마스터 도구" 페이지 URL을 설정 -->
<a href="https://www.bing.com/webmasters/home?siteUrl=자신의URL" target="_blank" style="margin-left: 20px; text-decoration: none;">
<i class="fa-solid fa-check" style="color: #005eff;"></i>"<strong>Bing webmaster Tools</strong>"&nbsp;&nbsp;<i class="fa-solid fa-up-right-from-square fa-beat fa-2x" style="color: blue"></i></a>
<div style="font-size: 13px; margin: 0 40px">※ "Bing Webmaster Tools"에 등록이 완료되었거나 "Google Search Console"과 연동이 완료된 것이 전제되어 있습니다.</div>
</p>
<hr>
<!-- 자체 사이트 이름 등. 포함하지 않으면 삭제하십시오. -->
<h3 align="center"><i class="fa-solid fa-house" style="color: crimson"></i>&nbsp;자체 사이트 이름 등&nbsp;<i class="fa-solid fa-house" style="color: crimson"></i></h3>
<!-- 삭제해도 좋습니다. -->
<h4 align="center"><a href="https://www.benricho.org/" target="_blank" style="text-decoration: none;"><i class="fa-solid fa-house" style="color: blue"></i>&nbsp;모두의 지식 조금 유용한 수첩&nbsp;<i class="fa-solid fa-house" style="color: blue"></i></h4>
</body>
</html>
저장할 때 확장자는 '.php'입니다.
 PHP 부분만 zip 파일 다운로드   
PHP 부분만 가지고도 프로그램을 실행할 수 있습니다.
이상으로 'XML 사이트맵 생성 프로그램'을 위한 PHP 코드 소개를 마치겠습니다.
이 코드를 이용하여 검색엔진의 정확한 크롤링과 인덱싱을 활성화하고 쾌적한 사이트 운영을 하시길 기원합니다.
자동 업데이트 등 고급 기능을 갖춘 유료 프로그램도 있지만, 여기서는 필요한 최소한의 역할만 할 수 있도록 노력했습니다.
일본어판 번역으로 인해 문장에 실수가 있을 수 있습니다. 죄송합니다만, 코드내의 문언으로 잘못이 있었을 경우는 스스로 수정・조정을 해 주세요.
이용해 주신 소감 등을 보내주십시오. 단, 질문에 대한 답변은 불가능하오니 양해 부탁 드립니다.

おすすめサイト・関連サイト…

Last updated : 2024/04/23