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 showed | Semrush Site Audit | Ahrefs Site Audit |
|---|---|---|
| Site Health or Health Score | 85% | 99 |
| Crawl scope for this comparison | Main host, links from the homepage, capped at 100 pages, JavaScript rendering off | Existing project crawl with 2,296 internal URLs in the error distribution, reached its configured depth limit |
| Reported errors | 12 | 34 |
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
| Finding | Semrush | Ahrefs | What we verified |
|---|---|---|---|
| Broken link to an AI visibility guide | Source article absent from the Crawled Pages report | Listed the 404 and the article linking to it | The source still linked to the old slug. The old URL returned 404 and the corrected URL returned 200 |
| Cloudflare email-protection path | Three broken-link rows led to the same endpoint | Listed the endpoint as a 404 with the contact page among the sources | The bare path returned 404 and the contact page used fragment-bearing email links |
| HTTP www homepage redirect chain | Coverage of that variant unverified in this run | Listed a redirect chain | Two 301 responses led to the canonical HTTPS homepage |
| Blog listing structured data | Flagged the blog listing and several paginated views | Presence of the same finding unverified | The listing shipped an ItemList with totalItems and entries containing both item and url |
The broken link we’d fix first
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
The second 404 came from an email link
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
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.
Run your own public presence audit
See how your website, search footprint, AI visibility, social proof, and conversion trust look from the outside.
