5 Backlink Audit Features You Can Develop In a Month
A full-fledged and feature-rich backlink audit software surely takes time to build. Yet, if you focus on a core feature set, you can release a minimum viable backlink checker in around a month of development time.
In this article, we’ll explore 5 features sufficient for a basic backlink audit, and the process of their implementation on top of DataForSEO Backlinks API. Importantly, each feature is easily adaptable to several use cases and can be later amplified hassle-free.
We hope our UI prototypes and actionable examples of necessary API requests will help you to speed up the process of modeling your software.
Here, we’ll cover the following features:
1. Backlink profile overview
2. Referring pages & backlinks over time
3. Referring TLDs distribution
4. Top backlink anchors
5. Broken backlinks table
To see more features and code examples for a backlink audit tool, visit our illustrated guide.
1. Backlink profile overview
Basically, this is where users will start their backlink analysis. To quickly understand the efficiency of their link-building efforts so far, they need a brief overview of the main stats. Sure enough, this overview can as well be used for checking on competitors’ and comparing the results. This will help users benchmark where their domain stands in a relevant niche.
Let’s take a closer look at what we have in this view and how each element can be built into it.
First off, users should have a choice between analyzing:
• A domain (without subdomains)
• A domain with all of its subdomains
• A URL
• A prefix (path)
Once a target is entered, the donut charts will indicate the corresponding Domain and URL Rank. If the target is a domain, the URL rank will correspond to the homepage rank. If the target is a page, the URL rank will indicate the rank of that page. In case a user selects a path for analysis (e.g. dataforseo.com/blog/), the URL rank should stand for the rank of the main page of that path (https://dataforseo.com/blog).
By the same logic, the selected target scope will determine the stats spotlighted in all the counters and the dofollow/nofollow bar.
So, how to orchestrate this functionality? In essence, it will take only two API requests to the Backlinks Summary endpoint, and one request to the Ranked Keywords endpoint of the DataForSEO Labs API.
We’ll show you how to get data for every component when the target is a domain (without subdomains).
First off, to obtain a Domain Rank, we should make the following API request to the Backlinks Summary endpoint.
POST: https://api.dataforseo.com/v3/backlinks/summary/live
[
{
"target": "explodingtopics.com",
"internal_list_limit": 10,
"include_subdomains": true
}
]
Yet, we also need a URL Rank for the homepage, so we’ll make the second request to the Backlinks Summary endpoint with the corresponding target.
[
{
"target": "https://explodingtopics.com/",
"internal_list_limit": 10,
"include_subdomains": true
}
]
Note that if a user-defined target is a prefix, you’d have to make a third request to the Summary endpoint in order to receive the stats for a specific path (number of backlinks, referring domains, broken backlinks, and values for DF/NF ratio).
You can learn more about defining the target scope with Backlinks API here.
In this example case, we’re analyzing a domain, so our values for Domain Rank, backlinks, referring domains, broken backlinks, and the DF/NF ratio should come from the response to the first request.
Note: to calculate the DF/NF ratio, subtract the value in nofollow from the value in backlinks.
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0749 sec.",
"cost": 0.02003,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "10111033-1535-0265-0000-938d44fdcb4d",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0195 sec.",
"cost": 0.02003,
"result_count": 1,
"path": [
"v3",
"backlinks",
"summary",
"live"
],
"data": {
"api": "backlinks",
"function": "summary",
"target": "explodingtopics.com",
"internal_list_limit": 10,
"include_subdomains": true
},
"result": [
{
"target": "explodingtopics.com",
"first_seen": "2019-06-25 02:04:35 +00:00",
"lost_date": null,
"rank": 264,
"backlinks": 3278,
"crawled_pages": 2427,
"info": {
"server": "cloudflare",
"cms": null,
"platform_type": [
"unknown"
],
"ip_address": "172.67.129.80",
"is_ip": false
},
"internal_links_count": 27925,
"external_links_count": 7558,
"broken_backlinks": 69,
"broken_pages": 120,
"referring_domains": 1483,
"referring_main_domains": 1428,
"referring_ips": 1364,
"referring_subnets": 1017,
"referring_pages": 2991,
"referring_links_tld": {
"com": 1887,
"co": 238,
"net": 131,
"info": 77,
"org": 60,
"it": 49,
"co.uk": 45,
"io": 38,
"pw": 33,
"ru": 31
},
"referring_links_types": {
"anchor": 2783,
"redirect": 204,
"canonical": 4
},
"referring_links_attributes": {
"noopener": 1248,
"noreferrer": 791,
"nofollow": 784,
"external": 65,
"ugc": 24,
"sponsored": 4,
"bookmark": 1
},
"referring_links_platform_types": {
"unknown": 1563,
"cms": 1187,
"blogs": 1185,
"ecommerce": 109,
"message-boards": 3
},
"referring_links_semantic_locations": {
"article": 1251,
"": 938,
"section": 627,
"main": 119,
"figcaption": 26,
"header": 15,
"figure": 12,
"aside": 2,
"nav": 1
}
}
]
}
]
}
As for the volume of Organic Traffic, we should get this value by calling the Ranked Keywords endpoint of DataForSEO Labs API. Remember to set an appropriate target and use filters if you need to refine the scope. In our case, the request looks as follows.
POST: https://api.dataforseo.com/v3/dataforseo_labs/google/ranked_keywords/live
[
{
"target": "explodingtopics.com",
"filters": [
["keyword_data.keyword_info.search_volume", "<>", 0],
"and",
[
["ranked_serp_element.serp_item.type", "<>", "paid"],
"or",
["ranked_serp_element.serp_item.is_paid", "=", false]
]
],
"limit": 1
}
]
And here’s the data we need (highlighted in blue).
{
"version": "0.1.20220216",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3485 sec.",
"cost": 0.0101,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "03211848-2806-0381-0000-69a41c8860f2",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3024 sec.",
"cost": 0.0101,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"ranked_keywords",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "ranked_keywords",
"se_type": "google",
"target": "explodingtopics.com",
"filters": [
[
"keyword_data.keyword_info.search_volume",
"<>",
0
],
"and",
[
[
"ranked_serp_element.serp_item.type",
"<>",
"paid"
],
"or",
[
"ranked_serp_element.serp_item.is_paid",
"=",
false
]
]
],
"limit": 1
},
"result": [
{
"se_type": "google",
"target": "explodingtopics.com",
"location_code": null,
"language_code": null,
"total_count": 22686,
"items_count": 1,
"metrics": {
"organic": {
"pos_1": 547,
"pos_2_3": 780,
"pos_4_10": 1937,
"pos_11_20": 2383,
"pos_21_30": 2922,
"pos_31_40": 2785,
"pos_41_50": 2624,
"pos_51_60": 2477,
"pos_61_70": 2081,
"pos_71_80": 1736,
"pos_81_90": 1381,
"pos_91_100": 878,
"etv": 141033.42686614022,
"impressions_etv": 9239.169902549125,
"count": 22531,
"estimated_paid_traffic_cost": 209859.92118864093,
"is_new": 12226,
"is_up": 6101,
"is_down": 4086,
"is_lost": 0
},
"paid": {
"pos_1": 0,
"pos_2_3": 0,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 0,
"impressions_etv": 0,
"count": 0,
"estimated_paid_traffic_cost": 0,
"is_new": 0,
"is_up": 0,
"is_down": 0,
"is_lost": 0
},
"featured_snippet": {
"pos_1": 132,
"pos_2_3": 23,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 5095.729986667633,
"impressions_etv": 364.5378615260124,
"count": 155,
"estimated_paid_traffic_cost": 17120.277073830366,
"is_new": 109,
"is_up": 3,
"is_down": 7,
"is_lost": 0
},
"local_pack": {
"pos_1": 0,
"pos_2_3": 0,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 0,
"impressions_etv": 0,
"count": 0,
"estimated_paid_traffic_cost": 0,
"is_new": 0,
"is_up": 0,
"is_down": 0,
"is_lost": 0
}
},
"metrics_absolute": null,
"items": [
{
"se_type": "google",
"keyword_data": {
"se_type": "google",
"keyword": "2021 culture trends",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"se_type": "google",
"last_updated_time": "2022-02-28 09:56:08 +00:00",
"competition": 0.024725275114178658,
"cpc": null,
"search_volume": 110,
"categories": null,
"monthly_searches": [
{
"year": 2022,
"month": 1,
"search_volume": 50
},
{
"year": 2021,
"month": 12,
"search_volume": 70
},
{
"year": 2021,
"month": 11,
"search_volume": 110
},
{
"year": 2021,
"month": 10,
"search_volume": 320
},
{
"year": 2021,
"month": 9,
"search_volume": 170
},
{
"year": 2021,
"month": 8,
"search_volume": 110
},
{
"year": 2021,
"month": 7,
"search_volume": 70
},
{
"year": 2021,
"month": 6,
"search_volume": 70
},
{
"year": 2021,
"month": 5,
"search_volume": 70
},
{
"year": 2021,
"month": 4,
"search_volume": 70
},
{
"year": 2021,
"month": 3,
"search_volume": 110
},
{
"year": 2021,
"month": 2,
"search_volume": 110
}
]
},
"impressions_info": {
"se_type": "google",
"last_updated_time": "2022-03-09 14:57:14 +00:00",
"bid": 999,
"match_type": "exact",
"ad_position_min": null,
"ad_position_max": null,
"ad_position_average": null,
"cpc_min": null,
"cpc_max": null,
"cpc_average": null,
"daily_impressions_min": null,
"daily_impressions_max": null,
"daily_impressions_average": null,
"daily_clicks_min": null,
"daily_clicks_max": null,
"daily_clicks_average": null,
"daily_cost_min": null,
"daily_cost_max": null,
"daily_cost_average": null
},
"serp_info": {
"se_type": "google",
"check_url": "https://www.google.com/search?q=2021%20culture%20trends&num=100&hl=en&gl=US&gws_rd=cr&ie=UTF-8&oe=UTF-8&uule=w+CAIQIFISCQs2MuSEtepUEUK33kOSuTsc",
"serp_item_types": [
"organic",
"people_also_ask",
"video",
"images",
"related_searches"
],
"se_results_count": 1020000000,
"last_updated_time": "2022-03-06 15:41:24 +00:00",
"previous_updated_time": "2022-02-04 15:41:24 +00:00"
}
},
"ranked_serp_element": {
"se_type": "google",
"serp_item": {
"se_type": "google",
"type": "organic",
"rank_group": 1,
"rank_absolute": 1,
"position": "left",
"xpath": "/html[1]/body[1]/div[7]/div[1]/div[10]/div[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]",
"domain": "explodingtopics.com",
"title": "7 Cultural Trends For 2022-2025 - Exploding Topics",
"url": "https://explodingtopics.com/blog/cultural-trends",
"breadcrumb": "https://explodingtopics.com › blog › cultural-trends",
"is_image": false,
"is_video": false,
"is_featured_snippet": false,
"is_malicious": false,
"description": "7 Cultural Trends For 2022-2025 · 1. The Creator Economy Keeps Growing · 2. Brand Purpose and Activism Gain Importance · 3. Nostalgia Drives ...",
"pre_snippet": "01/13/2022 00:00:00",
"extended_snippet": null,
"amp_version": false,
"rating": null,
"highlighted": [
"Cultural Trends"
],
"links": null,
"about_this_result": {
"type": "about_this_result_element",
"url": "https://explodingtopics.com/blog/cultural-trends",
"source": null,
"source_info": null,
"source_url": null,
"language": "English",
"location": "the United States",
"search_terms": [
"2021",
"culture",
"trends"
],
"related_terms": null
},
"main_domain": "explodingtopics.com",
"relative_url": "/blog/cultural-trends",
"etv": 33.439998626708984,
"impressions_etv": null,
"estimated_paid_traffic_cost": null,
"rank_changes": {
"previous_rank_absolute": null,
"is_new": true,
"is_up": false,
"is_down": false
}
},
"check_url": "https://www.google.com/search?q=2021%20culture%20trends&num=100&hl=en&gl=US&gws_rd=cr&ie=UTF-8&oe=UTF-8&uule=w+CAIQIFISCQs2MuSEtepUEUK33kOSuTsc",
"serp_item_types": [
"organic",
"people_also_ask",
"video",
"images",
"related_searches"
],
"se_results_count": 1020000000,
"keyword_difficulty": 53,
"last_updated_time": "2022-03-06 15:41:24 +00:00",
"previous_updated_time": "2022-02-04 15:41:24 +00:00"
}
}
]
}
]
}
]
}
That’s it. Now our profile overview is complete with data, and we can repeat the steps to help users spy on competitors’ link-building results.
To review further details and implement an extended view of this feature, visit this page.
2. Referring pages & backlinks over time
Sure enough, a proper backlink audit doesn’t end at the profile overview. The next thing users will need for a more insightful backlink analysis is the line graph you can see above. In a nutshell, it plots a timeline of acquiring referring pages and backlinks thus helping users to measure their link-building velocity and compare it to the competition.
It’s important both to see the exact cumulative increase or decline and to observe the link-building consistency, so the line graph is the perfect representation for this data.
While on the subject, the data necessary to shape out this feature can be obtained with one API call to the Backlinks History endpoint. Let’s request data for the explodingtopics.com domain.
[
{
"target": "explodingtopics.com",
"date_from": "2020-04-01",
"date_to": "2021-10-01"
}
]
In the response to this call, we’ll get a number of backlinks_history items, and each will have values for a date, backlinks, and referring_pages. That’s exactly what we need to create this line graph.
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.2295 sec.",
"cost": 0.02045,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "10111058-1535-0266-0000-2bdcbc651bf8",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.1611 sec.",
"cost": 0.02045,
"result_count": 1,
"path": [
"v3",
"backlinks",
"history",
"live"
],
"data": {
"api": "backlinks",
"function": "history",
"target": "explodingtopics.com",
"date_from": "2020-04-01",
"date_to": "2021-10-01"
},
"result": [
{
"target": "explodingtopics.com",
"date_from": "2020-04-01",
"date_to": "2021-10-01",
"items_count": 15,
"items": [
{
"type": "backlinks_history",
"date": "2020-04-29 00:00:00 +00:00",
"rank": 153,
"backlinks": 303,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 691,
"internal_links_count": 6196,
"external_links_count": 882,
"broken_backlinks": 0,
"broken_pages": 62,
"referring_domains": 108,
"referring_main_domains": 105,
"referring_ips": 104,
"referring_subnets": 103,
"referring_pages": 275,
"referring_links_tld": {
"co": 126,
"com": 106,
"it": 13,
"org": 3,
"ru": 3,
"be": 2,
"fr": 2,
"io": 2,
"net": 2,
"nl": 2
},
"referring_links_types": {
"anchor": 154,
"redirect": 121
},
"referring_links_attributes": {
"noopener": 72,
"noreferrer": 53,
"nofollow": 34,
"external": 2,
"ugc": 1
},
"referring_links_platform_types": {
"unknown": 82,
"cms": 69,
"blogs": 55,
"ecommerce": 4,
"message-boards": 1
},
"referring_links_semantic_locations": {
"": 154,
"article": 80,
"section": 20,
"nav": 11,
"main": 7,
"aside": 2,
"figcaption": 1
}
},
{
"type": "backlinks_history",
"date": "2020-06-29 00:00:00 +00:00",
"rank": 173,
"backlinks": 470,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 922,
"internal_links_count": 11613,
"external_links_count": 914,
"broken_backlinks": 0,
"broken_pages": 62,
"referring_domains": 198,
"referring_main_domains": 194,
"referring_ips": 190,
"referring_subnets": 182,
"referring_pages": 435,
"referring_links_tld": {
"com": 188,
"co": 162,
"it": 13,
"net": 8,
"com.br": 6,
"org": 5,
"fr": 5,
"gr": 4,
"io": 4,
"ru": 3
},
"referring_links_types": {
"anchor": 280,
"redirect": 155
},
"referring_links_attributes": {
"noopener": 129,
"noreferrer": 104,
"nofollow": 67,
"external": 4,
"ugc": 1
},
"referring_links_platform_types": {
"unknown": 156,
"cms": 120,
"blogs": 109,
"ecommerce": 9,
"message-boards": 1
},
"referring_links_semantic_locations": {
"": 226,
"article": 140,
"section": 31,
"main": 16,
"figcaption": 12,
"nav": 7,
"aside": 2,
"figure": 1
}
},
{
"type": "backlinks_history",
"date": "2020-07-30 00:00:00 +00:00",
"rank": 184,
"backlinks": 605,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 1337,
"internal_links_count": 16504,
"external_links_count": 1196,
"broken_backlinks": 0,
"broken_pages": 69,
"referring_domains": 295,
"referring_main_domains": 290,
"referring_ips": 268,
"referring_subnets": 248,
"referring_pages": 552,
"referring_links_tld": {
"com": 249,
"co": 163,
"ro": 13,
"net": 13,
"in": 12,
"it": 11,
"com.br": 9,
"fr": 7,
"io": 6,
"ru": 6
},
"referring_links_types": {
"anchor": 396,
"redirect": 156
},
"referring_links_attributes": {
"noopener": 185,
"noreferrer": 145,
"nofollow": 109,
"external": 6,
"ugc": 2
},
"referring_links_platform_types": {
"unknown": 223,
"cms": 166,
"blogs": 164,
"ecommerce": 12,
"message-boards": 1
},
"referring_links_semantic_locations": {
"": 264,
"article": 193,
"section": 56,
"main": 21,
"figcaption": 13,
"aside": 2,
"figure": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2020-08-30 00:00:00 +00:00",
"rank": 191,
"backlinks": 740,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 1594,
"internal_links_count": 20370,
"external_links_count": 1256,
"broken_backlinks": 0,
"broken_pages": 78,
"referring_domains": 361,
"referring_main_domains": 352,
"referring_ips": 316,
"referring_subnets": 287,
"referring_pages": 676,
"referring_links_tld": {
"com": 314,
"co": 194,
"net": 18,
"in": 14,
"ro": 13,
"it": 13,
"com.br": 9,
"ru": 8,
"org": 8,
"fr": 7
},
"referring_links_types": {
"anchor": 485,
"redirect": 191
},
"referring_links_attributes": {
"noopener": 235,
"noreferrer": 167,
"nofollow": 127,
"external": 13,
"ugc": 2,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 268,
"cms": 211,
"blogs": 209,
"ecommerce": 13,
"message-boards": 1
},
"referring_links_semantic_locations": {
"": 322,
"article": 251,
"section": 65,
"main": 23,
"figcaption": 10,
"aside": 2,
"figure": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2020-09-29 00:00:00 +00:00",
"rank": 200,
"backlinks": 871,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 1798,
"internal_links_count": 19583,
"external_links_count": 1386,
"broken_backlinks": 0,
"broken_pages": 101,
"referring_domains": 439,
"referring_main_domains": 431,
"referring_ips": 386,
"referring_subnets": 349,
"referring_pages": 798,
"referring_links_tld": {
"com": 392,
"co": 197,
"net": 25,
"in": 16,
"ro": 14,
"ru": 11,
"it": 11,
"com.br": 11,
"org": 10,
"co.uk": 7
},
"referring_links_types": {
"anchor": 605,
"redirect": 193
},
"referring_links_attributes": {
"noopener": 300,
"noreferrer": 216,
"nofollow": 145,
"external": 16,
"ugc": 2,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 333,
"cms": 263,
"blogs": 262,
"ecommerce": 23,
"message-boards": 1
},
"referring_links_semantic_locations": {
"": 356,
"article": 314,
"section": 81,
"main": 26,
"figcaption": 11,
"header": 4,
"figure": 3,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2020-10-30 00:00:00 +00:00",
"rank": 210,
"backlinks": 1055,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 1666,
"internal_links_count": 17986,
"external_links_count": 1452,
"broken_backlinks": 0,
"broken_pages": 103,
"referring_domains": 521,
"referring_main_domains": 512,
"referring_ips": 462,
"referring_subnets": 409,
"referring_pages": 962,
"referring_links_tld": {
"com": 517,
"co": 200,
"net": 29,
"it": 18,
"in": 15,
"ro": 15,
"ru": 13,
"com.br": 12,
"org": 12,
"co.uk": 11
},
"referring_links_types": {
"anchor": 768,
"redirect": 194
},
"referring_links_attributes": {
"noopener": 403,
"noreferrer": 293,
"nofollow": 169,
"external": 18,
"ugc": 2,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 401,
"cms": 357,
"blogs": 355,
"ecommerce": 32,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 401,
"": 394,
"section": 112,
"main": 36,
"figcaption": 9,
"header": 4,
"figure": 3,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2020-12-30 00:00:00 +00:00",
"rank": 214,
"backlinks": 1164,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 1735,
"internal_links_count": 19128,
"external_links_count": 1463,
"broken_backlinks": 0,
"broken_pages": 105,
"referring_domains": 576,
"referring_main_domains": 566,
"referring_ips": 509,
"referring_subnets": 449,
"referring_pages": 1053,
"referring_links_tld": {
"com": 579,
"co": 202,
"net": 31,
"it": 18,
"in": 16,
"org": 15,
"ro": 14,
"ru": 13,
"com.br": 12,
"fr": 12
},
"referring_links_types": {
"anchor": 858,
"redirect": 194,
"canonical": 1
},
"referring_links_attributes": {
"noopener": 448,
"noreferrer": 328,
"nofollow": 186,
"external": 24,
"ugc": 5,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 451,
"cms": 397,
"blogs": 395,
"ecommerce": 35,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 442,
"": 417,
"section": 128,
"main": 45,
"figcaption": 10,
"figure": 4,
"header": 4,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-01-31 00:00:00 +00:00",
"rank": 222,
"backlinks": 1303,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 1861,
"internal_links_count": 21898,
"external_links_count": 2640,
"broken_backlinks": 0,
"broken_pages": 107,
"referring_domains": 642,
"referring_main_domains": 630,
"referring_ips": 569,
"referring_subnets": 497,
"referring_pages": 1181,
"referring_links_tld": {
"com": 677,
"co": 206,
"net": 35,
"it": 23,
"org": 17,
"in": 16,
"ro": 15,
"ru": 15,
"io": 11,
"co.uk": 11
},
"referring_links_types": {
"anchor": 985,
"redirect": 194,
"canonical": 2
},
"referring_links_attributes": {
"noopener": 500,
"noreferrer": 361,
"nofollow": 212,
"external": 28,
"ugc": 5,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 536,
"cms": 438,
"blogs": 433,
"ecommerce": 40,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 475,
"": 450,
"section": 175,
"main": 51,
"figcaption": 13,
"header": 9,
"figure": 5,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-03-31 00:00:00 +00:00",
"rank": 234,
"backlinks": 1642,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 2236,
"internal_links_count": 27266,
"external_links_count": 3406,
"broken_backlinks": 0,
"broken_pages": 107,
"referring_domains": 773,
"referring_main_domains": 755,
"referring_ips": 662,
"referring_subnets": 568,
"referring_pages": 1502,
"referring_links_tld": {
"com": 921,
"co": 217,
"net": 40,
"it": 29,
"pw": 19,
"org": 18,
"ru": 18,
"in": 16,
"ro": 15,
"fr": 14
},
"referring_links_types": {
"anchor": 1305,
"redirect": 195,
"canonical": 2
},
"referring_links_attributes": {
"noopener": 594,
"noreferrer": 412,
"nofollow": 312,
"external": 30,
"ugc": 5,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 757,
"blogs": 531,
"cms": 531,
"ecommerce": 61,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 573,
"": 531,
"section": 288,
"main": 75,
"figcaption": 18,
"header": 9,
"figure": 5,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-04-30 00:00:00 +00:00",
"rank": 240,
"backlinks": 1881,
"new_backlinks": 0,
"lost_backlinks": 0,
"new_referring_domains": 0,
"lost_referring_domains": 0,
"crawled_pages": 2381,
"internal_links_count": 30513,
"external_links_count": 5831,
"broken_backlinks": 0,
"broken_pages": 108,
"referring_domains": 867,
"referring_main_domains": 843,
"referring_ips": 734,
"referring_subnets": 617,
"referring_pages": 1714,
"referring_links_tld": {
"com": 1063,
"co": 222,
"net": 50,
"it": 29,
"pw": 26,
"co.uk": 23,
"ru": 20,
"org": 19,
"io": 18,
"in": 17
},
"referring_links_types": {
"anchor": 1516,
"redirect": 195,
"canonical": 3
},
"referring_links_attributes": {
"noopener": 665,
"noreferrer": 454,
"nofollow": 389,
"external": 33,
"ugc": 5,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 896,
"blogs": 600,
"cms": 599,
"ecommerce": 71,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 654,
"": 586,
"section": 348,
"main": 88,
"figcaption": 20,
"header": 9,
"figure": 6,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-05-31 00:00:00 +00:00",
"rank": 243,
"backlinks": 2054,
"new_backlinks": 178,
"lost_backlinks": 26,
"new_referring_domains": 59,
"lost_referring_domains": 0,
"crawled_pages": 2016,
"internal_links_count": 23020,
"external_links_count": 5248,
"broken_backlinks": 65,
"broken_pages": 108,
"referring_domains": 922,
"referring_main_domains": 896,
"referring_ips": 781,
"referring_subnets": 656,
"referring_pages": 1867,
"referring_links_tld": {
"com": 1176,
"co": 221,
"net": 60,
"pw": 32,
"it": 31,
"co.uk": 25,
"ru": 24,
"in": 20,
"io": 18,
"org": 17
},
"referring_links_types": {
"anchor": 1669,
"redirect": 195,
"canonical": 3
},
"referring_links_attributes": {
"noopener": 714,
"noreferrer": 477,
"nofollow": 474,
"external": 37,
"ugc": 5,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 995,
"blogs": 653,
"cms": 653,
"ecommerce": 76,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 702,
"": 608,
"section": 428,
"main": 91,
"figcaption": 20,
"header": 9,
"figure": 6,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-06-30 00:00:00 +00:00",
"rank": 244,
"backlinks": 2217,
"new_backlinks": 148,
"lost_backlinks": 8,
"new_referring_domains": 64,
"lost_referring_domains": 0,
"crawled_pages": 2455,
"internal_links_count": 28178,
"external_links_count": 5552,
"broken_backlinks": 65,
"broken_pages": 111,
"referring_domains": 989,
"referring_main_domains": 957,
"referring_ips": 832,
"referring_subnets": 694,
"referring_pages": 2009,
"referring_links_tld": {
"com": 1281,
"co": 227,
"net": 65,
"it": 36,
"pw": 32,
"co.uk": 30,
"ru": 24,
"in": 22,
"io": 20,
"org": 19
},
"referring_links_types": {
"anchor": 1810,
"redirect": 196,
"canonical": 3
},
"referring_links_attributes": {
"noopener": 761,
"nofollow": 520,
"noreferrer": 494,
"external": 38,
"ugc": 6,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 1084,
"blogs": 704,
"cms": 703,
"ecommerce": 85,
"message-boards": 1
},
"referring_links_semantic_locations": {
"article": 757,
"": 646,
"section": 472,
"main": 94,
"figcaption": 21,
"header": 9,
"figure": 7,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-07-31 00:00:00 +00:00",
"rank": 249,
"backlinks": 2401,
"new_backlinks": 225,
"lost_backlinks": 35,
"new_referring_domains": 104,
"lost_referring_domains": 0,
"crawled_pages": 2693,
"internal_links_count": 31895,
"external_links_count": 6606,
"broken_backlinks": 66,
"broken_pages": 114,
"referring_domains": 1081,
"referring_main_domains": 1043,
"referring_ips": 947,
"referring_subnets": 770,
"referring_pages": 2183,
"referring_links_tld": {
"com": 1408,
"co": 224,
"net": 64,
"it": 40,
"co.uk": 34,
"pw": 32,
"org": 28,
"ru": 25,
"in": 24,
"io": 22
},
"referring_links_types": {
"anchor": 1984,
"redirect": 196,
"canonical": 3
},
"referring_links_attributes": {
"noopener": 844,
"nofollow": 565,
"noreferrer": 547,
"external": 47,
"ugc": 12,
"sponsored": 1
},
"referring_links_platform_types": {
"unknown": 1179,
"cms": 779,
"blogs": 777,
"ecommerce": 88,
"message-boards": 2
},
"referring_links_semantic_locations": {
"article": 852,
"": 679,
"section": 509,
"main": 102,
"figcaption": 21,
"header": 9,
"figure": 8,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-08-31 00:00:00 +00:00",
"rank": 256,
"backlinks": 2719,
"new_backlinks": 313,
"lost_backlinks": 27,
"new_referring_domains": 174,
"lost_referring_domains": 0,
"crawled_pages": 2355,
"internal_links_count": 27041,
"external_links_count": 6899,
"broken_backlinks": 68,
"broken_pages": 115,
"referring_domains": 1253,
"referring_main_domains": 1211,
"referring_ips": 1146,
"referring_subnets": 881,
"referring_pages": 2457,
"referring_links_tld": {
"com": 1580,
"co": 233,
"net": 88,
"it": 47,
"org": 46,
"co.uk": 37,
"pw": 32,
"io": 27,
"ru": 26,
"in": 25
},
"referring_links_types": {
"anchor": 2257,
"redirect": 196,
"canonical": 4
},
"referring_links_attributes": {
"noopener": 1002,
"nofollow": 649,
"noreferrer": 639,
"external": 58,
"ugc": 15,
"sponsored": 3
},
"referring_links_platform_types": {
"unknown": 1290,
"cms": 937,
"blogs": 934,
"ecommerce": 95,
"message-boards": 3
},
"referring_links_semantic_locations": {
"article": 973,
"": 755,
"section": 571,
"main": 107,
"figcaption": 25,
"header": 13,
"figure": 10,
"aside": 2,
"nav": 1
}
},
{
"type": "backlinks_history",
"date": "2021-09-30 00:00:00 +00:00",
"rank": 266,
"backlinks": 3096,
"new_backlinks": 438,
"lost_backlinks": 35,
"new_referring_domains": 174,
"lost_referring_domains": 0,
"crawled_pages": 2376,
"internal_links_count": 27239,
"external_links_count": 7273,
"broken_backlinks": 69,
"broken_pages": 120,
"referring_domains": 1412,
"referring_main_domains": 1360,
"referring_ips": 1306,
"referring_subnets": 988,
"referring_pages": 2814,
"referring_links_tld": {
"com": 1809,
"co": 235,
"net": 121,
"org": 53,
"it": 49,
"co.uk": 41,
"io": 35,
"pw": 33,
"in": 31,
"ru": 29
},
"referring_links_types": {
"anchor": 2609,
"redirect": 201,
"canonical": 4
},
"referring_links_attributes": {
"noopener": 1196,
"noreferrer": 753,
"nofollow": 732,
"external": 62,
"ugc": 23,
"sponsored": 4,
"bookmark": 1
},
"referring_links_platform_types": {
"unknown": 1436,
"cms": 1140,
"blogs": 1138,
"ecommerce": 106,
"message-boards": 3
},
"referring_links_semantic_locations": {
"article": 1189,
"": 844,
"section": 611,
"main": 115,
"figcaption": 25,
"header": 15,
"figure": 12,
"aside": 2,
"nav": 1
}
}
]
}
]
}
]
}
While this particular use case requires only a few parameters from the response of the Backlinks History endpoint, as you can see, it supplies a wealth of retrospective stats that can power up more features. For example, you can additionally incorporate a similar timeline graph illustrating the growth or decline of the target’s Domain Rank. Simply use the rank values and appropriate dates from the response.
If you want to have a look at our documentation for the Backlinks History endpoint, follow this link. To see more features that can be implemented on top of this endpoint, please refer to our illustrated guide.
3. Referring TLDs distribution
Looking for spam signals in a domain’s backlink profile is an essential point on any backlink audit list. While there are many things that can hint at spam in a site’s backlinks, we’ve picked the most commonly used indicator – distribution of top-level domains (TLDs). It’s usually shown as a table alongside a map view, making it easy to compare the backlink volume from high-quality ccTLDs and from domains of low relevance. In this way, users can swiftly locate anomalies. At the same time, the table will highlight if a target is acquiring reputation through trusted .gov or .edu domains.
As for the data to build this feature upon, you’ll need to request the Backlinks Summary endpoint and use the “referring_links_tld” object from the response. It will contain domain extensions and backlink count per each.
If you make use of both the profile overview we discussed first and the distribution of TLDs, you can apply data from the initial response for the target domain here. In this way, you won’t even need a separate API call to implement this feature.
In case you want to have it separately, we’ll show you an example request below.
[
{
"target": "explodingtopics.com",
"internal_list_limit": 10,
"include_subdomains": true
}
]
For this feature, we need only one object that’s highlighted in blue.
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0749 sec.",
"cost": 0.02003,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "10111033-1535-0265-0000-938d44fdcb4d",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.0195 sec.",
"cost": 0.02003,
"result_count": 1,
"path": [
"v3",
"backlinks",
"summary",
"live"
],
"data": {
"api": "backlinks",
"function": "summary",
"target": "explodingtopics.com",
"internal_list_limit": 10,
"include_subdomains": true
},
"result": [
{
"target": "explodingtopics.com",
"first_seen": "2019-06-25 02:04:35 +00:00",
"lost_date": null,
"rank": 264,
"backlinks": 3278,
"crawled_pages": 2427,
"info": {
"server": "cloudflare",
"cms": null,
"platform_type": [
"unknown"
],
"ip_address": "172.67.129.80",
"is_ip": false
},
"internal_links_count": 27925,
"external_links_count": 7558,
"broken_backlinks": 69,
"broken_pages": 120,
"referring_domains": 1483,
"referring_main_domains": 1428,
"referring_ips": 1364,
"referring_subnets": 1017,
"referring_pages": 2991,
"referring_links_tld": {
"com": 1887,
"co": 238,
"net": 131,
"info": 77,
"org": 60,
"it": 49,
"co.uk": 45,
"io": 38,
"pw": 33,
"ru": 31
},
"referring_links_types": {
"anchor": 2783,
"redirect": 204,
"canonical": 4
},
"referring_links_attributes": {
"noopener": 1248,
"noreferrer": 791,
"nofollow": 784,
"external": 65,
"ugc": 24,
"sponsored": 4,
"bookmark": 1
},
"referring_links_platform_types": {
"unknown": 1563,
"cms": 1187,
"blogs": 1185,
"ecommerce": 109,
"message-boards": 3
},
"referring_links_semantic_locations": {
"article": 1251,
"": 938,
"section": 627,
"main": 119,
"figcaption": 26,
"header": 15,
"figure": 12,
"aside": 2,
"nav": 1
}
}
]
}
]
}
Still and all, the response from the Backlinks Summary endpoint contains a lot of useful information, and you can use it to give users more insights. For example, you can incorporate the following features to help users further evaluate the quality of a target’s backlink profile.
Check out our guide showcasing more functionality examples and actionable instructions for their implementation.
4. Top backlink anchors
When it comes to backlink analysis, many things require context to make the right judgment and take the right action. The context in which a backlink appears surely stands in good stead here.
Relevant anchor text of the target’s backlinks sends the right signals to the search engines about the page content.
On top of that, a proper anchor increases a backlink’s ability to generate referral traffic for the target site.
In contrast, if a target’s backlink anchors include unsuitable or meaningless references or keyword-rich anchor text, the website’s reputation may be harmed and its ranking positions devalued. In this case, the backlinks with such anchors should be analyzed further and disavowed.
All in all, Top backlink anchors is a fairly simple feature, but its value cannot be underestimated. The process of getting data on a target’s top backlink anchors is also pretty straightforward. DataForSEO Backlinks API has a specific separate endpoint called Backlinks Anchors. To extract the anchor text and link count per each anchor, we’ll need to make a request indicating the necessary target (domain, subdomain, or webpage). If you’d like to get data for a specific prefix, you should specify the path in the filters array. Learn more here.
We’ll request anchors for the explodingtopics.com domain, and sort the dataset by the number of backlinks per anchor in descending order. We’ll also set a limit of 10 to get only the top 10 anchors.
POST: https://api.dataforseo.com/v3/backlinks/anchors/live
[
{
"target": "explodingtopics.com",
"limit": 10,
"order_by": [
"backlinks,desc"
]
}
]
You can review the received dataset below. The parameters required for this feature are highlighted in blue.
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.4892 sec.",
"cost": 0.0203,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "10111105-1535-0272-0000-cfa676701a81",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.4366 sec.",
"cost": 0.0203,
"result_count": 1,
"path": [
"v3",
"backlinks",
"anchors",
"live"
],
"data": {
"api": "backlinks",
"function": "anchors",
"target": "explodingtopics.com",
"limit": 10,
"order_by": [
"backlinks,desc"
]
},
"result": [
{
"target": "explodingtopics.com",
"total_count": 606,
"items_count": 10,
"items": [
{
"type": "backlinks_anchor",
"anchor": "Exploding Topics",
"rank": 230,
"backlinks": 1355,
"first_seen": "2019-12-11 03:41:44 +00:00",
"lost_date": null,
"broken_backlinks": 1,
"broken_pages": 1,
"referring_domains": 718,
"referring_main_domains": 691,
"referring_ips": 694,
"referring_subnets": 577,
"referring_pages": 1211,
"referring_links_tld": {
"com": 893,
"net": 32,
"co": 24,
"io": 21,
"org": 18,
"it": 16,
"ro": 16,
"co.uk": 14,
"com.br": 13,
"com.au": 12
},
"referring_links_types": {
"anchor": 1211
},
"referring_links_attributes": {
"noopener": 584,
"noreferrer": 378,
"nofollow": 335,
"external": 31,
"ugc": 9,
"sponsored": 4
},
"referring_links_platform_types": {
"unknown": 702,
"cms": 495,
"blogs": 492,
"ecommerce": 42,
"message-boards": 2
},
"referring_links_semantic_locations": {
"article": 546,
"section": 413,
"": 203,
"main": 30,
"figcaption": 13,
"header": 6
}
},
{
"type": "backlinks_anchor",
"anchor": "these exploding topics",
"rank": 155,
"backlinks": 369,
"first_seen": "2019-06-25 02:04:35 +00:00",
"lost_date": null,
"broken_backlinks": 65,
"broken_pages": 65,
"referring_domains": 55,
"referring_main_domains": 54,
"referring_ips": 61,
"referring_subnets": 59,
"referring_pages": 322,
"referring_links_tld": {
"co": 187,
"com": 82,
"net": 19,
"org": 11,
"info": 5,
"site": 4,
"com.br": 2,
"digital": 2,
"io": 2,
"link": 2
},
"referring_links_types": {
"redirect": 204,
"anchor": 114,
"canonical": 4
},
"referring_links_attributes": {
"nofollow": 56,
"noopener": 17,
"external": 11,
"noreferrer": 9,
"ugc": 1
},
"referring_links_platform_types": {
"unknown": 94,
"blogs": 20,
"cms": 20,
"ecommerce": 3
},
"referring_links_semantic_locations": {
"": 253,
"main": 35,
"article": 18,
"section": 10,
"figure": 6
}
},
{
"type": "backlinks_anchor",
"anchor": "explodingtopics.com",
"rank": 115,
"backlinks": 111,
"first_seen": "2020-01-25 15:34:36 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 89,
"referring_main_domains": 89,
"referring_ips": 54,
"referring_subnets": 53,
"referring_pages": 110,
"referring_links_tld": {
"pw": 33,
"com": 29,
"hu": 6,
"it": 6,
"in": 5,
"ru": 5,
"life": 4,
"co.in": 3,
"net.in": 3,
"co.uk": 2
},
"referring_links_types": {
"anchor": 110
},
"referring_links_attributes": {
"nofollow": 65,
"noopener": 22,
"noreferrer": 11,
"external": 3
},
"referring_links_platform_types": {
"unknown": 79,
"blogs": 30,
"cms": 30,
"ecommerce": 6
},
"referring_links_semantic_locations": {
"": 61,
"article": 26,
"section": 17,
"main": 3,
"figcaption": 2,
"figure": 1
}
},
{
"type": "backlinks_anchor",
"anchor": "https://explodingtopics.com/",
"rank": 133,
"backlinks": 89,
"first_seen": "2020-01-18 11:50:58 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 55,
"referring_main_domains": 53,
"referring_ips": 53,
"referring_subnets": 51,
"referring_pages": 73,
"referring_links_tld": {
"com": 46,
"it": 6,
"co.uk": 4,
"com.au": 3,
"org": 2,
"agency": 1,
"at": 1,
"blogspot.com": 1,
"co.nz": 1,
"dev": 1
},
"referring_links_types": {
"anchor": 73
},
"referring_links_attributes": {
"noopener": 26,
"noreferrer": 19,
"nofollow": 14,
"external": 1,
"ugc": 1
},
"referring_links_platform_types": {
"blogs": 39,
"cms": 37,
"unknown": 34,
"ecommerce": 8
},
"referring_links_semantic_locations": {
"article": 39,
"": 19,
"section": 13,
"main": 2
}
},
{
"type": "backlinks_anchor",
"anchor": "ExplodingTopics.com",
"rank": 121,
"backlinks": 78,
"first_seen": "2020-02-18 01:07:01 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 50,
"referring_main_domains": 47,
"referring_ips": 51,
"referring_subnets": 49,
"referring_pages": 75,
"referring_links_tld": {
"com": 50,
"it": 5,
"ca": 4,
"fr": 3,
"biz": 2,
"net": 2,
"ru": 2,
"technology": 2,
"com.br": 1,
"design": 1
},
"referring_links_types": {
"anchor": 75
},
"referring_links_attributes": {
"noopener": 46,
"noreferrer": 39,
"nofollow": 11,
"external": 1
},
"referring_links_platform_types": {
"unknown": 43,
"blogs": 32,
"cms": 32,
"ecommerce": 8
},
"referring_links_semantic_locations": {
"article": 36,
"": 27,
"section": 10,
"main": 2
}
},
{
"type": "backlinks_anchor",
"anchor": "Go Now",
"rank": 49,
"backlinks": 50,
"first_seen": "2021-08-04 00:52:26 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 5,
"referring_main_domains": 5,
"referring_ips": 7,
"referring_subnets": 7,
"referring_pages": 50,
"referring_links_tld": {
"info": 39,
"org": 9,
"com": 2
},
"referring_links_types": {
"anchor": 50
},
"referring_links_attributes": {
"nofollow": 14
},
"referring_links_platform_types": {
"unknown": 50
},
"referring_links_semantic_locations": {
"": 50
}
},
{
"type": "backlinks_anchor",
"anchor": "Exploding topics",
"rank": 92,
"backlinks": 42,
"first_seen": "2020-01-24 22:40:31 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 32,
"referring_main_domains": 31,
"referring_ips": 33,
"referring_subnets": 32,
"referring_pages": 40,
"referring_links_tld": {
"com": 25,
"me": 5,
"vn": 3,
"fr": 2,
"co.uk": 1,
"mx": 1,
"org": 1,
"pk": 1,
"ru": 1
},
"referring_links_types": {
"anchor": 40
},
"referring_links_attributes": {
"noopener": 23,
"noreferrer": 14,
"nofollow": 4,
"external": 1
},
"referring_links_platform_types": {
"blogs": 26,
"cms": 26,
"unknown": 14,
"ecommerce": 5
},
"referring_links_semantic_locations": {
"article": 22,
"section": 10,
"": 6,
"figcaption": 1,
"main": 1
}
},
{
"type": "backlinks_anchor",
"anchor": "ExplodingTopics",
"rank": 86,
"backlinks": 41,
"first_seen": "2020-02-28 11:45:05 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 28,
"referring_main_domains": 27,
"referring_ips": 27,
"referring_subnets": 26,
"referring_pages": 32,
"referring_links_tld": {
"com": 17,
"net": 5,
"com.br": 3,
"co": 2,
"be": 1,
"in": 1,
"ru": 1,
"se": 1,
"xyz": 1
},
"referring_links_types": {
"anchor": 32
},
"referring_links_attributes": {
"noopener": 14,
"nofollow": 6,
"noreferrer": 6,
"external": 1,
"ugc": 1
},
"referring_links_platform_types": {
"unknown": 17,
"blogs": 15,
"cms": 15
},
"referring_links_semantic_locations": {
"article": 16,
"": 8,
"section": 7,
"figcaption": 1
}
},
{
"type": "backlinks_anchor",
"anchor": "https://explodingtopics.com/blog/healthcare-trends",
"rank": 0,
"backlinks": 37,
"first_seen": "2021-09-12 05:27:52 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 5,
"referring_main_domains": 5,
"referring_ips": 10,
"referring_subnets": 10,
"referring_pages": 37,
"referring_links_tld": {
"info": 19,
"net": 18
},
"referring_links_types": {
"anchor": 37
},
"referring_links_attributes": {
"nofollow": 37,
"noopener": 18,
"noreferrer": 18
},
"referring_links_platform_types": {
"unknown": 37
},
"referring_links_semantic_locations": {
"": 19,
"section": 18
}
},
{
"type": "backlinks_anchor",
"anchor": "explodingtopics",
"rank": 49,
"backlinks": 28,
"first_seen": "2020-07-10 00:48:36 +00:00",
"lost_date": null,
"broken_backlinks": 0,
"broken_pages": 0,
"referring_domains": 22,
"referring_main_domains": 22,
"referring_ips": 22,
"referring_subnets": 20,
"referring_pages": 26,
"referring_links_tld": {
"com": 19,
"co.uk": 3,
"hu": 2,
"org": 1,
"web.id": 1
},
"referring_links_types": {
"anchor": 26
},
"referring_links_attributes": {
"noopener": 19,
"noreferrer": 2
},
"referring_links_platform_types": {
"blogs": 25,
"cms": 22,
"ecommerce": 1,
"unknown": 1
},
"referring_links_semantic_locations": {
"": 15,
"article": 10,
"section": 1
}
}
]
}
]
}
]
}
By using the full dataset, you can create a comprehensive report on the target’s anchors later on. Right now you can register to access our API Explorer and start testing the Backlink Anchors endpoint.
5. Broken backlinks table
The table of Broken backlinks is a major source of insights. It can help users reclaim the link equity that’s going to waste as well as build a prioritized broken link-building strategy.
The table data includes the rank of the referring page and domain, backlink rank, surrounding text and anchors, dates when the backlink was discovered and last visited, and organic traffic of the referring page. It also highlights the reasons why each backlink became broken through the status codes of the target URLs.
From the development perspective, the main beauty of this table-view feature is in its adaptability to a number of use cases. In particular, you can easily pivot it to deliver the full backlinks report, an in-depth view of new backlinks as well as a detailed rundown of the lost links. All it takes is changing a few parameters in your API requests (and a few UI adjustments). You can learn more about the necessary changes from our illustrated guide to developing a backlink checker.
To produce the Broken backlinks table, you’ll need to call the Backlinks and the Ranked Keywords endpoints.
First, we’ll make a request to the Backlinks endpoint. Given that we need to obtain data on broken backlinks, we should set an appropriate filter: ["is_broken", "=", true]
.
POST: https://api.dataforseo.com/v3/backlinks/backlinks/live
[
{
"target": "explodingtopics.com",
"mode": "as_is",
"filters": [
"is_broken",
"=",
true
],
"limit": 3
}
]
The API response will contain data for all columns displayed in the table except for Organic Traffic.
{
"version": "0.1.20210917",
"status_code": 20000,
"status_message": "Ok.",
"time": "7.5997 sec.",
"cost": 0.02009,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "10111114-1535-0269-0000-544fd048f01b",
"status_code": 20000,
"status_message": "Ok.",
"time": "7.5339 sec.",
"cost": 0.02009,
"result_count": 1,
"path": [
"v3",
"backlinks",
"backlinks",
"live"
],
"data": {
"api": "backlinks",
"function": "backlinks",
"target": "explodingtopics.com",
"mode": "as_is",
"filters": [
"is_broken",
"=",
true
],
"limit": 3
},
"result": [
{
"target": "explodingtopics.com",
"mode": "as_is",
"total_count": 69,
"items_count": 3,
"items": [
{
"type": "backlink",
"domain_from": "www.subtothis.com",
"url_from": "https://www.subtothis.com/exploding-topics/",
"url_from_https": true,
"domain_to": "explodingtopics.com",
"url_to": "https://explodingtopics.com/newsletter2",
"url_to_https": true,
"tld_from": "com",
"is_new": false,
"is_lost": false,
"rank": 58,
"page_from_rank": 0,
"domain_from_rank": 0,
"domain_from_platform_type": [
"cms",
"blogs"
],
"domain_from_is_ip": false,
"domain_from_ip": "52.18.136.112",
"page_from_external_links": 3,
"page_from_internal_links": 18,
"page_from_size": 25974,
"page_from_encoding": "utf-8",
"page_from_language": "en",
"page_from_title": "Exploding Topics – SUB TO THIS",
"page_from_status_code": 200,
"first_seen": "2020-10-21 11:01:19 +00:00",
"prev_seen": "2021-01-26 19:19:04 +00:00",
"last_seen": "2021-04-10 15:18:33 +00:00",
"item_type": "anchor",
"attributes": null,
"dofollow": true,
"original": false,
"alt": null,
"anchor": "Sub to this",
"text_pre": null,
"text_post": null,
"semantic_location": "article",
"links_count": 1,
"group_count": 0,
"is_broken": true,
"url_to_status_code": 404
},
{
"type": "backlink",
"domain_from": "hypedhaka.com",
"url_from": "https://hypedhaka.com/keyword-research-for-seo-how-to-do-it/",
"url_from_https": true,
"domain_to": "explodingtopics.com",
"url_to": "https://explodingtopics.com/brand-business-marketing-topics-right-now",
"url_to_https": true,
"tld_from": "com",
"is_new": false,
"is_lost": false,
"rank": 0,
"page_from_rank": 0,
"domain_from_rank": 227,
"domain_from_platform_type": [
"cms",
"blogs"
],
"domain_from_is_ip": false,
"domain_from_ip": "35.213.183.44",
"page_from_external_links": 12,
"page_from_internal_links": 38,
"page_from_size": 102423,
"page_from_encoding": "utf-8",
"page_from_language": "en",
"page_from_title": "Keyword Research for SEO: How to do it - HYPE Dhaka",
"page_from_status_code": 200,
"first_seen": "2020-05-25 19:55:38 +00:00",
"prev_seen": "2020-08-04 02:00:51 +00:00",
"last_seen": "2021-09-26 22:27:06 +00:00",
"item_type": "anchor",
"attributes": null,
"dofollow": true,
"original": false,
"alt": null,
"anchor": "2. ExplodingTopics.com",
"text_pre": null,
"text_post": null,
"semantic_location": "section",
"links_count": 1,
"group_count": 0,
"is_broken": true,
"url_to_status_code": 404
},
{
"type": "backlink",
"domain_from": "nomadicsoftware.com",
"url_from": "https://nomadicsoftware.com/blog/how-to-work-from-home/",
"url_from_https": true,
"domain_to": "explodingtopics.com",
"url_to": "https://explodingtopics.com/topic/working-remotely?period=3",
"url_to_https": true,
"tld_from": "com",
"is_new": false,
"is_lost": false,
"rank": 0,
"page_from_rank": 78,
"domain_from_rank": 312,
"domain_from_platform_type": [
"unknown"
],
"domain_from_is_ip": false,
"domain_from_ip": "172.67.159.136",
"page_from_external_links": 55,
"page_from_internal_links": 51,
"page_from_size": 101276,
"page_from_encoding": "utf-8",
"page_from_language": "en",
"page_from_title": "How to Work from Home: Top Tips & Resources [Full Guide]",
"page_from_status_code": 200,
"first_seen": "2020-06-05 08:37:56 +00:00",
"prev_seen": "2021-09-07 15:57:27 +00:00",
"last_seen": "2021-09-26 11:11:07 +00:00",
"item_type": "anchor",
"attributes": null,
"dofollow": true,
"original": false,
"alt": "working remotely trend graph",
"anchor": null,
"text_pre": null,
"text_post": null,
"semantic_location": "figure",
"links_count": 1,
"group_count": 0,
"is_broken": true,
"url_to_status_code": 404
}
]
}
]
}
]
}
To obtain values for the Organic Traffic column, we should make a number of requests to the Ranked Keywords endpoint corresponding to the number of referring pages. Note that with each API call, we’ll need to specify the necessary relative URL and filter out only organic traffic.
[
{
"target": "explodingtopics.com",
"filters": [
["ranked_serp_element.serp_item.relative_url","=","/blog/cultural-trends"],
"and",
[
"keyword_data.keyword_info.search_volume",
"<>",
0
],
"and",
[
[
"ranked_serp_element.serp_item.type",
"<>",
"paid"
],
"or",
[
"ranked_serp_element.serp_item.is_paid",
"=",
false
]
]
],
"limit": 1
}
]
The value we need from the response will be provided in etv from the result.metrics.organic.
{
"version": "0.1.20220216",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3817 sec.",
"cost": 0.0101,
"tasks_count": 1,
"tasks_error": 0,
"tasks": [
{
"id": "03211851-2806-0381-0000-6e1fcf14f9b3",
"status_code": 20000,
"status_message": "Ok.",
"time": "0.3377 sec.",
"cost": 0.0101,
"result_count": 1,
"path": [
"v3",
"dataforseo_labs",
"google",
"ranked_keywords",
"live"
],
"data": {
"api": "dataforseo_labs",
"function": "ranked_keywords",
"se_type": "google",
"target": "explodingtopics.com",
"filters": [
[
"ranked_serp_element.serp_item.relative_url",
"=",
"/blog/cultural-trends"
],
"and",
[
"keyword_data.keyword_info.search_volume",
"<>",
0
],
"and",
[
[
"ranked_serp_element.serp_item.type",
"<>",
"paid"
],
"or",
[
"ranked_serp_element.serp_item.is_paid",
"=",
false
]
]
],
"limit": 1
},
"result": [
{
"se_type": "google",
"target": "explodingtopics.com",
"location_code": null,
"language_code": null,
"total_count": 248,
"items_count": 1,
"metrics": {
"organic": {
"pos_1": 13,
"pos_2_3": 28,
"pos_4_10": 37,
"pos_11_20": 56,
"pos_21_30": 23,
"pos_31_40": 18,
"pos_41_50": 12,
"pos_51_60": 21,
"pos_61_70": 9,
"pos_71_80": 14,
"pos_81_90": 8,
"pos_91_100": 8,
"etv": 1025.334376661107,
"impressions_etv": 12.997770441696048,
"count": 247,
"estimated_paid_traffic_cost": 241.34610139252618,
"is_new": 124,
"is_up": 63,
"is_down": 53,
"is_lost": 0
},
"paid": {
"pos_1": 0,
"pos_2_3": 0,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 0,
"impressions_etv": 0,
"count": 0,
"estimated_paid_traffic_cost": 0,
"is_new": 0,
"is_up": 0,
"is_down": 0,
"is_lost": 0
},
"featured_snippet": {
"pos_1": 0,
"pos_2_3": 1,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 3.240000009536743,
"impressions_etv": 0.8748000264167786,
"count": 1,
"estimated_paid_traffic_cost": 0,
"is_new": 0,
"is_up": 0,
"is_down": 1,
"is_lost": 0
},
"local_pack": {
"pos_1": 0,
"pos_2_3": 0,
"pos_4_10": 0,
"pos_11_20": 0,
"pos_21_30": 0,
"pos_31_40": 0,
"pos_41_50": 0,
"pos_51_60": 0,
"pos_61_70": 0,
"pos_71_80": 0,
"pos_81_90": 0,
"pos_91_100": 0,
"etv": 0,
"impressions_etv": 0,
"count": 0,
"estimated_paid_traffic_cost": 0,
"is_new": 0,
"is_up": 0,
"is_down": 0,
"is_lost": 0
}
},
"metrics_absolute": null,
"items": [
{
"se_type": "google",
"keyword_data": {
"se_type": "google",
"keyword": "2021 culture trends",
"location_code": 2840,
"language_code": "en",
"keyword_info": {
"se_type": "google",
"last_updated_time": "2022-02-28 09:56:08 +00:00",
"competition": 0.024725275114178658,
"cpc": null,
"search_volume": 110,
"categories": null,
"monthly_searches": [
{
"year": 2022,
"month": 1,
"search_volume": 50
},
{
"year": 2021,
"month": 12,
"search_volume": 70
},
{
"year": 2021,
"month": 11,
"search_volume": 110
},
{
"year": 2021,
"month": 10,
"search_volume": 320
},
{
"year": 2021,
"month": 9,
"search_volume": 170
},
{
"year": 2021,
"month": 8,
"search_volume": 110
},
{
"year": 2021,
"month": 7,
"search_volume": 70
},
{
"year": 2021,
"month": 6,
"search_volume": 70
},
{
"year": 2021,
"month": 5,
"search_volume": 70
},
{
"year": 2021,
"month": 4,
"search_volume": 70
},
{
"year": 2021,
"month": 3,
"search_volume": 110
},
{
"year": 2021,
"month": 2,
"search_volume": 110
}
]
},
"impressions_info": {
"se_type": "google",
"last_updated_time": "2022-03-09 14:57:14 +00:00",
"bid": 999,
"match_type": "exact",
"ad_position_min": null,
"ad_position_max": null,
"ad_position_average": null,
"cpc_min": null,
"cpc_max": null,
"cpc_average": null,
"daily_impressions_min": null,
"daily_impressions_max": null,
"daily_impressions_average": null,
"daily_clicks_min": null,
"daily_clicks_max": null,
"daily_clicks_average": null,
"daily_cost_min": null,
"daily_cost_max": null,
"daily_cost_average": null
},
"serp_info": {
"se_type": "google",
"check_url": "https://www.google.com/search?q=2021%20culture%20trends&num=100&hl=en&gl=US&gws_rd=cr&ie=UTF-8&oe=UTF-8&uule=w+CAIQIFISCQs2MuSEtepUEUK33kOSuTsc",
"serp_item_types": [
"organic",
"people_also_ask",
"video",
"images",
"related_searches"
],
"se_results_count": 1020000000,
"last_updated_time": "2022-03-06 15:41:24 +00:00",
"previous_updated_time": "2022-02-04 15:41:24 +00:00"
}
},
"ranked_serp_element": {
"se_type": "google",
"serp_item": {
"se_type": "google",
"type": "organic",
"rank_group": 1,
"rank_absolute": 1,
"position": "left",
"xpath": "/html[1]/body[1]/div[7]/div[1]/div[10]/div[1]/div[2]/div[2]/div[1]/div[1]/div[1]/div[1]",
"domain": "explodingtopics.com",
"title": "7 Cultural Trends For 2022-2025 - Exploding Topics",
"url": "https://explodingtopics.com/blog/cultural-trends",
"breadcrumb": "https://explodingtopics.com › blog › cultural-trends",
"is_image": false,
"is_video": false,
"is_featured_snippet": false,
"is_malicious": false,
"description": "7 Cultural Trends For 2022-2025 · 1. The Creator Economy Keeps Growing · 2. Brand Purpose and Activism Gain Importance · 3. Nostalgia Drives ...",
"pre_snippet": "01/13/2022 00:00:00",
"extended_snippet": null,
"amp_version": false,
"rating": null,
"highlighted": [
"Cultural Trends"
],
"links": null,
"about_this_result": {
"type": "about_this_result_element",
"url": "https://explodingtopics.com/blog/cultural-trends",
"source": null,
"source_info": null,
"source_url": null,
"language": "English",
"location": "the United States",
"search_terms": [
"2021",
"culture",
"trends"
],
"related_terms": null
},
"main_domain": "explodingtopics.com",
"relative_url": "/blog/cultural-trends",
"etv": 33.439998626708984,
"impressions_etv": null,
"estimated_paid_traffic_cost": null,
"rank_changes": {
"previous_rank_absolute": null,
"is_new": true,
"is_up": false,
"is_down": false
}
},
"check_url": "https://www.google.com/search?q=2021%20culture%20trends&num=100&hl=en&gl=US&gws_rd=cr&ie=UTF-8&oe=UTF-8&uule=w+CAIQIFISCQs2MuSEtepUEUK33kOSuTsc",
"serp_item_types": [
"organic",
"people_also_ask",
"video",
"images",
"related_searches"
],
"se_results_count": 1020000000,
"keyword_difficulty": 53,
"last_updated_time": "2022-03-06 15:41:24 +00:00",
"previous_updated_time": "2022-02-04 15:41:24 +00:00"
}
}
]
}
]
}
]
}
Besides the columns illustrated on the screenshot above, you can give users an opportunity to enable and disable specific columns that will be shown in the table.
For example, additional columns can include:
- Link type
- Attribute
- Alt text
- Semantic location
- External links count
- Internal links count
- Status code of the referenced page
- Identical backlinks count
- IP address of a referring domain
- Total number of backlinks from a domain
All of this data is supplied in the initial response of the Backlinks endpoint. You can learn more about the parameters necessary for each additional column from this part of our guide.
On top of selectable metrics, you can also enrich the Broken backlinks table with filtering options. For instance, you can place these drop-down lists and a counter of filtered backlinks above the table.
With the help of this feature, users will be able to choose the scope of data to review (one backlink per domain/per anchor/all), pick TLDs sending the links, semantic location (e.g., article, header), and type (e.g., anchor, image) of the broken backlinks. The counter below the drop-down lists will show the number of backlinks that match user-defined criteria. If you’d like to review more details on this feature, please check our guide to building a backlink audit tool.
Conclusion
Dealing with backlink data can be complex, especially when you need to shape this data into meaningful dashboards and produce a practical backlink audit tool within a pressing time limit.
Hopefully, this article has helped you to see how with just 5 features and API you can accelerate the development of your software’s beta version, and minimize the time-to-market of your project.
With DataForSEO Backlinks API, you can easily access, test, and integrate fresh backlink data in an easy-to-read structured format. What’s more, you’ll get integration assistance and 24/7 customer support at no cost because we care about the projects putting our data to use. Importantly, our real-time Backlinks API is offered at an affordable price.
Compare Value for Money of Backlink APIs [DataForSEO vs Competitors]
Learn more about Backlinks API in DataForSEO