Skip to content

Anchor detail pages /anchor/<id> are HTTP 404s — invisible to search engines despite being advertised in sitemap and JSON-LD #597

Description

@raifdmueller

Problem

Every anchor detail URL (/anchor/<id>) returns HTTP 404. The page "works" only through the GitHub-Pages 404.html SPA fallback, which requires JavaScript and still carries the 404 status code.

This hurts SEO and AI discoverability threefold:

  1. Search engines do not index 404s — the status code wins, regardless of what the fallback renders. None of the 161 anchors can rank individually.
  2. sitemap.xml advertises all 161 URLs (priority 0.6) — crawlers are offered 161 dead links: wasted crawl budget, Search Console errors, a negative quality signal.
  3. The DefinedTerm JSON-LD (feat: Extend JSON-LD — standalone Organization + DefinedTerm/DefinedTermSet markup for anchors #579/feat(seo): structured data (Organization + DefinedTermSet) and pre-render the article #592) points at these 404 URLs"url": ".../anchor/<id>" on every term. The structured data we added for entity resolution references non-existent pages.

Shared deep links (social posts, the planned card QR codes) inherit the 404 as well.

Expected

Each anchor gets a real pre-rendered page at /anchor/<id>/index.html (HTTP 200) with its rendered content, own <title>, meta description, self-canonical URL — and a German variant under /de/anchor/<id> where a .de.adoc translation exists (155 of 161), with honest hreflang pairs.

With JavaScript, behavior is unchanged: the SPA hydrates and shows the anchor as a modal, exactly as today.

Why now

#596 built all the needed machinery (per-route applyHead, fragment rendering, hreflang/lang handling, the /de router rule — /de/anchor/<id> already resolves client-side). This is the follow-up flagged in that PR.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions