Bulk Domain Strength Checker
Pricing
from $2.00 / 1,000 results
Bulk Domain Strength Checker
Score and qualify domains in bulk using transparent registration age, DNS, website availability, HTTPS certificate health, indexability, and homepage SEO signals. No API keys or paid data providers required.
Pricing
from $2.00 / 1,000 results
Rating
0.0
(0)
Developer
SearchShark Tools
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
6 hours ago
Last modified
Categories
Share
🌐 Bulk Domain Strength Checker
Bulk Domain Strength Checker analyzes domains in bulk using transparent, factual signals from registration data, DNS, website availability, HTTPS/TLS, technical indexability, and homepage SEO setup.
Generate a SearchShark Domain Strength Score from 0 to 100 for every domain without requiring customer API keys or paid authority-data providers.
- 🎯 Qualify domain lists: quickly identify stronger and weaker domains
- 🔎 Research domains: inspect registration, DNS, website, and SEO signals
- 📈 Screen prospects: prioritize domains for SEO outreach or lead qualification
- 🧹 Avoid duplicate work: normalized duplicate domains are analyzed only once
- 🛡 Handle missing data safely: unavailable signals reduce score coverage instead of automatically scoring zero
- ⚡ Process domains in bulk: analyze hundreds or thousands of inputs in one Actor run
📊 What does the Domain Strength Score measure?
The SearchShark Domain Strength Score estimates how established, active, healthy, and technically credible a domain appears based on observable signals.
It evaluates:
| 🕒 Domain maturity | 🌐 Website availability |
| 🧭 DNS health | 🔒 HTTPS / TLS health |
| 🤖 Technical indexability | 📝 Homepage SEO setup |
This is not a backlink-authority metric.
The score does not attempt to reproduce:
Moz Domain AuthorityAhrefs Domain RatingMajestic Trust FlowMajestic Citation Flow
It does not use a proprietary backlink database.
🚀 Features
Bulk Domain Strength Checker is designed for bulk domain qualification and technical research.
- Bulk domain analysis: process large lists in one Actor run
- URL normalization: convert URLs and subdomains to the ICANN registrable domain
- Duplicate-safe processing: analyze each normalized domain only once
- Authoritative RDAP registration data
- Native DNS resolution: A, AAAA, MX, and NS records
- Homepage availability checks
- Redirect tracking
- Response-time observation
- HTTPS detection
- TLS certificate inspection
- robots.txt analysis
- Meta robots detection
- X-Robots-Tag detection
- Technical indexability evaluation
- Sitemap discovery
- Homepage title extraction
- Meta description extraction
- Canonical URL extraction
- Transparent component scoring
- Score coverage protection
- Partial failure handling
- One Dataset row per original input
- No paid domain-authority API required
⬇️ Input
You can run the Actor from the Apify Console or programmatically through the Apify API.
🌐 Domains or URLs
Provide one or more domains or URLs.
Example:
{"domains": ["example.com","openai.com","https://www.mozilla.org/firefox/"]}
You can provide:
example.comwww.example.comsupport.mozilla.orghttps://www.example.com/abouthttps://example.co.uk/page?id=10
The Actor normalizes every valid input to its ICANN registrable domain.
For example:
https://www.example.com/article?source=test→ example.com
support.mozilla.org→ mozilla.org
The exact submitted value is preserved in:
originalInput
🧹 Duplicate domain handling
Inputs that normalize to the same registrable domain are analyzed only once.
For example:
example.comwww.example.comhttps://example.com/about
all normalize to:
example.com
The Actor performs one actual domain analysis and reuses that result for all matching inputs.
You still receive:
One Dataset row per original input.
This reduces unnecessary:
DNS requestsHTTP requestsTLS connectionsRDAP lookupsrobots.txt requestssitemap checks
🧮 Domain Strength Score
The Domain Strength Score has a maximum of 100 points.
| Category | Maximum points |
|---|---|
| 🕒 Domain maturity | 15 |
| 🌐 Website availability | 25 |
| 🧭 DNS health | 15 |
| 🔒 HTTPS / certificate health | 15 |
| 🤖 Technical indexability | 20 |
| 📝 Homepage SEO setup | 10 |
| Total | 100 |
🕒 Domain maturity — 15 points
Domain maturity uses the registration creation date reported by authoritative RDAP.
| Current registration age | Points |
|---|---|
| Less than 30 days | 1 |
| 30–179 days | 3 |
| 180–364 days | 5 |
| 1–2 years | 8 |
| 2–5 years | 11 |
| 5–10 years | 13 |
| 10+ years | 15 |
Domain age is an establishment signal, not proof of authority.
An older registration does not prove:
Backlink qualityContinuous ownershipHistorical reputationSearch rankingsContent quality
🌐 Website availability — 25 points
Availability evaluates homepage reachability, redirect behavior, and observed response time.
HTTP reachability — 15 points
| Result | Points |
|---|---|
| Final 2xx response | 15 |
| 401 / 403 | 8 |
| Redirect loop or redirect limit | 4 |
| 404 / 410 | 2 |
| 5xx or connection failure | 0 |
Redirect behavior — 4 points
| Redirect count | Points |
|---|---|
| 0–2 redirects | 4 |
| 3–4 redirects | 2 |
| 5+ redirects or loop | 0 |
Response time — 6 points
| Observed response time | Points |
|---|---|
| ≤ 1,000 ms | 6 |
| ≤ 2,000 ms | 4 |
| ≤ 4,000 ms | 2 |
| > 4,000 ms | 0 |
Response time is a point-in-time observation from the Actor's Apify execution region.
It is not a Core Web Vitals measurement and should not be treated as a permanent website-performance score.
🧭 DNS health — 15 points
DNS health evaluates whether the domain resolves and whether nameservers are configured.
| Signal | Points |
|---|---|
| A or AAAA resolves | 10 |
| 2+ distinct nameservers | 5 |
| 1 nameserver | 2 |
| No nameservers | 0 |
The Actor also collects:
A recordsAAAA recordsMX recordsNS records
MX records are informational and do not contribute to the Domain Strength Score.
Nameserver provider or brand is also not scored.
🔒 HTTPS / certificate health — 15 points
Security scoring evaluates HTTPS usage and observable TLS certificate health.
| Signal | Points |
|---|---|
| Homepage successfully uses HTTPS | 5 |
| TLS certificate valid for hostname | 7 |
| Certificate expires in more than 30 days | 3 |
| Certificate expires in 8–30 days | 2 |
| Certificate expires in 1–7 days | 1 |
| Certificate expired | 0 |
The TLS check can collect:
Certificate validityCertificate issuerExpiration dateDays remainingHostname validity
HTTPS is treated as an operational and security signal, not backlink authority.
🤖 Technical indexability — 20 points
The Actor evaluates observable signals that affect whether the homepage is technically available for indexing.
| Signal | Points |
|---|---|
| Final homepage is successful 2xx HTML | 5 |
No meta robots noindex | 5 |
No X-Robots-Tag noindex | 5 |
| robots.txt allows homepage | 5 |
The output includes:
indexable
Possible values:
truefalsenull
indexable: truedoes not mean the page is indexed by Google.
It only means the Actor did not observe a technical directive preventing homepage indexing.
📝 Homepage SEO setup — 10 points
Homepage SEO setup evaluates three basic metadata signals.
| Signal | Points |
|---|---|
| Non-empty HTML title | 4 |
| Non-empty meta description | 3 |
| Valid canonical on same registrable site | 3 |
The Actor extracts:
titlemetaDescriptioncanonicalmetaRobotsxRobotsTag
Sitemap presence is also collected.
Sitemap presence is informational and does not contribute to the score.
📊 Score coverage
External domain data is not always available.
For example:
- 🌐 A website may block automated requests
- 🕒 A TLD may not provide RDAP
- 🔒 A TLS connection may fail
- 🤖 robots.txt may be temporarily unreachable
- 📡 DNS requests may encounter network errors
- 🛡 A firewall may reject the Actor's request
The Actor does not automatically convert unavailable data into zero points.
Instead, every row contains:
scoreCoveragePercent
The final score is calculated from measurable scoring components only.
Conceptually:
earned measurable points──────────────────────── × 100measurable possible points
If:
scoreCoveragePercent < 70
then:
domainStrengthScore = nullstrengthLevel = null
This prevents the Actor from assigning a misleading score when too much underlying data is unknown.
🏆 Strength levels
When score coverage is sufficient, the final score is converted into a strength category.
| Score | Strength level |
|---|---|
| 0–24 | very_weak |
| 25–44 | weak |
| 45–64 | average |
| 65–84 | strong |
| 85–100 | very_strong |
📡 Data sources
The Actor uses direct and publicly available technical data sources.
🕒 Registration data
Registration information follows:
IANA RDAP bootstrap→ authoritative RDAP server
The Actor can collect:
Registration statusCreation dateCurrent registration ageExpiration dateRegistrarRDAP status
The current version does not use port-43 WHOIS fallback.
If authoritative RDAP is unavailable for a TLD, registration data is returned as unknown rather than automatically scored zero.
🧭 DNS data
DNS information is resolved directly using Node.js native DNS.
The Actor queries:
AAAAAMXNS
🌐 Website data
The Actor performs direct HTTP/HTTPS requests and observes:
HTTP statusFinal URLRedirect countResponse timeContent typeHomepage HTML
The Actor normally starts with:
HTTPS
and can fall back to:
HTTP
when the HTTPS connection itself cannot be established.
🔒 TLS certificate data
The Actor directly inspects the domain's TLS certificate.
It can determine:
- Certificate authorization
- Hostname validity
- Certificate validity period
- Certificate issuer
- Expiration timestamp
- Days remaining
🤖 robots.txt
The Actor checks the website's:
/robots.txt
and evaluates wildcard-user-agent rules against the homepage.
A missing robots.txt file does not automatically block indexing.
A temporarily unreachable robots.txt file is returned as unknown.
🗺 Sitemap discovery
The Actor checks sitemap availability using:
- Sitemap declarations inside robots.txt
/sitemap.xmlfallback
Sitemap presence is returned in:
sitemapExists
Sitemap presence does not contribute points to the Domain Strength Score.
⬆️ Output
Results are stored in the Actor's default Apify Dataset.
You can access them through:
OutputStorageApify APIIntegrations
Each row represents:
One original input submitted to the Actor.
📊 Primary result fields
| Field | Description |
|---|---|
| originalInput | Exact value supplied by the user |
| domain | Normalized registrable domain |
| domainStrengthScore | Final score from 0–100 |
| strengthLevel | Strength category |
| scoreCoveragePercent | Percentage of measurable score components |
| scoreVersion | Score methodology version |
| maturityScore | Registration maturity points |
| availabilityScore | Website availability points |
| dnsScore | DNS health points |
| securityScore | HTTPS/TLS health points |
| indexabilityScore | Technical indexability points |
| seoSetupScore | Homepage SEO setup points |
| status | Overall analysis status |
📋 Registration fields
registeredrdapStatuscreatedAtdomainAgeDaysdomainAgeYearsexpiresAtregistrarregistrationStatus
🧭 DNS fields
dnsResolvedipv4ipv6mxRecordsnameservers
🌐 Website fields
httpStatusfinalUrlredirectCountresponseTimeMscontentType
🔒 TLS fields
httpssslValidsslIssuersslExpiresAtsslDaysRemaining
📝 Homepage SEO fields
titlemetaDescriptioncanonical
🤖 Indexability fields
metaRobotsxRobotsTagrobotsExistsrobotsAllowsHomepagesitemapExistsindexable
🛠 Diagnostic fields
statuserrorscheckedAt
🧪 Example result
{"originalInput": "https://www.example.com/about","domain": "example.com","domainStrengthScore": 94,"strengthLevel": "very_strong","scoreCoveragePercent": 100,"scoreVersion": "1.0","maturityScore": 15,"availabilityScore": 25,"dnsScore": 15,"securityScore": 15,"indexabilityScore": 20,"seoSetupScore": 4,"registered": true,"rdapStatus": "success","createdAt": "1995-08-14T04:00:00.000Z","domainAgeDays": 11347,"domainAgeYears": 31.07,"expiresAt": "2027-08-13T04:00:00.000Z","registrar": "Example Registrar","registrationStatus": [],"dnsResolved": true,"ipv4": ["93.184.216.34"],"ipv6": [],"mxRecords": [],"nameservers": ["a.iana-servers.net","b.iana-servers.net"],"httpStatus": 200,"finalUrl": "https://example.com/","redirectCount": 0,"responseTimeMs": 350,"contentType": "text/html","https": true,"sslValid": true,"sslIssuer": "Example CA","sslExpiresAt": "2026-12-01T00:00:00.000Z","sslDaysRemaining": 84,"title": "Example Domain","metaDescription": null,"canonical": null,"metaRobots": null,"xRobotsTag": null,"robotsExists": true,"robotsAllowsHomepage": true,"sitemapExists": false,"indexable": true,"status": "success","errors": [],"checkedAt": "2026-09-08T07:00:00.000Z"}
Actual values depend on the domain and internet conditions at the time of the run.
🛡 Result status
Each Dataset row contains one of four statuses.
✅ success
The analysis completed with full measurable coverage and no condition requiring a partial result.
⚠️ partial
The Actor successfully returned available domain information, but one or more signals could not be fully determined.
For example:
RDAP unsupportedrobots.txt unreachablewebsite blocks automated requestsTLS signal unavailablehomepage metadata unavailable
A partial result is not the same as a failed domain analysis.
❌ invalid_input
The supplied value could not be converted into a valid ICANN registrable domain.
Examples may include:
Empty inputIP addressInvalid hostnameNon-registrable value
🛑 failed
An unexpected processing failure prevented meaningful analysis.
The Actor is designed to preserve successful subsystem data whenever possible, so normal external website failures generally produce partial rather than failed.
⚡ Bulk processing
The Actor is designed for large domain lists.
During processing it:
- 🧹 Normalizes inputs before analysis
- 🔁 Deduplicates normalized domains
- ♻️ Reuses results for duplicate inputs
- ⚡ Runs multiple domain analyses concurrently
- 🕒 Limits RDAP concurrency
- 🛡 Preserves partial results
- 📊 Calculates score coverage
- 📦 Produces one Dataset row per original input
A slow or unreachable domain does not prevent other domains from completing.
💡 Example use cases
🎯 SEO prospect qualification
Analyze a large outreach list and prioritize domains using:
Domain maturityWebsite availabilityDNS healthHTTPS healthTechnical indexabilityHomepage SEO setup
This can help reduce time spent manually checking low-quality or inactive prospects.
🔎 Domain research
Inspect:
- Registration age
- Current registration status
- Registrar
- DNS resolution
- Nameserver setup
- Website availability
- HTTPS certificate health
- robots.txt behavior
- Homepage metadata
from one structured Dataset.
🏷 Expired-domain screening
Use registration, DNS, and website signals to help identify domains that appear:
Registered and activeRegistered but inactiveTechnically brokenRecently registeredLong-establishedPotentially unavailable
The score does not evaluate backlink history.
🗂 Website portfolio audits
Run hundreds or thousands of owned domains to identify:
Unreachable websitesDNS failuresHTTPS problemsExpired certificatesIndexability restrictionsMissing titlesMissing descriptionsMissing canonicals
📈 Lead qualification
Combine the Domain Strength Score with your CRM or lead-generation workflow to prioritize websites that appear active and technically established.
🔌 API & integrations
Bulk Domain Strength Checker can be started through the Apify API.
Dataset results can be integrated with workflows such as:
- Google Sheets
- Make
- Zapier
- CRMs
- Internal APIs
- Data warehouses
- Lead-generation systems
- SEO workflows
- AI agents
- MCP workflows
Every run stores structured Dataset rows, making the output easy to process automatically.
⚠️ Important limitations
This is not backlink authority
The Domain Strength Score does not use:
Backlink countsReferring-domain databasesMoz metricsAhrefs metricsMajestic metrics
Do not interpret it as a replacement for proprietary backlink-based metrics.
Domain age does not prove authority
An older registration date does not guarantee:
Strong backlinksContinuous ownershipHistorical website qualitySearch rankingsTrusted contentTraffic
Technical indexability does not mean indexed
If:
indexable: true
the Actor did not observe an applicable technical directive blocking the homepage.
It does not confirm Google or Bing currently indexes the page.
Website responses can vary
Websites may behave differently depending on:
Execution regionCDN routingServer loadBot protectionFirewall configurationTemporary outagesGeographic restrictions
Results represent what the Actor observed during that run.
Some websites block automated requests
A domain may use:
- Bot protection
- CAPTCHA systems
- Firewalls
- Authentication
- Rate limits
- Geographic restrictions
When the Actor cannot reliably measure a signal, it returns unknown or partial data instead of inventing a value.
❓ FAQ
Does this calculate Domain Authority?
No.
The Actor calculates the SearchShark Domain Strength Score, which uses transparent registration, DNS, website, HTTPS, indexability, and homepage SEO signals.
It does not calculate Moz Domain Authority.
Does it use Ahrefs or Majestic?
No.
The Actor does not require:
AhrefsMozMajesticDomDetailerpaid backlink APIscustomer authority-metric API keys
Do I need an API key?
No external API key is required.
The Actor uses direct technical sources such as RDAP, DNS, HTTP, and TLS.
Can I submit URLs instead of domains?
Yes.
For example:
https://www.mozilla.org/firefox/
is normalized to:
mozilla.org
What happens to subdomains?
Inputs are normalized to the ICANN registrable domain.
For example:
support.mozilla.org
becomes:
mozilla.org
What happens to duplicate domains?
Duplicate normalized domains are analyzed once and reused.
You still receive one Dataset row for every original input.
Why is domainStrengthScore sometimes null?
If:
scoreCoveragePercent < 70
the Actor intentionally returns:
domainStrengthScore: nullstrengthLevel: null
This prevents a misleading score when too much source data is unavailable.
Why is a result marked partial?
A partial result means some analysis succeeded but one or more signals could not be fully determined.
It does not mean the entire analysis failed.
Does indexable: true mean Google indexes the domain?
No.
It means the Actor did not observe technical homepage directives preventing indexing.
It does not query Google's index.
Is sitemap presence scored?
No.
Sitemap presence is collected as an informational signal only.
Are MX records scored?
No.
MX records are collected but do not affect the score.
Can I export the results?
Yes.
Apify Dataset results can be exported using supported formats such as:
JSONCSVExcelXMLHTML
🧭 Recommended workflow
For large prospect or domain lists:
- Submit the entire list
- Sort by Domain Strength Score
- Check score coverage
- Review partial results when necessary
- Use component scores to understand why a domain scored higher or lower
- Export qualified domains into your next workflow
For example:
Domain AScore: 98Coverage: 100%Status: successDomain BScore: 72Coverage: 100%Status: successDomain CScore: nullCoverage: 60%Status: partial
Domain C should be treated as insufficiently measured, not automatically as a weak domain.
🧪 Score version
Current scoring methodology:
SearchShark Domain Strength Score v1.0
Every Dataset row includes:
scoreVersion: "1.0"
This allows results to remain associated with the scoring methodology used when the domain was analyzed.
💬 Feedback & support
Found a bug or have a feature request?
Use the Actor's Issues tab on Apify.
Useful future additions may include:
Additional technical signalsOptional analysis modesExpanded domain diagnosticsPortfolio monitoringAdditional bulk filteringPerformance improvements
🚀 Qualify domain lists without manually checking every website
Enter your domains, run the Actor, and receive structured Domain Strength Scores plus transparent registration, DNS, availability, HTTPS, indexability, and homepage SEO signals ready for SEO research, prospecting, domain screening, APIs, and automation.