Nofollow Link Audit
Pricing
$2.99/month + usage
Nofollow Link Audit
Nofollow link audit tool that scans any webpage and reports every link's rel attribute, whether dofollow, nofollow, sponsored, or UGC, so SEO teams can check link types without reading raw page source.
Nofollow Link Audit: Check Every Link's Rel Attribute on Any Webpage
Nofollow Link Audit scans any webpage and reports every link's rel attribute, classifying each as dofollow, nofollow, sponsored, or UGC. Each result includes the resolved link URL, anchor text, and whether the link points to an internal or external domain.
Give it a URL, run it, and get a clean dataset you can filter down to just the nofollow links, just the sponsored ones, or just the external dofollow links. Handles multiple URLs per run.
Use cases
- SEO audit: confirm whether backlinks in your profile are actually followed before attributing them to rankings
- Guest post verification: check whether a host site is passing PageRank through your placement or nofollowing it
- Sponsored link compliance: find outbound paid links that have not been tagged rel=sponsored as Google requires
- Competitor research: see which outbound links competitor resource pages follow vs nofollow
- Link building: identify whether directories, forums, or blogs offer dofollow links before pursuing placements
Input
| Parameter | Type | Default | Description |
|---|---|---|---|
url | string | required | Single webpage URL to audit for link attributes. |
urls | array | - | Multiple webpage URLs to audit. Enter one per line. |
maxUrls | integer | 100 | Max pages to process per run. Caps cost and runtime. |
timeoutSecs | integer | 300 | Overall actor timeout in seconds. |
requestTimeoutSecs | integer | 30 | Per-request HTTP timeout in seconds. Requests exceeding this are skipped. |
proxyConfiguration | object | Datacenter (Anywhere) | Proxy type and location for requests. Supports Datacenter, Residential, Special, and custom proxies. Optional. |
Example input
{"url": "https://apify.com","maxUrls": 100,"requestTimeoutSecs": 30,"proxyConfiguration": { "useApifyProxy": true }}
What data does this actor extract?
One record per link found on each audited page.
{"pageUrl": "https://apify.com","linkUrl": "https://docs.apify.com/","anchorText": "Documentation","relAttribute": null,"isDofollow": true,"isNofollow": false,"isSponsored": false,"isUgc": false,"isExternal": true,"scrapedAt": "2025-03-07T10:30:00.000Z","error": null}
| Field | Type | Description |
|---|---|---|
pageUrl | string | The audited page where the link was found. |
linkUrl | string | Fully resolved URL of the link. |
anchorText | string | Visible anchor text. Null for image-only or empty links. |
relAttribute | string | Raw rel attribute value (e.g. "nofollow sponsored"). Null if no rel attribute is set. |
isDofollow | boolean | True if the link passes PageRank (no nofollow, sponsored, or ugc rel values present). |
isNofollow | boolean | True if the link has rel=nofollow. |
isSponsored | boolean | True if the link has rel=sponsored (paid or affiliate link). |
isUgc | boolean | True if the link has rel=ugc (forum post, comment, or other user-generated content). |
isExternal | boolean | True if the link points to a different domain than the audited page. |
scrapedAt | string | ISO 8601 timestamp of when the link was extracted. |
error | string | Error message if the page failed to load. Null on success. |
How it works
- Fetches each input URL and parses the HTML response with BeautifulSoup
- Finds all anchor tags with an href attribute
- Resolves relative URLs to absolute form and skips non-HTTP links (mailto:, tel:, javascript:)
- Reads each link's rel attribute and sets isDofollow, isNofollow, isSponsored, and isUgc flags
- Compares domains to determine whether each link is internal or external
- Pushes one record per link to the Apify dataset
Integrations
Connect Nofollow Link Audit with other apps and services using Apify integrations. You can integrate with Make, Zapier, Slack, Airbyte, GitHub, Google Sheets, Google Drive, and many more. You can also use webhooks to trigger actions whenever results are available.
FAQ
What link types does this actor detect? Four rel values: nofollow, sponsored, ugc, and dofollow (the absence of the other three). A link can have multiple rel values at once. For example, rel="nofollow sponsored" sets both isNofollow and isSponsored to true.
Does it crawl the entire site or just the given page?
It audits links on each input URL but does not follow them to crawl deeper. To audit multiple pages, provide them all via the urls input field, or run a crawler first to collect the URLs you want checked.
Can it check links on JavaScript-rendered pages? This actor fetches raw HTML. Pages that inject links via JavaScript may return incomplete results. For JavaScript-heavy sites, use a browser-based actor to get the rendered HTML first, then pass those URLs here.
How many links can it process per run?
There is no hard limit on links extracted per page. Use maxUrls to control how many pages are fetched per run (default 100, max 1000).
What does rel=sponsored mean for SEO? Google introduced rel=sponsored in 2019 to identify paid placements and affiliate links. It works like nofollow for PageRank but signals intent more precisely. Paid links without this tag violate Google's webmaster guidelines and can lead to manual penalties.
Run a nofollow link audit on any page to see exactly which links pass PageRank and which do not. Download the results as CSV, JSON, or Excel from the Apify dataset.
