Site structure and sitemap checks
Triggers and fixes for orphan and weakly linked pages, dead ends, and sitemap entries that redirect, error, or are non-canonical or noindex.
Updated 8 October 2026View as Markdown
These checks look at the whole site at once: which pages link to which, and what your XML sitemap lists. None of them is recheckable, because fixing one page changes counts on others. Run a full audit after the fix.
How SEOFix reads your sitemap and links
- Sitemap: SEOFix reads
/sitemap.xmlat the root of the audited site, following a sitemap index to its child sitemaps (gzip supported), up to 50 sitemap files and 100 MiB of XML. Sitemaps declared only inrobots.txtunder another path are not read. If any child sitemap fails or a limit is hit, the sitemap counts as incomplete, and "not in the sitemap" checks are skipped. - Links: internal
<a href>links from every crawled page. Pages disallowed byrobots.txtare not crawled, so links on them are not counted. - Incomplete crawls: when the audit did not see the whole site (it hit the page cap, pages were firewall-blocked, sections were skipped, or a preview hit its time limit), incoming-link counts can't be trusted.
ORPHAN_PAGE,ONE_INCOMING_LINKandREDIRECT_NO_INCOMING_LINKSare then not reported.
Indexable below means: no noindex in the robots meta tag, and no canonical pointing to another URL.
Internal link graph
ORPHAN_PAGE — Orphan page (no internal links)
- Severity: notice. Recheckable: no (needs a full audit).
- Trigger: the URL is listed in the sitemap, answered
200, is not the start page, and no crawled page links to it. Any internal link counts, including nofollow ones. Not reported when the crawl was incomplete. - Why it matters: pages only reachable through the sitemap are hard for crawlers to discover and get no link equity, so they rarely rank.
- How to fix: link to the page from at least one relevant page: navigation, a category or hub page, breadcrumbs or related-content links. If the page is obsolete, remove it from the sitemap and redirect or retire it.
ONE_INCOMING_LINK — Only one followed internal link
- Severity: notice. Recheckable: no (needs a full audit).
- Trigger: an indexable
200HTML page is linked from exactly one other crawled page with a followed link (norel="nofollow"). Links from a page to itself are not counted. Not reported when the crawl was incomplete. - Details:
linked_from, the one linking page. - Why it matters: a page with a single internal link gets little link equity and is easy for crawlers to miss.
- How to fix: link to it from more relevant pages: hub or category pages, related links, breadcrumbs, or "more like this" blocks in the template.
NO_OUTGOING_LINKS — No outgoing internal links
- Severity: warning. Recheckable: no (needs a full audit).
- Trigger: an indexable
200HTML page has no internal links to any other URL (nofollow links count as links). - Why it matters: a dead-end page passes no link equity on and gives visitors and crawlers nowhere to go.
- How to fix: add links from the page to related pages on the site: breadcrumbs, navigation, related content. If the page renders its navigation with JavaScript only, render the links in the HTML.
REDIRECT_NO_INCOMING_LINKS — Redirect with no incoming links
- Severity: notice. Recheckable: no (needs a full audit).
- Trigger: a crawled URL answered
3xx, is not the start URL, is not in the sitemap, is not the target of another redirect, and no crawled page links to it. Not reported when the crawl was incomplete. - Details:
redirect_to. - Why it matters: a redirect nothing links to is usually a leftover URL.
- How to fix: nothing on your site needs it. Keep the redirect if external sites or old bookmarks may still use the URL; otherwise you can drop it. Make sure no sitemap or feed lists it.
XML sitemap
The sitemap checks run only when the site has a sitemap that SEOFix read.
INDEXABLE_NOT_IN_SITEMAP — Indexable page not in sitemap
- Severity: notice. Recheckable: no (needs a full audit).
- Trigger: an indexable
200HTML page is not listed in the sitemap. Only reported when the whole sitemap was read. - Why it matters: the sitemap tells search engines which pages matter; indexable pages missing from it are discovered later or not at all.
- How to fix: add the page to the sitemap. Generated sitemaps often miss a content type or paginated pages; fix the generator. If the page should not rank, add
noindexor a canonical to the preferred URL instead.
SITEMAP_URL_NOT_200 — Sitemap URL is not a 200 page
- Severity: warning. Recheckable: no (needs a full audit).
- Trigger: a URL listed in the sitemap answered
3xx,4xxor5xx(firewall-blocked URLs excluded). - Details:
status_code,redirect_tofor redirects. - Why it matters: redirects and errors in the sitemap waste crawl budget and make search engines trust the sitemap less.
- How to fix: list only final
200URLs. Replace each redirect with its target (redirect_to) and remove broken URLs. Check that the generator builds URLs exactly as the server serves them (scheme,www, trailing slash).
<!-- before: redirects to the trailing-slash version -->
<url><loc>https://example.com/jobs</loc></url>
<!-- after -->
<url><loc>https://example.com/jobs/</loc></url>
SITEMAP_URL_NOT_CANONICAL — Non-canonical page in sitemap
- Severity: warning. Recheckable: no (needs a full audit).
- Trigger: a URL listed in the sitemap answered
200but its canonical points to a different URL (and it is not noindex; that case isNOINDEX_IN_SITEMAP). - Details:
canonical_url. - Why it matters: listing a URL that says another URL is the real one sends contradictory signals.
- How to fix: list the canonical URL instead, or fix the canonical if the listed URL is the one that should rank.
NOINDEX_IN_SITEMAP — Noindex page listed in sitemap
- Severity: warning. Recheckable: no (needs a full audit).
- Trigger: a URL listed in the sitemap has
noindexin its robots meta tag. - Details:
meta_robots. - Why it matters: the sitemap asks search engines to index a page that asks not to be indexed.
- How to fix: remove noindex pages from the sitemap, or drop the
noindexif the page should rank.
Related
More in Issue reference
Still stuck? Email [email protected] with your site and what you expected to see.