---
title: Sort content
slug: graph/docs/sort-content
docTags: 
createdAt: 2026-07-30T20:30:19.480Z
---

Sorting content in GraphQL controls how data is presented and retrieved, especially when working with large or dynamic datasets. Use the `orderBy` directive to specify the order in which results display (for example, by publication date, alphabetical order, or custom fields). Combining multiple sort criteria and using variables enables flexible, scalable, and performance-optimized content delivery.

## Sort by a single field

To sort results, apply the `orderBy` field in your GraphQL query. The following query shows articles with the most recent publication dates first:

```graphql
query {
  ArticlePage(
    orderBy: { StartPublish: DESC }
  ) {
    items {
      Name
      StartPublish
    }
  }
}
```

## Sort by multiple fields

Use multiple criteria to break ties and refine your results. The following query sorts articles first by publication date and then alphabetically by name:

```graphql
query {
  ArticlePage(
    orderBy: [
      { StartPublish: DESC },
      { Name: ASC }
    ]
  ) {
    items {
      Name
      StartPublish
    }
  }
}
```

## Common sort patterns

**Sort by publication date (newest first)** – Retrieve the latest articles with additional details like teaser text and path.

```graphql
query GetLatestArticles {
  ArticlePage(
    orderBy: { StartPublish: DESC }
    limit: 10
  ) {
    items {
      Name
      TeaserText
      StartPublish
      RelativePath
    }
  }
}
```

**Sort alphabetically** – Arrange articles by name in alphabetical order.

```graphql
query GetAlphabeticalArticles {
  ArticlePage(
    orderBy: { Name: ASC }
    limit: 20
  ) {
    items {
      Name
      TeaserText
      RelativePath
    }
  }
}
```

**Combined sorting with filtering** – Filter articles by category and sort by date and name.

```graphql
query GetFilteredAndSorted($category: String!) {
  ArticlePage(
    where: {
      TeaserText: { contains: $category }
    }
    orderBy: [
      { StartPublish: DESC },
      { Name: ASC }
    ]
    limit: 15
  ) {
    items {
      Name
      TeaserText
      StartPublish
      RelativePath
    }
  }
}
```

## Best practices for sorting

- **Include** `orderBy` – Ensure consistent results when paginating.
- **Use multiple criteria** – Handle ties, such as articles with the same date.
- **Combine with filtering** – Organize content into specific categories.
- **Consider performance** – Sort using indexed fields for efficiency.

### Use variables for dynamic sorting

Adjust sorting parameters dynamically using variables. This lets you change sorting fields and directions without altering the query structure.

```graphql
query GetSortedContent($sortField: String!, $sortDirection: String!) {
  ArticlePage(
    orderBy: { $sortField: $sortDirection }
    limit: 10
  ) {
    items {
      Name
      StartPublish
      RelativePath
    }
  }
}
```

The following are some example variables:

```json
{
  "sortField": "StartPublish",
  "sortDirection": "DESC"
}
```

## Next steps

After sorting your content, use the **Search functionality** to discover specific text-based content. Alternatively, if you are handling large content collections, implement **Pagination** to ensure efficient navigation and seamless browsing for users.
