Skip to content

Support HEAD for public GET routes #378

Description

@espadonne

Context

Production currently returns 405 Method Not Allowed for HEAD /, while GET / returns 200. HEAD /healthz is already handled explicitly.

This is not a production outage, but public GET routes should generally support HEAD with the same status/headers and an empty body. This matters for uptime checks, crawlers, proxies/CDNs, SEO tooling, and GitHub-like behavior.

Acceptance criteria

  • HEAD / returns 200 with no response body.
  • Public GET pages return the same status and important headers for HEAD as GET.
  • HEAD /healthz continues returning 200.
  • Non-GET-only routes do not accidentally become reachable via HEAD.
  • Add focused handler tests.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    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