How does Google Pagination Work?

Pagination with Google results is simplified with SerpApi's Pagination API. It is also possible to paginate manually with Google's query parameters for finer control. Both options are covered below.

Pagination structure overview

If you're looking to get started quickly with pagination, SerpApi Pagination is the easiest option. Every result set has a serpapi_pagination field that provides generated URLs for the next and previous result sets (if they exist).

{
  ...
  "serpapi_pagination": {
    "current": "Integer - Index of the current page",
    "next": "String - URL representing the next SerpAPI result set.",
    "next_link": "String - Deprecated. URL representing the next SerpAPI result set.",
    "previous_link": "String - Deprecated. URL representing the previous SerpAPI result set.",
    "other_pages": "Object - URLs representing SerpAPI result set on the specific pages"
  },
  ...
}

The next_link and previous_link URLs respect the existing query parameters that were passed into the first request. By default, SerpAPI pagination will increment the start parameter by the total number of organic results returned. When there are no previous or next result sets, the respective fields are omitted.

Without pagination parameters

If no pagination parameters are provided in a request, SerpApi will add them in as necessary:


JSON Example

{
  ...
  "serpapi_pagination": {
    "current": 1,
    "next": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=10",
    "other_pages": {
      "2": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=10",
      "3": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=20",
      "4": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=30",
      "5": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=40",
      "6": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=50",
      "7": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=60",
      "8": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=70",
      "9": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=80",
      "10": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&q=coffee&safe=active&start=90"
    }
  },
  ...
}

With pagination parameters

If pagination parameters are provided in a request, the start parameter is adjusted according to the number of organic results returned:


JSON Example

{
  ...
  "serpapi_pagination": {
    "current": 3,
    "next": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=75",
    "other_pages": {
      "1": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=0",
      "2": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=25",
      "4": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=75",
      "5": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=100",
      "6": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=125",
      "7": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=150",
      "8": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=175",
      "9": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=200",
      "10": "https://serpapi.com/search.json?device=desktop&engine=google&google_domain=google.com&num=25&q=coffee&start=225"
    },
  },
  ...
}

Manual Pagination

Manual pagination with Google is possible with two query parameters: start (defines the result offset) and num (defines the maximum number of returned results). For more information on the Google pagination parameters, view the Google Search Engine Overview Pagination section.

Google Search Result and Pagination Limitations

The number of returned results are limited by Google's internal systems. A search may return a statement above the serp that a stated number of pages were found, but the number of actual results is far lower than that number. The results available through our API is limited to the same results obtained through a standard Google search. For example, using the same "coffee" query as shown on our homepage, will yield "About 3,240,000,000 results." However, we're only able to access about 450 of those results, just as you were to search on your desktop or phone.