Skip to main content

SE::Google::Suggest - Google search suggestions parser

Google Suggest parser overview​

A parser of search suggestions by keywords in Google. With the SE::Google::Suggest parser, you can automatically collect keyword databases from Google search suggestions by query. Using the SE::Google::Suggest parser, you can easily and quickly parse Google suggestions by query based on the selected country, language, or domain.

The Google suggestions parser solves one of the main SEO tasks, namely, fast automated obtaining of an extended semantic core. Google search suggestions allow you to cover the maximum number of phrases, and in combination with the Google Keyword Planner parser - SE::Google::KeywordPlannerSE::Google::KeywordPlanner, you will get the most complete semantics that will help attract more organic traffic.

Thanks to the multi-threaded work of A-Parser, the processing speed of requests can reach 6000 requests per minute, which on average allows you to receive up to 45000 - 46000 results per minute.

SE::Google::Suggest parser speed

You can use automatic query multiplication, substitution of subqueries from files, enumeration of alphanumeric combinations and lists to obtain the maximum possible number of results. Using result filtering, you can immediately clean up the result by removing all unnecessary garbage (using minus-words).

The A-Parser functionality allows you to save the parsing settings of the SE::Google::Suggest parser for further use (presets), set a parsing schedule, and much more.

Saving results is possible in the form and structure that you need, thanks to the built-in powerful Template Toolkit template engine, which allows you to apply additional logic to the results and output data in various formats, including JSON, SQL, and CSV.

Use cases for the Google Suggest parser​


Example of working with built-in parsers in JS parsers

List of collected data​

  • Number of results by query
  • Suggestions for the query
  • Type of suggestion (0 - human, 1 - artificial)

SE::Google::Suggest parser collected data


  • Supports selection of search country, domain, and language of results
  • Ability to select a source to use for collecting suggestions (the Client option)
  • Ability to remove HTML tags from parsing results (the Remove HTML tags option)

Usage scenarios​

  • Collecting keyword databases

Query examples​

  • Queries must be specified as search phrases, for example:
write essay
Speak in english
Cats and dogs
cheap essay

Query substitutions​

You can use built-in macros for automatic substitution of subqueries from files. For example, we want to add some list of other words to each query, let's specify several main queries:


In the query format, we specify a macro for substituting additional words from the Keywords.txt file. This method allows you to increase the variability of queries many times over:

{subs:Keywords} $query 

This macro will create as many additional queries as there are in the file for each original search query, which in total will give [number of original queries (domains)] x [number of queries in the Keywords file] = [total number of queries] as a result of the macro's operation.

For example, if the Keywords.txt file contains:


Then the macro substitutions will turn 3 main queries into 6:

buy essay
cheap essay
buy article
cheap article
buy thesis
cheap thesis

Result output options​

A-Parser supports flexible formatting of results thanks to the built-in Template Toolkit template engine, which allows it to output results in any form, as well as in a structured form, such as CSV or JSON.

Exporting a list of suggestions​

Result format:


Example result:

buy essays online
buy essay cheap
buy essay uk
buy essays online no plagiarism
buy essay papers
buy essay online reviews
buy essays reddit
buy essay friend

Output of query, suggestions by query + suggestion type​

Result format:

$query:\n$results.format('$suggest - $type\n')

Example result:

cheap essay:
cheap essay writing service - 1
cheap essay writing service uk - 1
cheap essay writing service canada - 1
cheap essay writing 24 - 1
cheap essays online - 1
cheap essay writing service reddit - 1
cheap essay writing service australia - 1
cheap essay writing service review - 1
buy essay:
buy essay online - 1
buy essay cheap - 1
buy essay uk - 1
buy essay papers - 1
buy essay online reviews - 1
buy essays reddit - 1
buy essay friend - 1
buy essay online uk - 1

Output of suggestions in a CSV table​

The built-in tools.CSVLine utility allows you to create correct tabular documents ready for import into Excel or Google Sheets.

Result format:

[%  FOREACH i IN results;    tools.CSVline(i.suggest); END  %]

File name:


Initial text:



The Template Toolkit template engine is used in the General result format to output elements of the suggest array in the results loop.
What is the general result format.

In the results file name, simply change the file extension to csv.

To make the "Initial text" option available in the Task Editor, you need to activate "More options". In the "Initial text" field, enter the column names separated by commas and leave the second row blank.

Keyword competition​

Same as in SE::Google.

Saving in SQL format​

Result format:

[%  FOREACH p1.results;     "INSERT INTO serp VALUES('" _ query _ "', '";   suggest _ "', '";   type _ "')\n"; END  %]

Example result:

INSERT INTO serp VALUES('cheap essay', 'cheap essay writing service', '1')
INSERT INTO serp VALUES('cheap essay', 'cheap essay writing service uk', '1')
INSERT INTO serp VALUES('cheap essay', 'cheap essay writing service canada', '1')
INSERT INTO serp VALUES('cheap essay', 'cheap essay writing 24', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay online', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay cheap', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay uk', '1')
INSERT INTO serp VALUES('buy essay', 'buy essay papers', '1')

Dumping results in JSON​

Result format:

[%  data = {};  data.totalcount = p1.totalcount; data.suggests = []; FOREACH i IN p1.results;    data.suggests.push(i.suggest); END;  result = {}; result = data  %]

Initial text

[% result = {} %]

Final text

[% result.json %]

Example result:

{"suggests":["buy essay online","buy essay cheap","buy essay uk","buy essays online no plagiarism","buy essay papers","buy essay online reviews","buy essays reddit","buy essay friend"],"totalcount":8}

To make the "Initial text" and "Final text" options available in the Task Editor, you need to activate "More options".

Results processing​

A-Parser allows you to process results during parsing, in this section we have provided the most popular cases for the SE::Google::Suggest parser

Parse to level option​

The option tells the parser to navigate through adjacent pages of the site in depth to the specified level, for example:

  • If the 1st level is specified, the parser will navigate through all links specified on the source page
  • If the 2nd level is specified, the parser will navigate through all links specified on the source page + all links collected from pages on the first level
  • etc.

In simple terms, this is the minimum number of clicks between the source page and the final one. Since there will most likely be links to the source page or link repeats on adjacent pages, it is necessary to include query uniqueness (Unique queries) to prevent the parser from looping and not going in circles.

example of using the Parse to level option in the SE::Google::Suggest parser

Download example

How to import an example into A-Parser


Filtering results (using minus-words)​

Using minus-words, you can immediately remove the results you don't need. Similarly, using a filter, you can leave only those results that contain the necessary words.

example of filtering in SE::Google::Suggest

Download example

How to import an example into A-Parser



See also: Results filters

Possible settings​

Parameter nameDefault valueDescription
ClientChrome omniboxSelect the source to use for collecting suggestions (Search page / Chrome omnibox)
Follow suggestsHumanSelect the type of suggestions to substitute in queries when using Parser to level (All / Synthetic / Human)
Google the domain
Search from countryGlobalSelect the country from which the search is performed
Interface languageEnglishSelect the interface language
Remove HTML tagsβ˜‘Remove HTML tags