Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Stop generating sitemap.xml.gz (#6561) #6562

Merged
merged 2 commits into from
Feb 13, 2025
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions packages/volto/news/6561.bugfix
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Stop generating sitemap.xml.gz @reebalazs
15 changes: 14 additions & 1 deletion packages/volto/src/express-middleware/sitemap.js
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,24 @@ export const sitemapIndex = function (req, res, next) {
});
};

export const sitemapIndexCompatibility = function (req, res, next) {
generateSitemapIndex(req, true).then((sitemapIndex) => {
res.set('Content-Type', 'application/x-gzip');
res.set('Content-Disposition', 'attachment; filename="sitemap.xml.gz"');
res.send(sitemapIndex);
});
};

export default function sitemapMiddleware() {
const middleware = express.Router();

middleware.all('**/sitemap.xml.gz', sitemap);
// For backwards compatibility, and allow a graceful transition for
// sites that are already set up on the Google Search Console, we continue delivering
// the new batched sitemap under the old sitemap.xml.gz name.
middleware.all('**/sitemap.xml.gz', sitemapIndexCompatibility);
middleware.all('**/sitemap:batch.xml.gz', sitemap);
// For new setups, `sitemap-index.xml` should be added to the
// Google Search Console.
middleware.all('**/sitemap-index.xml', sitemapIndex);
middleware.id = 'sitemap.xml.gz';
return middleware;
Expand Down
11 changes: 9 additions & 2 deletions packages/volto/src/helpers/Sitemap/Sitemap.js
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ export const generateSitemap = (_req, start = 0, size = undefined) =>
* @param {Object} _req Request object
* @return {string} Generated sitemap index
*/
export const generateSitemapIndex = (_req) =>
export const generateSitemapIndex = (_req, gzip = false) =>
new Promise((resolve) => {
const { settings } = config;
const APISUFIX = settings.legacyTraverse ? '' : '/++api++';
Expand All @@ -88,7 +88,14 @@ export const generateSitemapIndex = (_req) =>
const result = `<?xml version="1.0" encoding="UTF-8"?>
<sitemapindex xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
${items.join('\n')}\n</sitemapindex>`;
resolve(result);

if (gzip) {
zlib.gzip(Buffer.from(result, 'utf8'), (_err, buffer) => {
resolve(buffer);
});
} else {
resolve(result);
}
}
});
});