{"id":16962,"date":"2017-09-07T01:56:01","date_gmt":"2017-09-07T09:56:01","guid":{"rendered":"https:\/\/ahrefs.com\/blog\/?p=16962"},"modified":"2022-11-17T06:49:48","modified_gmt":"2022-11-17T11:49:48","slug":"crawling-javascript","status":"publish","type":"post","link":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/","title":{"rendered":"Ahrefs crawlers are now rendering web pages and executing JavaScript"},"content":{"rendered":"<div class=\"intro-txt\"> Nearly three years ago <a href=\"https:\/\/webmasters.googleblog.com\/2014\/05\/understanding-web-pages-better.html\" target=\"_blank\" rel=\"noopener\">Google officially announced<\/a> that they were \u201crendering a substantial number of web pages\u201d with JavaScript in order to \u201cinterpret what a typical browser running JavaScript would&nbsp;see.\u201d&nbsp;<\/div>\n<p>Well, unfortunately, Ahrefs was only crawling backlinks found in HTML up until&nbsp;2017.&nbsp;<\/p>\n<p>Which bothered us quite a lot, especially since the SEO community was putting a lot of faith in our backlink data, even calling us \u201cthe gold standard\u201d:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-ahrefs-the-gold-standard.jpg\" alt width=\"900\" height=\"500\" class=\"alignnone size-full wp-image-16978\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-ahrefs-the-gold-standard.jpg 900w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-ahrefs-the-gold-standard-768x427.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-ahrefs-the-gold-standard-680x378.jpg 680w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><\/p>\n<p>So earlier this year <a href=\"https:\/\/twitter.com\/botsbreeder\" target=\"_blank\" rel=\"noopener\">Dmitry<\/a> (our Founder &amp; CEO) decided that Ahrefs has to be the first among its rivals to crawl JavaScript links.<\/p>\n<p>Which we achieved with ease last&nbsp;month.<\/p>\n<div id=\"attachment_16966\" style=\"width: 910px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-16966\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-tag.jpg\" alt width=\"900\" height=\"253\" class=\"size-full wp-image-16966\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-tag.jpg 900w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-tag-768x216.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-tag-680x191.jpg 680w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><p id=\"caption-attachment-16966\" class=\"wp-caption-text\">\u201cJS\u201d tag means that the link was found while executing JavaScript on a target page<\/p><\/div>\n<h2>In case you\u2019re new to JavaScript<\/h2>\n<p>In simple terms, JavaScript is the code that is being executed by your browser when you load a webpage, which will often modify its looks and content (that is, if the page has any JavaScript in its source code in the first&nbsp;place).<\/p>\n<p>This \u201cbrowser rendering\u201d imposed a certain challenge for Google crawlers back in the days, because they didn\u2019t use browsers and didn\u2019t look at the web pages the way humans do. So if some backlink was hidden in the part of the page, that was generated by JS, they could not see&nbsp;it.<\/p>\n<p>But that is no longer the case for quite a few years&nbsp;now.<\/p>\n<h2>Does Google \u201ccount\u201d links in&nbsp;JS?<\/h2>\n<p><a href=\"http:\/\/searchengineland.com\/39-questions-with-google-at-smx-west-272054\" target=\"_blank\" rel=\"noopener\">According to Mariya Moeva<\/a> (a Search Quality Team member at Google) links found in JS are treated by Google the same way as links in plain&nbsp;HTML.<\/p>\n<p>And, as we all know, link profile is <a href=\"http:\/\/searchengineland.com\/now-know-googles-top-three-search-ranking-factors-245882\" target=\"_blank\" rel=\"noopener\">one of the three major Google ranking factors<\/a>.<\/p>\n<h2>Does Ahrefs render JS the same way as Google?<\/h2>\n<p>Unfortunately, Google is not giving us a lot of information about the way they handle JavaScript.&nbsp;<\/p>\n<p>But the <a href=\"https:\/\/www.onely.com\/blog\/javascript-seo-experiment\/\" target=\"_blank\" rel=\"noopener\">guys from Onely have recently performed a great experiment<\/a> to study how Google (<a href=\"https:\/\/moz.com\/blog\/search-engines-ready-for-javascript-crawling\">and some other search engines<\/a>) handled different JS frameworks.<\/p>\n<p>They created a simple website - <a href=\"http:\/\/jsseo.expert\" target=\"_blank\" rel=\"noopener\">http:\/\/jsseo.expert<\/a> - where each page was built with a different JS framework, and let different search engines crawl&nbsp;it.&nbsp;<\/p>\n<p>Google and Ask were the only search engines that were able to execute JS from most of these frameworks:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/crawling-JS-table.jpg\" alt width=\"900\" height=\"559\" class=\"alignnone size-full wp-image-16967\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/crawling-JS-table.jpg 900w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/crawling-JS-table-768x477.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/crawling-JS-table-680x422.jpg 680w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><\/p>\n<p>We accepted the challenge and crawled this same website with our JS crawler, which rendered all of the pages that were there (as you can see in the image&nbsp;above).<\/p>\n<p>So, I guess, it would be safe to say that Ahrefs crawls JS in the same way that Google does.<\/p>\n<p>But it doesn\u2019t only come down to different JS frameworks, right? There are quite a few more things to consider when rendering web pages. Like the ones, <a href=\"https:\/\/moz.com\/blog\/evidence-of-the-surprising-state-of-javascript-indexing\">outlined by Will Critchlow in his recent article at Moz<\/a>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-questions.jpg\" alt width=\"900\" height=\"745\" class=\"alignnone size-full wp-image-16968\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-questions.jpg 900w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-questions-768x636.jpg 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/js-questions-513x425.jpg 513w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><\/p>\n<p>The answers to these questions for Ahrefs JS crawler are pretty much identical.<\/p>\n<h2>Does Ahrefs execute JS on all web&nbsp;pages?<\/h2>\n<p>As of today, we will only execute JavaScript if a page has more than 15 referring domains pointing at it. And we have ~400 servers dedicated to doing just&nbsp;that.<\/p>\n<p>Like <a href=\"https:\/\/twitter.com\/botsbreeder\" target=\"_blank\" rel=\"noopener\">Dmitry<\/a> said earlier, when <a href=\"http:\/\/searchengineland.com\/know-google-sees-javascript-links-dont-277057\" target=\"_blank\" rel=\"noopener\">interviewed for SEL<\/a>:<\/p>\n<blockquote class=\"big\"><div class=\"quote-content\"> \u201cTo execute JS for every page at our scale [would] require 10,000-15,000 servers, and we believe our customers are not ready to pay for that&nbsp;yet.\u201d&nbsp;<\/div><\/blockquote>\n<p>And even with that restriction, today we crawl about <strong>6 Billion pages per day<\/strong> and execute JS on about 30 Million of&nbsp;them.<\/p>\n<p>As a result, we find about 250 Million \u201cJS\u201d links per day (these are the links that were discovered only after executing JS, they weren\u2019t in the raw HTML of a&nbsp;page).<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-Ahrefs-JS-infogr.png\" alt width=\"900\" height=\"601\" class=\"alignnone size-full wp-image-16986\" srcset=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-Ahrefs-JS-infogr.png 900w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-Ahrefs-JS-infogr-768x513.png 768w, https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-Ahrefs-JS-infogr-636x425.png 636w\" sizes=\"auto, (max-width: 900px) 100vw, 900px\"><\/p>\n<h2>Closing thoughts<\/h2>\n<p>One of our core values at Ahrefs has always been providing <a href=\"https:\/\/ahrefs.com\/big-data\" target=\"_blank\" rel=\"noopener\">the best and the most accurate data for digital marketing professionals<\/a>. <\/p>\n<p>We know that our customers heavily rely on Ahrefs data for making all sorts of business and marketing decisions. So we\u2019re going to continue improving the integrity and scale of our data in every way possible.<\/p>\n<p>And, as always, if you have any feedback about this update, please let us know about it in the comments section.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Well, unfortunately, Ahrefs was only crawling backlinks found in HTML up until&nbsp;2017.&nbsp; Which bothered us quite a lot, especially since the SEO community was putting a lot of faith in our backlink data, even calling us \u201cthe gold standard\u201d: So<span class=\"ellipsis\">\u2026<\/span><\/p>\n<div class=\"read-more\">Read more \u203a<\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":81,"featured_media":16988,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"wp_typography_post_enhancements_disabled":false,"footnotes":""},"categories":[333],"tags":[],"coauthors":[338],"class_list":["post-16962","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-product-blog","odd"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.2 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Ahrefs crawlers are now rendering web pages and executing JavaScript<\/title>\n<meta name=\"description\" content=\"Ahrefs crawler (aka AhrefsBot) is now able to render web pages and execute JavaScript. This means even more links found and reported to you!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ahrefs crawlers are now rendering web pages and executing JavaScript\" \/>\n<meta property=\"og:description\" content=\"Ahrefs crawler (aka AhrefsBot) is now able to render web pages and execute JavaScript. This means even more links found and reported to you!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\" \/>\n<meta property=\"og:site_name\" content=\"SEO Blog by Ahrefs\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Ahrefs\/\" \/>\n<meta property=\"article:author\" content=\"timsoulo\" \/>\n<meta property=\"article:published_time\" content=\"2017-09-07T09:56:01+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-17T11:49:48+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png\" \/>\n\t<meta property=\"og:image:width\" content=\"951\" \/>\n\t<meta property=\"og:image:height\" content=\"495\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Tim Soulo\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@timsoulo\" \/>\n<meta name=\"twitter:site\" content=\"@ahrefs\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\"},\"author\":{\"name\":\"Tim Soulo\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/c0bf22f67b0ff8f8221976119abac64e\"},\"headline\":\"Ahrefs crawlers are now rendering web pages and executing JavaScript\",\"datePublished\":\"2017-09-07T09:56:01+00:00\",\"dateModified\":\"2022-11-17T11:49:48+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\"},\"wordCount\":715,\"commentCount\":18,\"publisher\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png\",\"articleSection\":[\"Product Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\",\"url\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\",\"name\":\"Ahrefs crawlers are now rendering web pages and executing JavaScript\",\"isPartOf\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png\",\"datePublished\":\"2017-09-07T09:56:01+00:00\",\"dateModified\":\"2022-11-17T11:49:48+00:00\",\"description\":\"Ahrefs crawler (aka AhrefsBot) is now able to render web pages and execute JavaScript. This means even more links found and reported to you!\",\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png\",\"width\":951,\"height\":495},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#website\",\"url\":\"https:\/\/ahrefs.com\/blog\/\",\"name\":\"SEO Blog by Ahrefs\",\"description\":\"Link Building Strategies &amp; SEO Tips\",\"publisher\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/ahrefs.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#organization\",\"name\":\"Ahrefs\",\"url\":\"https:\/\/ahrefs.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png\",\"width\":2048,\"height\":768,\"caption\":\"Ahrefs\"},\"image\":{\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Ahrefs\/\",\"https:\/\/x.com\/ahrefs\",\"https:\/\/www.linkedin.com\/company\/ahrefs\/\",\"https:\/\/www.youtube.com\/c\/ahrefscom\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/c0bf22f67b0ff8f8221976119abac64e\",\"name\":\"Tim Soulo\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2024\/05\/Tim_profile_pic.jpg8f04cfcbb173737c084ee81a923c32ba\",\"url\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2024\/05\/Tim_profile_pic.jpg\",\"contentUrl\":\"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2024\/05\/Tim_profile_pic.jpg\",\"caption\":\"Tim Soulo\"},\"description\":\"Tim Soulo is CMO at Ahrefs. With over 15 years in the digital marketing industry, Tim is the author of many data-driven studies and actionable marketing frameworks, some of which gained industry-wide recognition. He enjoys challenging conventional marketing knowledge and optimizing for simplicity and efficiency.\",\"sameAs\":[\"https:\/\/www.timsoulo.com\/\",\"timsoulo\",\"https:\/\/x.com\/timsoulo\"],\"url\":\"https:\/\/ahrefs.com\/blog\/author\/tim-soulo\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Ahrefs crawlers are now rendering web pages and executing JavaScript","description":"Ahrefs crawler (aka AhrefsBot) is now able to render web pages and execute JavaScript. This means even more links found and reported to you!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/","og_locale":"en_US","og_type":"article","og_title":"Ahrefs crawlers are now rendering web pages and executing JavaScript","og_description":"Ahrefs crawler (aka AhrefsBot) is now able to render web pages and execute JavaScript. This means even more links found and reported to you!","og_url":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/","og_site_name":"SEO Blog by Ahrefs","article_publisher":"https:\/\/www.facebook.com\/Ahrefs\/","article_author":"timsoulo","article_published_time":"2017-09-07T09:56:01+00:00","article_modified_time":"2022-11-17T11:49:48+00:00","og_image":[{"width":951,"height":495,"url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png","type":"image\/png"}],"author":"Tim Soulo","twitter_card":"summary_large_image","twitter_creator":"@timsoulo","twitter_site":"@ahrefs","schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#article","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/"},"author":{"name":"Tim Soulo","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/c0bf22f67b0ff8f8221976119abac64e"},"headline":"Ahrefs crawlers are now rendering web pages and executing JavaScript","datePublished":"2017-09-07T09:56:01+00:00","dateModified":"2022-11-17T11:49:48+00:00","mainEntityOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/"},"wordCount":715,"commentCount":18,"publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png","articleSection":["Product Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/ahrefs.com\/blog\/crawling-javascript\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/","url":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/","name":"Ahrefs crawlers are now rendering web pages and executing JavaScript","isPartOf":{"@id":"https:\/\/ahrefs.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage"},"thumbnailUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png","datePublished":"2017-09-07T09:56:01+00:00","dateModified":"2022-11-17T11:49:48+00:00","description":"Ahrefs crawler (aka AhrefsBot) is now able to render web pages and execute JavaScript. This means even more links found and reported to you!","inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/ahrefs.com\/blog\/crawling-javascript\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/crawling-javascript\/#primaryimage","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2017\/09\/00-javascript-in-AHrefs.png","width":951,"height":495},{"@type":"WebSite","@id":"https:\/\/ahrefs.com\/blog\/#website","url":"https:\/\/ahrefs.com\/blog\/","name":"SEO Blog by Ahrefs","description":"Link Building Strategies &amp; SEO Tips","publisher":{"@id":"https:\/\/ahrefs.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/ahrefs.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/ahrefs.com\/blog\/#organization","name":"Ahrefs","url":"https:\/\/ahrefs.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2023\/06\/ahrefs-logo.png","width":2048,"height":768,"caption":"Ahrefs"},"image":{"@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Ahrefs\/","https:\/\/x.com\/ahrefs","https:\/\/www.linkedin.com\/company\/ahrefs\/","https:\/\/www.youtube.com\/c\/ahrefscom"]},{"@type":"Person","@id":"https:\/\/ahrefs.com\/blog\/#\/schema\/person\/c0bf22f67b0ff8f8221976119abac64e","name":"Tim Soulo","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2024\/05\/Tim_profile_pic.jpg8f04cfcbb173737c084ee81a923c32ba","url":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2024\/05\/Tim_profile_pic.jpg","contentUrl":"https:\/\/ahrefs.com\/blog\/wp-content\/uploads\/2024\/05\/Tim_profile_pic.jpg","caption":"Tim Soulo"},"description":"Tim Soulo is CMO at Ahrefs. With over 15 years in the digital marketing industry, Tim is the author of many data-driven studies and actionable marketing frameworks, some of which gained industry-wide recognition. He enjoys challenging conventional marketing knowledge and optimizing for simplicity and efficiency.","sameAs":["https:\/\/www.timsoulo.com\/","timsoulo","https:\/\/x.com\/timsoulo"],"url":"https:\/\/ahrefs.com\/blog\/author\/tim-soulo\/"}]}},"_links":{"self":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/16962","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/users\/81"}],"replies":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/comments?post=16962"}],"version-history":[{"count":0,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/posts\/16962\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/media\/16988"}],"wp:attachment":[{"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/media?parent=16962"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/categories?post=16962"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/tags?post=16962"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/ahrefs.com\/blog\/wp-json\/wp\/v2\/coauthors?post=16962"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}