总览:提交方式与优先级
- 站长平台提交(推荐,稳定且可观测)
- 在各搜索引擎的站长平台添加并验证站点后,找到“站点地图/Sitemap”入口提交。
- robots.txt 声明(推荐,自动发现)
- Ping 接口(部分支持)
- 以 URL 参数通知搜索引擎有新的 Sitemap(效果依平台而异)。
- 主动推送 API(各平台自有方案)
- 尤其针对新增或更新页面的及时发现,常与 Sitemap 互补。
建议策略:
- 同时使用 robots.txt + 站长平台提交,必要时辅以 Ping 或 API 推送。
- 对大型网站使用 Sitemap 索引拆分,确保文件大小与条目数在规范范围内。
百度搜索(Baidu)
平台入口:百度搜索资源平台
提交步骤
- 添加并验证站点(域名级,按平台提示进行文件/HTML/解析记录验证)。
- 在平台的“数据提交”或“网站地图/Sitemap”栏目,填写并提交你的 Sitemap URL。
- 提交后平台会定期抓取与解析,可在报表中查看成功/错误项。
支持格式与建议
- 支持
XML、XML.GZ,部分场景也支持 TXT 列表(每行一个 URL)。
- 单文件建议不超过 50,000 条 URL;超出用索引文件拆分。
- 使用规范 URL(canonical),确保 200 可访问且未被 robots 屏蔽。
lastmod 使用合法 ISO 8601,仅在内容真实更新时变更。
robots.txt 声明
Sitemap: https://www.example.com/sitemap.xml
Sitemap: https://www.example.com/sitemaps/sitemap-index.xml
Ping(通知)接口
主动推送 API(与 Sitemap 互补)
-
用途:更快让新增页面被发现(适合时效性内容)。
-
PHP 批量推送示例(将一组页面 URL 以纯文本推送到百度 API):
<?php
/**
* 百度主动推送示例(批量)
* 文档参考: http://data.zz.baidu.com/
* 注意:API 推送的是“页面 URL 列表”,用于加速发现;并非直接提交 sitemap.xml 文件。
*/
$site = 'www.example.com'; // 你的站点域名(必须与站长平台已验证的站点一致)
$token = 'YOUR_TOKEN'; // 在站长平台获取的 token
$endpoint = "http://data.zz.baidu.com/urls?site={$site}&token={$token}";
// 待推送的页面 URL 列表(建议使用规范化 URL,确保 200 可访问)
$urls = [
'https://www.example.com/page-1',
'https://www.example.com/page-2',
'https://www.example.com/page-3',
];
// 也可从文件读取(每行一个 URL)
// $urls = file('urls.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 构造请求体(text/plain,按行分隔)
$body = implode("\n", $urls);
// 使用 cURL 发送 POST 请求
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) {
$err = curl_error($ch);
curl_close($ch);
throw new RuntimeException("Baidu push failed: {$err}");
}
curl_close($ch);
// 输出结果(接口一般返回 JSON)
echo "HTTP {$httpCode}\n";
echo "Response: {$response}\n";
// 可选:解析 JSON,查看成功/失败数量
$json = json_decode($response, true);
if (json_last_error() === JSON_ERROR_NONE) {
print_r($json);
}
- 若需区分“新增、更新、实时”等类型,可根据百度最新文档在请求参数中添加相应
type 或路径;以官方文档为准。
- 控制推送频次与去重:同一 URL 不必频繁重复推送;避免触发配额或降权。
360 搜索(so.com)
平台入口:360 搜索站长平台
提交步骤
- 添加并验证站点(按平台提示)。
- 在“站点地图/Sitemap”栏目提交 Sitemap URL。
- 平台会周期性抓取,可查看抓取与错误报告。
建议
- 使用
XML 或索引拆分(如 sitemap-index.xml 指向多份子 Sitemap)。
- 在
robots.txt 声明 Sitemap,利于自动发现。
- 保持 URL 稳定与可抓取(200、HTTPS、一致的主机与路径策略)。
神马搜索(Shenma)
平台入口:神马站长平台
提交步骤
- 添加并验证站点。
- 在“数据提交/站点地图”处提交 Sitemap。
- 神马移动端流量占比较高,确保页面移动端可良好渲染与访问。
建议
- 使用
XML,并在 robots.txt 声明 Sitemap。
- 针对移动端适配(响应式或独立 M 站),保持规范化与互链正确。
搜狗搜索(Sogou)
平台入口:搜狗站长平台
提交步骤
- 添加并验证站点。
- 在“Sitemap 提交”入口填写并提交 Sitemap URL。
- 平台会定期抓取与解析,注意查看报表与错误项。
提示
- 搜狗搜索生态有调整,实际收录效果可能受限,但仍建议补充提交以覆盖场景。
- 仍遵循通用 Sitemap 规范与
robots.txt 声明。
Bing(中国区可选补充)
平台入口:Bing Webmaster Tools
通用注意事项
- 可访问性与抓取
- Sitemap 与其中 URL 均应返回 200,避免重定向链与 4xx/5xx。
- 不要提交被 robots.txt 禁止或页面含
noindex 的 URL。
- 规范化与一致性
- 保持协议(HTTPS)、主机名(含/不含 www)、尾斜杠策略一致。
- 使用 canonical URL;避免重复或参数化造成大量近似页面。
- 文件大小与拆分
- 单个 Sitemap 建议不超过 50,000 条 URL;超出用索引(
sitemapindex)组织。
- 多数平台支持
.xml.gz;若提交失败,改用未压缩 .xml。
- 更新与时效
lastmod 仅在内容确实更新时变更;避免“假更新”导致抓取资源浪费。
- 时效性内容(新闻、热点)可结合主动推送 API,加速发现。
- 多域与子站
- 每个已验证站点使用对应域名的 Sitemap;跨域 URL 请在相应站点下提交。
示例合集
robots.txt 声明多个 Sitemap(含索引)
User-agent: *
Allow: /
Sitemap: https://www.example.com/sitemap.xml
Sitemap: https://www.example.com/sitemaps/sitemap-index.xml
Sitemap 索引(指向多份子文件)
<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<sitemap>
<loc>https://www.example.com/sitemaps/pages-2026-01.xml.gz</loc>
<lastmod>2026-01-04</lastmod>
</sitemap>
<sitemap>
<loc>https://www.example.com/sitemaps/pages-2025-12.xml.gz</loc>
<lastmod>2026-01-01</lastmod>
</sitemap>
</sitemapindex>
百度 Ping 接口示例
http://ping.baidu.com/sitemap?site=www.example.com&resource_name=https://www.example.com/sitemap.xml
百度主动推送(批量,PHP)
<?php
$site = 'www.example.com';
$token = 'YOUR_TOKEN';
$endpoint = "http://data.zz.baidu.com/urls?site={$site}&token={$token}";
// 从数组或文件构造 URL 列表
$urls = [
'https://www.example.com/page-1',
'https://www.example.com/page-2',
];
$body = implode("\n", $urls); // 或 file_get_contents('urls.txt')
$ch = curl_init($endpoint);
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Content-Type: text/plain'],
CURLOPT_POSTFIELDS => $body,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 15,
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if ($response === false) {
$err = curl_error($ch);
curl_close($ch);
throw new RuntimeException("Baidu push failed: {$err}");
}
curl_close($ch);
echo "HTTP {$httpCode}\n";
echo "Response: {$response}\n";
排错与监控
- 平台报表
- 定期查看各平台的“抓取/解析/错误”报告,修复返回码、规范化与权限类问题。
- 日志与告警
- 使用服务器日志/观察工具监控 Sitemap 抓取频次与失败率。
- 校验工具
- 用 XML 校验工具检查命名空间与结构;确认
lastmod 格式与字符转义。