创建一个简单而基本的站点地图索引sitemap.xml
使用 Python 代码创建 sitemap.xml 文件,帮助搜索引擎识别我们的网页。这里有一个使用 .html 和 .php 文件的静态网站示例,以及如何使用以及如何通过 Search Console 或 ping URL 将其发送到 Google 和 Bing 的说明。
站点地图是一个文件,它汇集了您网站上重要页面的 URL,帮助搜索引擎更轻松地理解和导航您的页面,从而有利于 SEO 并增加流量。以下是如何创建并向 Google 提交站点地图以实现最高效率的方法。
1. 了解站点地图和站点地图索引
- 网站地图:它是一个 XML 文件,可以告诉 Google 等搜索引擎我们的网站上有哪些页面。
- 网站地图索引:它是一个结合了多个子站点地图的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
为静态网站创建 Sitemap 的 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!")
此代码将扫描您的 Web 文件夹中的所有 .html 文件并自动编写 sitemap.xml。
🔹 使用方法
- 将此代码放入您的项目文件夹中(例如。
生成站点地图.py
) - 运行
python 生成站点地图.py
- 您将获得文件
站点地图.xml
位于根部(public_html/站点地图.xml
) - 在浏览器中打开 →
https://yourdomain.com/sitemap.xml
- 提交至 Google 和 Bing(使用 Search Console 或 ping URL)
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
) - 运行
python 生成站点地图.py
- 您将获得文件
站点地图.xml
位于根部(public_html/站点地图.xml
) - 尝试在浏览器中打开它→
https://
yourdomain
.com/sitemap.xml - 把它拿走 提交至 Google Search Console/Bing 网站管理员
如果您使用共享主机,则限制在于您不能直接在共享主机上运行 Python 文件。
因此,有两个选项可以自动生成 sitemap.xml。
🔹 选项 1(最简单)——使用本地机器创建和上传。
在你的机器上安装 Python (Windows/Mac)
运行 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 Job,无需自己按)
例如,您可以使用 Hosting 的 Cron Job 每天/每周运行 generate_sitemap.php。
在托管 hPanel 中:
- 转至 高级 → Cron 作业
- 添加 Cron Job,例如:
php /home/用户名/public_html/generate_sitemap.php
php /home/username/public_html/generate_sitemap.php
- 然后将时间设置为 每天一次
建议使用站点地图索引文件来管理站点地图。如果站点地图超出大小限制,建议将其拆分为多个文件,并使用索引文件在 Search Console 中同时为每个网站提交最多 500 个文件。索引文件的 XML 格式与普通站点地图类似,并且必须位于同一目录或更深的目录中。