A slug is a fragment and a url is a fact, so take yours from the sitemap

This site serves pages under two different path prefixes, and a page live under one returns a not found response under the other. Every automated check we run now reads the sitemap first, and here is what it cost to learn that.

Published by AI Knows Us · Updated 19 October 2026

Never assemble a url from a slug. Read it out of your sitemap and use it exactly as published. On this site a page can be live under one path prefix and absent under another, so a url built by gluing a prefix onto a slug is a guess with a convincing failure mode: it returns a not found response, and a not found response is not evidence about anything except that you built the wrong url. Every url in our sitemap returns 200 when it is fetched from the sitemap, 1,721 of them on the day that check ran, and the constructed form of a page that lives under the other prefix returns a 404 carrying an 18KB shell with no article in it.

This sounds like a detail and it is a structural problem, because almost every piece of automated work in search and AI visibility starts from a list of urls. An access test, a link audit, a rendering check and a citation study all begin by deciding what to fetch. If that list is assembled rather than read, every number downstream of it inherits the guess.

How a site ends up with two shapes

Nobody designs this. It arrives through history: a platform migration that kept the old paths alive, a multi tenant application that serves some content under a tenant path, a section added by a different team under a different route. Our own split runs that way. A minority of our urls sit under a second prefix, thirty two of them when the rule about this was first written down, and the count moves whenever pages are published. That movement is the argument. A count is a snapshot and an index is a file you can fetch, and only one of them is still correct tomorrow.

Several of the pages under our second prefix are method pages, which is the worst possible luck. They are exactly the pages a sceptical reader wants to open, and they are the ones a constructed url is most likely to miss.

The three failures that follow from a constructed url

What breaksWhat it looks likeWhat it actually was
A conclusion about your siteAn empty body with no article textThe page exists at a different path
An internal link you publishedA reader clicking through to nothingThe right page, the wrong prefix
An audit's coverageA clean report with no issues foundA scan that fetched almost nothing and counted no failures

The first of those cost us an hour on the most serious claim available about a product that sells being read correctly by machines. Somebody built a url, got the shell, and reported that no page body on this site was server rendered. The page was live at the other url, and its article comes back identical to eleven agent strings at 63KB and 1,789 words.

The second is the quiet one. Across the distinct internal links we have published, one of the three that did not resolve pointed at the wrong prefix of a page that exists, and it has been repointed rather than removed. A reader who clicked it got nothing while the destination was sitting there under its real url.

The practice, which is four lines and no judgement calls

  • Fetch the sitemap and parse it. Read the location elements and keep the strings verbatim, including the host, the scheme and any trailing form. Do not normalise them into a shape you prefer.
  • Treat the sitemap as the inventory, not as a sample. If a page you know exists is missing from it, that is the first bug to fix, and it is a bigger bug than whatever you were about to audit.
  • Record the final url after redirects as a separate field. A url that resolves by redirecting somewhere else is a different fact from a url that resolves directly, and the two need different follow up.
  • Refuse to run when the inventory is missing. A check that cannot load its url list has not run. Our own planning scripts now exit rather than proceeding on an empty inventory, because planning without the inventory offers work that is already published.

If your sitemap is itself unreliable, that is the thing to repair first, and the two submission routes and how to read what each one reports back are set out in our guide to submitting a sitemap and reading the result.

Why this matters more for assistant visibility than for search

A search crawler discovers your pages over weeks through links and a sitemap, and a missing path eventually gets found another way. The checks people run to see what an assistant can read are single shot fetches against a url somebody typed, and there is no discovery step to rescue a wrong guess. The reading simply comes back wrong, looking exactly like a reading that came back right.

That is also why these url lists deserve a place in your internal documentation rather than in a spreadsheet one person maintains. The structural question of which pages point at which, and how to find the ones nothing points at, is covered in our page on internal linking and the audit that finds the gaps.

Questions about building urls from slugs and reading them from a sitemap

Is it ever safe to construct a url from a slug?

Only on a site where you can prove there is exactly one path shape, which means you have read the sitemap to check. At that point you have the real urls anyway, so the construction saves nothing.

What does a 404 actually tell me?

That the url you sent does not resolve. It carries no information about rendering, about access, about blocking or about whether the content exists somewhere else on the same site. Treat it as a question rather than an answer.

My sitemap has thousands of entries. Do I check them all?

Fetch them all and count every result, including the failures. A scan that quietly swallows its errors reports a clean site having read almost nothing, which is the most dangerous shape of bug in this work. Print the number you fetched beside the number you expected.

Should a page exist under two urls?

Generally no, and where history has given you two, a canonical pointing at the one you want is how you tell a crawler which is which. The thing to avoid is believing a page is missing because you asked for the form you do not use.

How do I find the pages under an unexpected prefix?

Group every entry in your sitemap by its path prefix and print the counts. It takes one pass over the file and it will usually surprise somebody on the team, which is the point of doing it.

The inventory is the cheapest thing you own

Every expensive mistake in this seam has begun with a list of urls that somebody made up rather than read, and the file that prevents all of them is already sitting on your domain. We hold ourselves to the same discipline in public: the windows, the export dates and the denominators behind every number we publish, including two Google Search Console exports and a dated blind scan, are on our proof page, and the url list behind each reading comes out of the sitemap rather than out of a spreadsheet. Running these checks on other companies' domains and fixing what they surface is our business, which is why the mistake that taught us this is written down here with its cost attached.

Read next

Simon-Kucher pricing strategy, what the firm publishes about its own method and what a Singapore buyer should ask before briefing itThe firm publishes its approach, its scale and four named service lines, and publishes no fee, so the useful work before any call is reading what it claims and deciding which decision you are buying.International pricing strategies for a Singapore company, and the corridor that stops one market undercutting anotherA converted home price is the one answer that is almost always wrong, so set a price per market and keep the gaps narrower than the cost of moving a unit between them.Premium pricing strategy for a Singapore business, and the fence that makes the higher number holdCharging permanently more than the credible alternatives works when the buyer can name what the extra money buys, and the published Singapore writing ladder shows exactly how that is built.Red Antler publishes no price, so here is what its own site does publish and how to cost the same scope from SingaporeRead on 29 October 2026, three pages of redantler.com carry a complete deliverable list, three business stages and not one figure about what any of it costs.Hiring a full service content agency, the five stages a retainer has to cover and the two handoffs where the money leaksMost content retainers buy production and quietly leave strategy and distribution with you, so price the stages rather than the word count.Hiring a branding agency for a Singapore financial services firm, and the three registers to search before you fall in love with a nameIdentity work for a licensed firm starts with a clearance search rather than a mood board, and two of the three registers are free to read in a browser today.

Or browse the whole archive.

See what AI says about you.

The first scan is free, it needs no account, and it asks the questions your buyers ask.

Free. No card. We ask 5 real buyer questions on 2 AI apps.

Already sure you want this? Start free. No card needed, and the free plan stays free. Pay only when you want the work done. Or talk to a person if you have a question first. Or read how we fix what it finds.