好的在 Linux 系统上生成和管理网站地图(Sitemap)可以通过多种方式实现,包括使用命令行工具、脚本或现成的 CMS 插件,以下是几种常见的方法:

linux 网站地图
(图片来源网络,侵删)

使用 sitemapgen.py(纯 Python 脚本)

sitemapgen.py 是一个轻量级的 Python 脚本,可以递归抓取网站并生成 XML 格式的网站地图。

安装与使用

# 下载脚本
wget https://github.com/joeypad/sitemapgen/raw/master/sitemapgen.py
# 赋予执行权限
chmod +x sitemapgen.py
# 运行生成网站地图(替换 example.com 为你的域名)
./sitemapgen.py --domain=https://example.com --output=sitemap.xml

常用参数

  • --domain:目标域名(必填)。
  • --output:输出文件名(默认 sitemap.xml)。
  • --maxurls:限制最大 URL 数量(可选)。
  • --verbose:显示详细日志(可选)。

使用 wget + 自定义脚本

如果不想依赖第三方工具,可以用 wget 递归抓取 URL,再手动或通过脚本生成 XML。

示例步骤

# 递归抓取所有 URL(排除非 HTML 文件)
wget --spider --recursive --no-directories --reject="*.jpg,*.css,*.js" --output-file=urls.txt https://example.com
# 提取 URL 并生成 XML 格式
grep "^--" urls.txt | awk '{print $3}' | sed 's/^/https:\/\/example.com/' > urls_cleaned.txt
# 转换为 XML 格式(示例脚本)
echo '<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">' > sitemap.xml
while read url; do
  echo "  <url><loc>$url</loc></url>" >> sitemap.xml
done < urls_cleaned.txt
echo "</urlset>" >> sitemap.xml

使用 CMS 插件(如 WordPress)

如果网站是基于 WordPress 的,可以直接通过插件生成网站地图。

推荐插件

  • Yoast SEO:内置网站地图功能,生成 sitemap_index.xml
  • Google XML Sitemaps:经典插件,支持自定义频率和优先级。

手动启用

  1. 安装插件后,进入“设置 → XML-Sitemaps”。
  2. 勾选“启用网站地图”并保存。
  3. 访问 https://example.com/sitemap_index.xml 查看结果。

使用 python-sitemap-generator(Python 库)

如果需要更灵活的控制,可以使用 Python 的第三方库。

linux 网站地图
(图片来源网络,侵删)

安装与示例

# 安装库
pip install sitemap-generator
# 编写脚本(示例)
from sitemap_generator import SitemapGenerator
sitemap = SitemapGenerator("https://example.com")
sitemap.add_all()  # 自动发现所有链接
sitemap.write("sitemap.xml")

使用 curl + xq(轻量级方案)

对于静态网站,可以用 curl 抓取 HTML,再用 xq(XML/JSON 处理工具)提取链接。

示例

# 安装 xq(需 jq 支持)
# Ubuntu/Debian: sudo apt install jq && curl -sL https://github.com/ashlynn/xq/releases/latest/download/xq-linux -o xq && chmod +x xq
# macOS: brew install xq
# 抓取页面并提取链接
curl -s https://example.com | xq '.a[]?.href' | grep -E '^"/' | sed 's/^/https:\/\/example.com/' > urls.txt

定时更新网站地图

使用 cron 定期生成并上传网站地图到服务器。

Cron 示例

# 每日凌晨 2 点运行脚本
0 2 * * * /path/to/sitemapgen.py --domain=https://example.com --output=/var/www/sitemap.xml

验证与提交

生成后,可通过以下方式验证和提交:

  1. Google Search Console:上传 sitemap.xml
  2. XML 验证工具:如 W3C Validator
  3. 手动检查:确保所有链接可访问。

方法 适用场景 优点 缺点
sitemapgen.py 简单静态网站 无需依赖,轻量 功能有限
wget + 脚本 已有 Linux 环境 灵活可控 需手动处理逻辑
WordPress 插件 WordPress 网站 自动化,集成 SEO 功能 依赖 CMS
Python 库 需要定制化逻辑 可扩展性强 需编程基础
curl + xq 快速提取链接 适合简单需求 需额外工具

选择最适合你需求的方式即可!如果有具体需求(如动态网站、大规模站点),可以进一步讨论优化方案。

linux 网站地图
(图片来源网络,侵删)