, but the * public canonical URL is /success-stories/ (SuccessStoryPathRewrite * middleware, old-site SEO URLs). The sitemap must list the canonical * form, so the generated loc is rewritten accordingly. */ final class StoriesXmlSitemapDataProvider extends RecordsXmlSitemapDataProvider { protected function defineUrl(array $data): array { $data = parent::defineUrl($data); if (isset($data['loc']) && is_string($data['loc'])) { $data['loc'] = str_replace('/success-stories/story/', '/success-stories/', $data['loc']); } return $data; } }