Opens in a new tabSkip to content
Agent LighthouseAgent Lighthouse

    Searches the text of every published page. The evidence sources themselves are not in this index — search all of them on the trusted sources page.

    GitHub ↗
    Browse checks and page contents
    machine-discovery/websub-hub-advertisement

    Feeds that advertise a WebSub hub carry exactly one absolute self link

    What it checks

    Checks the WebSub links on each feed that advertises a push hub. The feed should carry exactly one absolute rel=self link, and each hub should be an absolute URL whose server answers a HEAD. WebSub does not require HTTPS for the hub, so an http:// hub is accepted. A hub that refuses the scanner with 401, 403 or 429, as a WAF or bot challenge does, still counts as present. A missing, duplicated or relative self link breaks hub verification even when a hub is configured.

    The self URL may differ from the URL the feed was fetched from. The Recommendation allows it, so the audit does not compare them.

    State Result
    no feed na
    feeds, but none advertises a hub na
    every hubbed feed has one absolute self link and a live hub pass
    a hubbed feed has a missing, duplicated or relative self link warn
    a hub URL is relative, fails the address check, does not answer, or answers 404 or 5xx warn

    Why it matters

    WebSub is a W3C Recommendation. Publishers MUST implement at least one discovery mechanism: Link headers or embedded link elements. They SHOULD advertise at least one rel=hub and exactly one rel=self, and Link headers take discovery precedence. Falsifiable claim: a feed that declares a hub, but carries a missing, duplicated or relative rel=self, cannot complete hub subscription verification. The push path then silently degrades to whatever polling cadence subscribers happen to use. The failure is invisible to the publisher, because the hub appears configured. Google Search documents receiving WebSub notifications. No LLM vendor documents subscribing.

    Evidence

    • WebSub (W3C Recommendation) — W3C (spec, URL verified 2026-08-20)
    • W3C Recommendation. Publishers ‘MUST implement at least one’ of Link Headers or embedded link elements. The publisher ‘SHOULD include at least one Link Header … with rel=hub … as well as exactly one Link Header … with rel=self’. Discovery checks Link headers first, then embedded link elements; for HTML, link elements are recommended in <head> only. hub.topic ‘MUST be the “self” URL found during the discovery step, which may be different from the URL that was used to make the discovery request’ (verified 2026-10-18).
    • Build and submit a sitemap — Google (vendor doc, URL verified 2026-10-18)
    • ‘If you use Atom or RSS, you can use WebSub to broadcast your changes to search engines, including Google.’ The wording is optional, so a feed without a hub costs the site nothing. Google Search is the consumer; no LLM vendor documents subscribing to a hub.
    • RFC 4287 — The Atom Syndication Format — IETF (spec, URL verified 2026-08-20)
    • Sec 4.1.2: atom:entry MUST contain exactly one atom:id and exactly one atom:updated. The id is a permanent, universally unique IRI that ‘must not change across different instantiations of the entry’. The updated time is the ‘most recent modification time that the publisher considers significant’. atom:entry MUST also contain atom:summary in two cases: when atom:content carries a src attribute, and is thus empty, and when content is Base64-encoded. MUST NOT contain more than one atom:summary.
    • schema.org DataFeed — schema.org (spec, URL verified 2026-08-20)
    • DataFeed = ‘a single feed providing structured information about one or more entities or topics’; hierarchy Thing > CreativeWork > Dataset > DataFeed; primary property dataFeedElement accepting DataFeedItem/Text/Thing; DataFeedItem examples use dateCreated, dateModified, item. Adoption is only 1K-10K domains per Google’s web index (July 2026 aggregation) — too thin to score against.

    How it scores

    Tier per evidence policy: scored (weight 0.6), ternary. A broken advertisement is a warn, never a fail; a site with no hub is not judged.

    Grade: B — Google Search documents WebSub as a way to “broadcast your changes to search engines, including Google” (verified 2026-10-18). That is a named consumer reading the push path. It is Google Search’s crawl, not an LLM vendor, which is the same footing as machine-discovery/rss-feed (B). No AI answer engine documents subscribing to a hub, so the grade stops at B.

    Example finding

    A WordPress site with the PubSubHubbub plugin emits <atom:link rel="hub" href="https://pubsubhubbub.appspot.com/"/> alongside <atom:link rel="self" href="/feed/"/> — a relative href. Every hub subscription attempt fails verification because the topic URL cannot be resolved to the canonical feed, so the site has push infrastructure installed, a plugin reporting success, and zero actual fanout.

    Sources