Skip to main content

SE::DuckDuckGo::Position - Checking website positions by keywords in DuckDuckGo

Scraper Overview

A scraper for checking website positions by keywords in DuckDuckGo. With the SE::DuckDuckGo::Position scraper, you can automatically check positions in DuckDuckGo using your own domain databases. Using the SE::DuckDuckGo::Position scraper, you can easily, accurately, and quickly determine the website's position in DuckDuckGo.

The functionality of A-Parser allows you to save the parsing settings of the SE::DuckDuckGo::Position scraper for further use (presets), set up a parsing schedule, and much more. You can use automatic substitution of subqueries from files.

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

Collected Data

  • Website position and link to the website page
  • List of all website positions and links to the pages
Collected data


  • All capabilities of the scraper SE::DuckDuckGoSE::DuckDuckGo
  • Automatically stops parsing when the website is found
  • Supports subdomain search
  • Ability to compare the desired position by domain, by main domain, and by full link
  • Collecting positions for multiple domains

Use Cases

  • Checking positions of your websites and competitors' websites
  • Finding traffic pages of the website


As queries, you need to specify the domain of the website being searched and the search query separated by a space, for example: новости новости онлайн новости А-Парсер

If it is necessary to check one website for a list of queries, you can specify the domain in the query format: $query

Or simply use a list of keywords. To use multiple domains in the query, you need to specify a list of domains separated by a comma and a space, followed by the keyword, for example:,, новости лента

The results will be recorded in the array $bulkcheck. The Stop when found option is also supported, parsing will stop if positions are found for all domains.

Query Substitutions

You can use built-in macros for automatic substitution of subqueries from files, for example, if we want to check websites/website based on the key base, we will specify several main queries:

In the query format, we will specify a macro for substituting additional words from the Keywords.txt file, this method allows you to check the website base based on the key base and get positions as a result:

$query {subs:Keywords}

This macro will create as many additional queries as there are in the file for each original search query, which will result in [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.

Output Results Examples

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

Export of position list

Getting the result in the form of:

desired domain - key: position number in the issue

Result format:

$domain - $key: $position\n

Example result: - новости онлайн: 13 - новости: 26 - новости: 1 - А-Парсер: 1

Simultaneous checking of multiple domains (bulk check)

Information about all domains during simultaneous checking of multiple domains is contained in the array $bulkcheck.

Result format:

$bulkcheck.format('$domain - $position\n')

Request example:,, новости лента

Example result: - 2 - 6 - 0

Similar to SE::Google.

Similar to SE::Google.

Similar to SE::Google.

Keyword competition

Similar to SE::Google.

Checking link indexing

Similar to SE::Google.

Saving in SQL format

Similar to SE::Google.

Dumping results to JSON

Similar to SE::Google.

Results processing

A-Parser allows processing results directly during parsing, in this section we have provided the most popular use cases for the SE::DuckDuckGo::Position scraper

Saving domains without zero positions

The example of simultaneous checking of multiple domains was taken as a basis (see above in the result output options) and a filter was added.

Add a filter and select the position output variable from the drop-down list. Select type: >. Then you need to enter 0 in Number. With this filter, you can remove all results with a zero position.

Download example

How to import the example into A-Parser


See also: Results filters

Similar to SE::Google.

Similar to SE::Google.

Extracting domains

Similar to SE::Google.

Removing tags from anchors and snippets

Similar to SE::Google.

Similar to SE::Google.

Possible settings

Supports all settings of the SE::DuckDuckGoSE::DuckDuckGo scraper, as well as additionally:

Parameter nameDefault valueDescription
Result format$domain - $key: $position\nDefault result output format
Stop when foundStop parsing if the domain is found, will not move on to the next pages
Match typeExact domainAbility to compare the desired position by domain, by main domain, and by full link (Exact domain / Top level domain / Exact url)