Skip to main content
Marketing|SEO Manager / Content Strategist

Technical SEO Audit & Optimization

Comprehensive on-page and technical SEO analysis for search visibility

Search engines reward fast, well-structured, technically sound websites. EdgeDNS gives you a full technical SEO audit — on-page analysis with pixel-precise SERP title preview, per-crawler robots resolution, rich-results eligibility, Core Web Vitals from real users, and a composite SEO score — through a single API.

The Challenge

Technical SEO issues are invisible until rankings drop. A title that truncates at 580 pixels in mobile SERPs, structured data that no longer qualifies for rich results, robots rules that silently differ between Googlebot and GPTBot, soft 404s that look like 200s — all silently erode visibility. Manual audits are too slow to catch any of it, especially across hundreds of pages.

The Solution

Use EdgeDNS SEO APIs to run automated technical audits across your entire domain portfolio. Get pixel-width title analysis with SERP truncation previews, parsed robots directives per crawler (Googlebot, GPTBot, ClaudeBot, and 10 more), rich-results eligibility with strategic schema gaps, soft-404 and mixed-content detection, and a composite SEO grade that tracks improvement over time.

Endpoints Used

Combine these EdgeDNS endpoints to build this solution.

GET
/v1/domain/seo-auditTry in Playground

SEO Audit: Comprehensive on-page SEO analysis with pixel-precise title width analysis and SERP truncation preview

GET
/v1/domain/search-readinessTry in Playground

Search Readiness: Evaluate crawlability and indexability with soft-404, mixed-content, and security-header detection

GET
/v1/domain/redirectTry in Playground

Redirect Chain: Hop-by-hop categorization (protocol-upgrade, canonical, mixed-content, open-redirect-suspect), follow meta-refresh redirects, flag 302/307 used for permanent moves, and (with `canonicalCheck=true`) catch redirects landing on URLs whose `<link rel=canonical>` points elsewhere

GET
/v1/domain/metaTry in Playground

Meta Tags: Extract title, description, OG, and parsed robots directives (max-snippet, max-image-preview) plus duplicate-tag detection

GET
/v1/domain/robotsTry in Playground

Robots.txt: Resolve effective rules per crawler (Googlebot, GPTBot, ClaudeBot, and 10 more) and validate sitemap reachability

GET
/v1/domain/pagespeedTry in Playground

PageSpeed Insights: Lighthouse audit scores for performance, accessibility, and SEO

GET
/v1/domain/web-vitalsTry in Playground

Core Web Vitals: Real-user LCP, INP, and CLS data from the Chrome UX Report

GET
/v1/domain/structured-dataTry in Playground

Structured Data: Validate JSON-LD, Microdata, and RDFa with rich-results eligibility and strategic schema gaps

GET
/v1/domain/keyword-analysisTry in Playground

Keyword Analysis: Analyze keyword density, alignment across title, H1, and meta description

GET
/v1/score/seoTry in Playground

SEO Score: Composite SEO grade from 8 weighted components with top recommendations

Results You Can Achieve

On-page SEO issues surfaced per scan

Pixel-precise title truncation, parsed robots directives, duplicate meta tags, structured-data gaps, and rich-results-eligibility blockers — all in one scan.

Per-crawler robots resolution (13 crawlers)

See exactly which rule Googlebot, Bingbot, GPTBot, ClaudeBot, CCBot, and Applebot-Extended actually apply — so you stop guessing what AI crawlers are reading.

Redirect-chain analysis tuned for SEO

Hop categorization separates desired redirects (HTTP→HTTPS, canonical) from problems (302 used for permanent moves loses ranking signals; redirects landing on URLs whose rel=canonical points elsewhere leak link equity). Meta-refresh redirects — common on legacy sites — are followed and flagged.

Rich-results eligibility + strategic schema gaps

Flag pages that fail Google rich-results requirements and surface missing breadcrumbs, organization schema, and sitelinks — the schema work that actually moves rankings.

Composite A–F SEO grade from 8 weighted components

Single grade for portfolio benchmarking, with sub-scores so you can see exactly which lever moved.

Code Example

Run a full technical SEO audit

javascript
const domain = 'example.com';
const headers = { 'Authorization': 'Bearer YOUR_API_KEY' };

const [seoAudit, webVitals, structuredData, robots, searchReadiness, redirect, seoScore] = await Promise.all([
  fetch(`https://api.edgedns.dev/v1/domain/seo-audit?domain=${domain}`, { headers }),
  fetch(`https://api.edgedns.dev/v1/domain/web-vitals?domain=${domain}`, { headers }),
  fetch(`https://api.edgedns.dev/v1/domain/structured-data?domain=${domain}`, { headers }),
  fetch(`https://api.edgedns.dev/v1/domain/robots?domain=${domain}`, { headers }),
  fetch(`https://api.edgedns.dev/v1/domain/search-readiness?domain=${domain}`, { headers }),
  // canonicalCheck=true compares finalUrl to its <link rel=canonical>
  fetch(`https://api.edgedns.dev/v1/domain/redirect?url=https://${domain}&canonicalCheck=true`, { headers }),
  fetch(`https://api.edgedns.dev/v1/score/seo?domain=${domain}`, { headers }),
].map(p => p.then(r => r.json())));

console.log('SEO Grade:', seoScore.data.grade);
console.log('On-Page Score:', seoAudit.data.score);
console.log('Title SERP preview:', seoAudit.data.title?.widthAnalysis?.truncationPreview);
console.log('Core Web Vitals:', webVitals.data.passesAllThresholds ? 'PASS' : 'FAIL');
console.log('Rich-results eligible:', structuredData.data.richResultsEligibility?.eligibleTypes);
console.log('Strategic schema gaps:', structuredData.data.strategicGaps);
console.log('GPTBot rule:', robots.data.effectiveRulesByCrawler?.GPTBot?.effective);
console.log('Soft 404 detected:', searchReadiness.data.softFourOhFour?.detected);
console.log('Mixed content:', searchReadiness.data.mixedContent?.issues?.length ?? 0);

// Redirect-chain SEO issues — chain length, 302-for-permanent, canonical mismatches
console.log('Redirect hops:', redirect.data.totalRedirects, 'categories:', redirect.data.categoryCounts);
const seoRedirectIssues = (redirect.data.structuredIssues ?? [])
  .filter((i) => ['redirect-temporary-for-permanent', 'redirect-canonical-mismatch', 'redirect-mixed-content'].includes(i.code));
if (seoRedirectIssues.length > 0) console.log('Redirect SEO issues:', seoRedirectIssues);

console.log('Top Recommendations:', seoScore.data.topRecommendations);

Learn More

Explore industry standards and best practices related to this use case.

Ready to build Technical SEO Audit & Optimization?

Get started with 200 free API requests per month. No credit card required.

Other Use Cases