SEO Research

Semrush vs. Ahrefs Site Audit: What Each Found on the Same Website

We compared Semrush and Ahrefs Site Audit reports for SavageAudit. See which findings held up on live URLs and what we would fix first.

Written bySavageAudit TeamProduct & Research
XinShare on LinkedIn
Two inspection sheets with different orange issue marks under a magnifying glass
Short answer

Semrush and Ahrefs surfaced different findings on SavageAudit. Compare the exact URLs each tool crawled and verify the highest-impact issues before using either report to prioritize fixes.

One broken link on our site sent readers from an AI search audit guide straight to a 404. A crawler also flagged the URL Cloudflare uses to hide email addresses from bots. Both requests returned 404. Only one came from a link that was meant to open a blog post.

We compared Semrush Site Audit and Ahrefs Site Audit on savageaudit.com on November 14, 2026. We run the site, so we could check the reports against our public pages and see which findings deserved work.

Ahrefs found the broken article link. Semrush reached its 100-page cap before crawling the source article, but it flagged structured data on the blog listing. Both tools reported the Cloudflare endpoint. If you’re deciding which report to work from, those details matter more than the 14-point gap in their scores.

Same website, two crawl scopes

What the report showedSemrush Site AuditAhrefs Site Audit
Site Health or Health Score85%99
Crawl scope for this comparisonMain host, links from the homepage, capped at 100 pages, JavaScript rendering offExisting project crawl with 2,296 internal URLs in the error distribution, reached its configured depth limit
Reported errors1234

The tools use different units in their crawl totals. Semrush showed 100 pages against its configured cap. Ahrefs’ 2,296 is the number of internal URLs in its error distribution. We used the completed Ahrefs project crawl and started a one-time Semrush crawl on the same domain. The tools had different coverage, so these reports show how the two setups behaved on our site.

Ahrefs calculates its Health Score from the share of crawled internal URLs without errors. Semrush takes errors and warnings into account with different weights. Use either score to track changes across comparable crawls in that tool. For a comparison between tools, look at the URLs and issues underneath the score. Ahrefs Health Score methodology · Semrush Site Health methodology

What each crawler found

FindingSemrushAhrefsWhat we verified
Broken link to an AI visibility guideSource article absent from the Crawled Pages reportListed the 404 and the article linking to itThe source still linked to the old slug. The old URL returned 404 and the corrected URL returned 200
Cloudflare email-protection pathThree broken-link rows led to the same endpointListed the endpoint as a 404 with the contact page among the sourcesThe bare path returned 404 and the contact page used fragment-bearing email links
HTTP www homepage redirect chainCoverage of that variant unverified in this runListed a redirect chainTwo 301 responses led to the canonical HTTPS homepage
Blog listing structured dataFlagged the blog listing and several paginated viewsPresence of the same finding unverifiedThe listing shipped an ItemList with totalItems and entries containing both item and url

Ahrefs listed /blog/how-to-audit-ai-search-visibility-and-aeo-gaps as a 404 and showed an incoming link from our AI search audit tool article. We opened the source and checked the link. The destination still returned 404, while the intended guide loaded at /blog/how-to-audit-ai-search-visibility-aeo-gaps. The old link had an extra and in the slug. Source article · Working guide

I’d update the link at the source first. If other sites link to the old URL, a direct permanent redirect to the equivalent guide can help readers who still follow it. Google’s redirect guidance

Ahrefs also flagged /cdn-cgi/l/email-protection and showed the contact page as one source. In the HTML, the path appears with a fragment as part of Cloudflare’s email obfuscation. A direct request to the bare path returned 404. Open the contact page in a browser and test the email links as a visitor before treating this as a broken content page. Cloudflare email obfuscation documentation

A real redirect chain with a working destination

Ahrefs flagged the HTTP version of our www homepage. We followed it with an HTTP request and saw two permanent redirects. http://www.savageaudit.com/ went to https://www.savageaudit.com/ and then to https://savageaudit.com/, which returned 200. For any links you control, point them at the final HTTPS URL. I’d put the broken article link ahead of changing the homepage redirect chain because the chain already reaches the right page.

Two sitemap warnings changed by the time we checked

Ahrefs flagged two public audit pages as missing from the sitemap. Both returned 200 with a self-referencing canonical and were present in the live sitemap when we checked. The audit records what its crawler saw at the time. Open the current sitemap before assigning a task to add a URL. SavageAudit sitemap

Semrush found a markup issue on the blog listing

Semrush reported six invalid structured data items. On the main blog listing, it flagged totalItems and the combination of item and url on a list entry. We read the live JSON-LD and confirmed both were present. Schema.org documents numberOfItems for the item count. Google’s carousel docs describe different markup for a summary page and a single-page list, so I’d check which search feature the template is trying to support before changing the entries. This finding is about markup. Use URL Inspection to verify indexing separately. Schema.org ItemList · Google’s carousel documentation

Which tool should you start with?

For this site, I’d start with Ahrefs’ link and redirect details to repair the broken article link. Then I’d use Semrush’s markup report to review the blog template. If you’re choosing one subscription, check whether its crawl allowance reaches the pages you need and whether you can get from an issue to the exact source URL. That’s the step that turned this audit into a fix.

To run a controlled test on your site, give each crawler the same list of public URLs if your plan supports it. Set the same hostname scope and check the rendering mode. Include a known broken target, a working redirect, and a page with an intentional noindex. Compare each finding with a live request and mark any URL a crawler skipped. Use Google Search Console to check how Google actually sees an affected URL. Google URL Inspection

We build SavageAudit. If the crawl shows that a page loads and is available to search engines, you can still review how clearly it explains the offer, where visitors hesitate, and how it compares with a rival’s page. SavageAudit Compare

FAQ

Common questions

Is Semrush or Ahrefs better for technical SEO audits?

Both tools can help with technical SEO audits. In our SavageAudit comparison, Ahrefs gave us the source of a broken link outside Semrush’s 100-page crawl, and Semrush surfaced a blog markup issue. Choose based on the pages you need to crawl and the issue details you need to act on.

Why are Semrush and Ahrefs health scores different?

Ahrefs reports the share of crawled internal URLs without errors. Semrush weights errors and warnings. Different crawl scopes can also produce different findings. Review the affected URLs before comparing score changes.

Can a Site Audit report tell me whether Google indexed a page?

Use Search Console URL Inspection to check Google’s index status and selected canonical. A crawler can find response codes, directives, and link paths that help explain what you see there.

SavageAudit

Run your own public presence audit

See how your website, search footprint, AI visibility, social proof, and conversion trust look from the outside.

Roast My SiteView pricingCompare sites