Which URL belongs in markup for a discussion spanning several pages?

The Citead team, updated

In short. Use the canonical opening-page URL for the discussion and a specific URL for each comment when one exists.

Definition: For a discussion split across URLs, put the thread's canonical opening-page URL in the DiscussionForumPosting url; give each Comment its own URL when a specific comment address exists. Google's discussion forum documentation sets these rules.

Key facts

  • Google's multi-page forum guidance recommends repeating the original post with the discussion's main page URL on later pages.
  • The DiscussionForumPosting url property is the canonical discussion URL. Google assigns it to the opening page in a multi-page thread and usually to the current URL for a single discussion.
  • A Comment URL identifies that specific comment on the page. Google says to omit it when it would only repeat the original post URL.
  • Schema.org defines a URL as a reference web page that unambiguously indicates an item's identity.

Which URL belongs on the discussion object?

The url on DiscussionForumPosting identifies the discussion as a whole. It stays at the canonical URL of the opening page while later pages carry additional comments. The page's own address can therefore contain a pagination path while the discussion object keeps the main thread URL.

Google's multi-page example places the markup on /post/very-popular-thread/14, while the url remains /post/very-popular-thread:

{
  "@type": "DiscussionForumPosting",
  "headline": "Very Popular Thread",
  "url": "https://example.com/post/very-popular-thread",
  "comment": [{
    "@type": "Comment",
    "text": "First Post on this Page"
  }]
}

What URL belongs on a comment?

Google defines Comment as a comment on the original CreativeWork, which is the DiscussionForumPosting in this markup. Its recommended url property points to the specific comment on the page when such an address exists. A fragment that identifies the comment is one documented form:

{
  "@type": "Comment",
  "url": "https://example.com/post123#comment456"
}

The original post URL belongs on the discussion object. A comment whose url would merely repeat that address has no separate url property in Google's guidance.

How should later pages be marked up?

For a linear discussion, Google's forum markup guidance says to nest the replies under the original post as Comment objects. On a later page, the original post keeps the main discussion URL and the comments represent the posts shown on that page. A threaded forum can instead use nested Comment objects to represent reply relationships, with comments marked in their page order.

The url values therefore serve two levels: one stable identity for the whole discussion and one address for an individual comment. The pagination URL identifies the fetched page, while a comment fragment identifies a particular contribution when the site exposes one.

How can you check the implementation?

Google recommends validating the markup with the Rich Results Test and URL Inspection, then using URL Inspection on pages that contain it. Its instructions also require the page to be accessible to Google and list a robots.txt block, a noindex tag and login requirements as access barriers to check.

FAQ

Should page 4 use its own URL in DiscussionForumPosting.url?

No. Use the discussion's canonical opening-page URL for the DiscussionForumPosting; the current page URL remains the address of the page being marked up.

Should every comment have a URL?

Only when you expose a URL for that specific comment. Google says to leave the property out when the value would be only the original post URL.

Can a comment URL use a fragment?

Yes. Google's example uses https://example.com/post123#comment456 for a referenced Comment, which shows the post URL followed by a comment fragment.

Sources

  1. Google Search Central, "Discussion forum (DiscussionForumPosting) structured data", 8 September 2026
  2. Schema.org, "URL - Schema.org Type", undated

Check how a page reads to answer engines. Open the GEO score analyzer

Test a page and see what to fix first

The analysis usually takes less than 10 seconds and needs no account.

400,000+ pages scored in the public benchmark