如何在 express 中提交站点地图索引和子站点地图?
How to submit sitemap-index and child sitemaps in express?
到目前为止我使用了这个选项how to generate a sitemap in expressjs
但是现在我的网站有超过 50k 个 URL,我需要切换到站点地图索引 - https://developers.google.com/search/docs/advanced/sitemaps/large-sitemaps
所以在 express 中我不能只做:
router.get('/sitemap.xml', function(req, res) {
res.sendFile('YOUR_PATH/sitemap.xml');
});
因为现在我有多个文件:
/public/sitemaps:
sitemap-index.xml.gz
sitemap-0.xml.gz
sitemap-1.xml.gz
sitemap-2.xml.gz
...
而且我需要授予 google 访问所有这些权限的权限,那么我怎样才能让它在 express 上运行?
我找到了一个针对 404 使用快速路由和错误处理的解决方案。
app.get('/sitemap-:int.xml.gz', (req, res, next) => {
try {
res.set('Cache-control', 'public, max-age=0');
res.sendFile(path.join(__dirname, 'public', 'sitemaps', `sitemap-${req.params.int}.xml.gz`));
} catch (err) {
next(err);
// or res.status(404).render('error');
}
});
这将涵盖所有站点地图,包括索引一。
将 google 提交给 www.yourwebsite.com/sitemap-index.xml.gz
,他们将自己获取其余部分。
到目前为止我使用了这个选项how to generate a sitemap in expressjs
但是现在我的网站有超过 50k 个 URL,我需要切换到站点地图索引 - https://developers.google.com/search/docs/advanced/sitemaps/large-sitemaps
所以在 express 中我不能只做:
router.get('/sitemap.xml', function(req, res) {
res.sendFile('YOUR_PATH/sitemap.xml');
});
因为现在我有多个文件:
/public/sitemaps:
sitemap-index.xml.gz
sitemap-0.xml.gz
sitemap-1.xml.gz
sitemap-2.xml.gz
...
而且我需要授予 google 访问所有这些权限的权限,那么我怎样才能让它在 express 上运行?
我找到了一个针对 404 使用快速路由和错误处理的解决方案。
app.get('/sitemap-:int.xml.gz', (req, res, next) => {
try {
res.set('Cache-control', 'public, max-age=0');
res.sendFile(path.join(__dirname, 'public', 'sitemaps', `sitemap-${req.params.int}.xml.gz`));
} catch (err) {
next(err);
// or res.status(404).render('error');
}
});
这将涵盖所有站点地图,包括索引一。
将 google 提交给 www.yourwebsite.com/sitemap-index.xml.gz
,他们将自己获取其余部分。