{"product_id":"find-broken-links-redirect-chains-from-sitemaps-slack","title":"Find Broken Links \u0026 Redirect Chains from Sitemaps (Slack)","description":"\u003ch3\u003eFind broken links and redirect chains from your sitemaps—automatically in Slack\u003c\/h3\u003e\n\u003cp\u003eThis n8n workflow crawls your sitemap, checks every extracted link’s HTTP status without following redirects, and sends a weekly Slack report that highlights \u003cstrong\u003enew broken links\u003c\/strong\u003e and \u003cstrong\u003eredirect chains\u003c\/strong\u003e. It also keeps a history in an n8n Data Table so you only get changes.\u003c\/p\u003e\n\n\u003ch3\u003eWhat this workflow does\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eRuns weekly (or on demand):\u003c\/strong\u003e Scheduled for Monday, or started manually, then reads the sitemap URL and crawl limits from workflow settings.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCrawls your sitemap:\u003c\/strong\u003e Fetches the sitemap XML and parses it as either a sitemap index (child sitemaps) or a flat sitemap (page URLs).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eCollects and deduplicates links:\u003c\/strong\u003e Selects and caps page URLs to crawl, fetches HTML in batches, extracts all anchor links, resolves relative URLs, filters unwanted link types, and deduplicates to a capped list of distinct internal and (optionally) external URLs.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eChecks HTTP responses (redirects disabled):\u003c\/strong\u003e Requests each distinct URL once via HTTP GET with redirects disabled, then classifies outcomes as \u003cem\u003eok\u003c\/em\u003e, \u003cem\u003eblocked\u003c\/em\u003e, \u003cem\u003ebroken\u003c\/em\u003e, or \u003cem\u003eredirected-to-a-different-target\u003c\/em\u003e.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eReports only new problems:\u003c\/strong\u003e Compares broken\/redirected findings against previously reported items stored in an n8n Data Table and keeps only newly changed issues.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003ePosts to Slack:\u003c\/strong\u003e Sends a formatted summary with counts and new findings to your chosen Slack channel, then upserts newly reported problems back into the Data Table.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eUse cases\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003eDetect \u003cstrong\u003elink rot\u003c\/strong\u003e after migrations (updated URLs, removed content, refactored routes).\u003c\/li\u003e\n  \u003cli\u003eSurface SEO-impacting issues like \u003cstrong\u003ebroken internal links\u003c\/strong\u003e and unexpected redirects.\u003c\/li\u003e\n  \u003cli\u003eContinuously monitor large sites by crawling sitemap-defined pages on a schedule.\u003c\/li\u003e\n\u003c\/ul\u003e\n\n\u003ch3\u003eTechnical details\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eIntegrations:\u003c\/strong\u003e Slack (credential + target channel)\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eData storage:\u003c\/strong\u003e n8n Data Table named \u003ccode\u003elink_rot\u003c\/code\u003e with columns including \u003ccode\u003elink_key\u003c\/code\u003e, \u003ccode\u003eurl\u003c\/code\u003e, \u003ccode\u003estatus\u003c\/code\u003e, \u003ccode\u003everdict\u003c\/code\u003e, and timestamps (e.g., \u003ccode\u003efound_on\u003c\/code\u003e \/ \u003ccode\u003elast_se…\u003c\/code\u003e).\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eWorkflow nodes:\u003c\/strong\u003e if, set, code, no op, merge, slack.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"N8N Commerce","offers":[{"title":"Default Title","offer_id":45931010621619,"sku":"N8N-18977","price":3.99,"currency_code":"GBP","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0749\/6279\/6723\/files\/H-zxUdEbi7klrQkGFyCPo_k5HcHoou.png?v=1788253695","url":"https:\/\/buyflowscripts.com\/products\/find-broken-links-redirect-chains-from-sitemaps-slack","provider":"N8N Commerce","version":"1.0","type":"link"}