간단하고 기본적인 사이트맵 인덱스 sitemap.xml을 만들어 보세요.
검색 엔진이 웹페이지를 인식할 수 있도록 Python 코드를 사용하여 sitemap.xml 파일을 만듭니다. .html 및 .php 파일을 사용하는 정적 웹사이트 예시와 함께, 해당 웹사이트를 사용하고 Search Console 또는 ping URL을 통해 Google과 Bing으로 전송하는 방법에 대한 설명이 제공됩니다.
사이트맵은 웹사이트의 주요 페이지 URL을 모아 놓은 파일로, 검색 엔진이 페이지를 더 쉽게 이해하고 탐색할 수 있도록 도와줍니다. 이는 SEO와 트래픽 증가에 도움이 됩니다. 사이트맵을 만들어 Google에 제출하면 효율성을 극대화할 수 있습니다.
1. 사이트맵과 사이트맵 인덱스 이해
- 사이트맵: 이는 Google과 같은 검색 엔진에 당사 웹사이트의 어떤 페이지가 있는지 알려주는 XML 파일입니다.
- 사이트맵 인덱스: 여러 개의 하위 사이트맵을 결합한 XML 파일로, 대규모 웹사이트를 쉽게 관리할 수 있도록 해줍니다.
2. 표준 구조 사이트맵.xml
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://yourdomain.com/</loc>
<lastmod>2025-08-17</lastmod>
<changefreq>weekly</changefreq>
<priority>1.0</priority>
</url>
<url>
<loc>https://yourdomain.com/about</loc>
<lastmod>2025-08-10</lastmod>
<changefreq>monthly</changefreq>
<priority>0.8</priority>
</url>
</urlset>
<loc>
= 웹 페이지의 URL<lastmod>
= 마지막 업데이트 날짜(형식년-월-일
)<changefreq>
= 예상 업데이트 빈도 (항상, 매시간, 매일, 매주, 매월, 매년, 절대 없음
)<priority>
= 중요도 값(0.0 – 1.0)
3. 생성을 위한 Python 코드 예시 사이트맵.xml
이 코드는 URL 목록을 읽고 sitemap.xml 파일을 작성합니다.
import datetime
domain = "https://yourdomain.com"
pages = [
"/",
"/about",
"/contact",
"/products",
"/blog"
]
today = datetime.date.today().isoformat()
sitemap_path = "sitemap.xml"
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for page in pages:
f.write(" <url>\n")
f.write(f" <loc>{domain}{page}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>weekly</changefreq>\n")
f.write(" <priority>0.8</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
4. 정적 웹사이트를 위한 사이트맵 만들기
4.1 (일반 .HTML 파일) 정적 페이지의 경우
귀하의 웹사이트가 정적 웹사이트(일반 HTML) 그리고 다음과 같은 페이지가 많이 있습니다.
/index.html
/about.html
/contact.html
/blog.html
/products/product1.html
/products/product2.html
정적 웹사이트를 위한 사이트맵을 만드는 Python 코드 샘플
import os, datetime
domain = "https://yourdomain.com"
web_dir = "./public_html"
today = datetime.date.today().isoformat()
urls = []
for root, dirs, files in os.walk(web_dir):
for file in files:
if file.endswith(".html"):
rel_path = os.path.relpath(os.path.join(root, file), web_dir)
url = "/" + rel_path.replace("\\", "/")
if url.endswith("index.html"):
url = url.replace("index.html", "")
urls.append(url)
sitemap_path = os.path.join(web_dir, "sitemap.xml")
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for url in urls:
f.write(" <url>\n")
f.write(f" <loc>{domain}{url}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>monthly</changefreq>\n")
f.write(" <priority>0.5</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
이 코드는 웹 폴더에 있는 모든 .html 파일을 스캔하여 자동으로 sitemap.xml을 작성합니다.
🔹 사용법
- 이 코드를 프로젝트 폴더에 넣으세요(예:
생성_사이트맵.py
) - 와 함께 실행
파이썬 generate_sitemap.py
- 당신은 파일을 얻을 것이다
사이트맵.xml
루트에 위치 (public_html/sitemap.xml
) - 브라우저에서 열기 →
https://yourdomain.com/sitemap.xml
- Google 및 Bing에 제출(Search Console 사용 또는 URL ping)
4.2 .php 파일을 사용하는 정적 웹사이트(정적 페이지)의 경우
귀하의 웹사이트가 .php 파일을 사용하는 정적 웹사이트(예: index.php, about.php, contact.php)인 경우, sitemap.xml을 만드는 방법은 .html의 경우와 비슷하지만, 대신 .php 파일을 가져와야 합니다.
/index.php
/about.php
/contact.php
/blog.php
/products/product1.php
/products/product2.php
생성을 위한 Python 코드 사이트맵.xml
파일에서 .php
import os, datetime
domain = "https://yourdomain.com"
web_dir = "./public_html"
today = datetime.date.today().isoformat()
urls = []
for root, dirs, files in os.walk(web_dir):
for file in files:
if file.endswith(".php"):
rel_path = os.path.relpath(os.path.join(root, file), web_dir)
url = "/" + rel_path.replace("\\", "/")
if url.endswith("index.php"):
url = url.replace("index.php", "")
urls.append(url)
sitemap_path = os.path.join(web_dir, "sitemap.xml")
with open(sitemap_path, "w", encoding="utf-8") as f:
f.write('<?xml version="1.0" encoding="UTF-8"?>\n')
f.write('<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">\n')
for url in urls:
f.write(" <url>\n")
f.write(f" <loc>{domain}{url}</loc>\n")
f.write(f" <lastmod>{today}</lastmod>\n")
f.write(" <changefreq>monthly</changefreq>\n")
f.write(" <priority>0.5</priority>\n")
f.write(" </url>\n")
f.write("</urlset>\n")
print("Sitemap index created successfully!")
🔹 사용법
- 이 스크립트 파일을 프로젝트 폴더에 넣으세요(예:
생성_사이트맵.py
) - 와 함께 실행
파이썬 generate_sitemap.py
- 당신은 파일을 얻을 것이다
사이트맵.xml
루트에 위치 (public_html/sitemap.xml
) - 브라우저에서 열어보세요 →
https://
yourdomain
.com/사이트맵.xml - 그것을 가져가세요 Google Search Console/Bing 웹마스터에 제출
공유 호스팅을 사용하는 경우 공유 호스팅에서 Python 파일을 직접 실행할 수 없다는 제한이 있습니다.
따라서 sitemap.xml을 자동으로 생성하는 데는 두 가지 옵션이 있습니다.
🔹 옵션 1(가장 쉬움) — 로컬 컴퓨터를 사용하여 만들고 업로드합니다.
컴퓨터에 Python을 설치하세요 (윈도우/맥)
Python 스크립트를 실행하면 파일이 생성됩니다. 사이트맵.xml
명령 프롬프트(Windows) 또는 터미널(Mac/Linux)을 열고 다음을 입력하세요.
python generate_sitemap.py
파일 업로드 사이트맵.xml
가다 public_html/
호스팅을 통해 파일 관리자 / FTP
브라우저로 이동 →
https://yourdomain.com/sitemap.xml
🔹 옵션 2 - PHP를 사용하여 호스팅에서 사이트맵을 만듭니다.
Python을 로컬에서 실행하고 싶지 않다면 PHP 코드를 작성하여 sitemap.xml을 자동으로 생성할 수 있습니다.
<?php
$domain = "https://yourdomain.com";
$web_dir = __DIR__; // public_html
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($web_dir));
$urls = [];
foreach ($files as $file) {
if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === "php") {
$path = str_replace($web_dir, "", $file->getPathname());
$url = str_replace("\\", "/", $path);
if (basename($url) === "index.php") {
$url = str_replace("index.php", "", $url);
}
$urls[] = $url;
}
}
$today = date("Y-m-d");
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
$sitemap .= " <url>\n";
$sitemap .= " <loc>{$domain}{$url}</loc>\n";
$sitemap .= " <lastmod>{$today}</lastmod>\n";
$sitemap .= " <changefreq>monthly</changefreq>\n";
$sitemap .= " <priority>0.5</priority>\n";
$sitemap .= " </url>\n";
}
$sitemap .= "</urlset>";
file_put_contents($web_dir . "/sitemap.xml", $sitemap);
echo "✅ Sitemap created at {$domain}/sitemap.xml";
?>
🔹 사용법
- 파일로 저장
생성_사이트맵.php
- 업로드
public_html/
- 다음과 같은 웹을 통해 파일을 호출합니다.
https://yourdomain.com/generate_sitemap.php
- 당신은 파일을 얻을 것이다
사이트맵.xml
바로 루트에서
6. 자동으로 업데이트되는 새로운 sitemap.xml 페이지가 있습니다.
당신은 주고 싶어 새 페이지가 추가되면(.php) → 사이트맵.xml
Python을 직접 실행할 수 없으므로 자동으로 업데이트되고, PHP 스크립트를 사용하여 public_html에 있는 .php 파일을 매번 확인하고 새로운 sitemap.xml을 작성합니다.
PHP 코드: 실행될 때마다 사이트맵 자동 생성
<?php
$domain = "https://yourdomain.com";
$web_dir = __DIR__; // public_html
$today = date("Y-m-d");
$files = new RecursiveIteratorIterator(new RecursiveDirectoryIterator($web_dir));
$urls = [];
foreach ($files as $file) {
if ($file->isFile() && pathinfo($file, PATHINFO_EXTENSION) === "php") {
$path = str_replace($web_dir, "", $file->getPathname());
$url = str_replace("\\", "/", $path);
if (basename($url) === "index.php") {
$url = str_replace("index.php", "", $url);
}
$urls[] = $url;
}
}
// sitemap.xml
$sitemap = '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
$sitemap .= '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' . "\n";
foreach ($urls as $url) {
$sitemap .= " <url>\n";
$sitemap .= " <loc>{$domain}{$url}</loc>\n";
$sitemap .= " <lastmod>{$today}</lastmod>\n";
$sitemap .= " <changefreq>monthly</changefreq>\n";
$sitemap .= " <priority>0.5</priority>\n";
$sitemap .= " </url>\n";
}
$sitemap .= "</urlset>";
file_put_contents($web_dir . "/sitemap.xml", $sitemap);
echo "✅ Sitemap updated at {$domain}/sitemap.xml";
?>
🔹 사용 방법
- generate_sitemap.php 파일을 public_html에 업로드합니다.
- 브라우저에서 파일을 호출합니다.
https://yourdomain.com/generate_sitemap.php
- → sitemap.xml은 매번 다시 생성(또는 업데이트)됩니다.
- 새로운 .php 파일을 추가하는 경우 → 이 파일을 다시 실행하면 사이트맵이 업데이트됩니다.
🔹진정으로 자동으로 만들기(Cron 작업을 설정하세요. 직접 누르지 않아도 됩니다)
예를 들어, 호스팅의 Cron Job을 사용하면 generate_sitemap.php를 매일/매주 실행할 수 있습니다.
호스팅 hPanel에서:
- 가다 고급 → Cron 작업
- 다음과 같은 Cron 작업을 추가합니다.
php /홈/사용자 이름/public_html/생성_사이트맵.php
php /home/username/public_html/generate_sitemap.php
- 그런 다음 시간을 설정하세요 하루에 한 번
사이트맵은 사이트맵 색인 파일을 사용하여 관리하는 것이 좋습니다. 사이트맵이 크기 제한을 초과하는 경우, 여러 파일로 분할하여 색인 파일을 사용하여 Search Console에 사이트당 최대 500개의 파일을 동시에 제출하는 것이 좋습니다. 색인 파일의 XML 형식은 일반 사이트맵과 유사하며, 동일 디렉터리 또는 하위 디렉터리에 위치해야 합니다.
더 많은 정보 https://developers.google.com