Skip to main content

Segments

Segments allow you to partition your crawl data into meaningful subsets based on URL filters. For example, you might create segments for blog pages, product pages, or pages within a specific subdirectory.

What segments are

A segment is a named filter applied to crawl URLs within a project. Once created, Lumar generates segment-specific data after each crawl, allowing you to track metrics and health scores for that subset of pages independently.

Key properties of a segment:

  • name -- a descriptive label (e.g., "Blog Pages").
  • group -- an optional grouping label for organising related segments.
  • crawlUrlFilter -- a JSON filter object using the same predicate syntax as CrawlUrlConnectionFilterInput.

Creating a segment

Use the createCrawlUrlSegment mutation to define a new segment on a project.

mutation CreateCrawlUrlSegment($input: CreateCrawlUrlSegmentInput!) {
createCrawlUrlSegment(input: $input) {
segment {
id
name
group
crawlUrlFilter
createdAt
}
}
}

Try in explorer

The crawlUrlFilter uses the same filter syntax as the filter argument on crawl URL connections. See Filtering for the full predicate reference.

Querying segments

Retrieve all segments defined on a project:

query GetProjectSegments($projectId: ObjectID!) {
getProject(id: $projectId) {
segments(first: 10) {
nodes {
id
name
group
crawlUrlFilter
createdAt
}
totalCount
}
}
}

Try in explorer

Segment health scores

Once a segment is created and a crawl completes, you can query health scores scoped to that segment. Pass the segmentId to the healthScore field on a crawl:

query GetSegmentHealthScore($crawlId: ObjectID!, $segmentId: ObjectID!) {
getCrawl(id: $crawlId) {
healthScore(reportCategoryCode: "seo", segmentId: $segmentId) {
healthScore
reportCategoryCode
segmentId
}
}
}

Try in explorer

You can also track segment health scores over time using getHealthScoreTrendForCrawlSegment, which works like getHealthScoreTrendForCrawl but accepts an additional segmentId parameter.

Use cases

Use CaseSegment Filter Example
Blog content{ "url": { "contains": "/blog/" } }
Product pages{ "url": { "contains": "/products/" } }
Subdomain{ "url": { "beginsWith": "https://shop.example.com" } }
Non-indexable pages{ "indexable": { "eq": false } }
Large pages{ "pageSize": { "gt": 100000 } }

Segments are especially useful when combined with health scores and dashboards to monitor specific areas of your site independently.