The first thing you should do when you sign a new SEO client is audit their site. Not a quick glance — a structured, documented audit that establishes a baseline, identifies quick wins, and shows the client exactly where they stand.

Most agencies do this manually. Open a spreadsheet, check title tags one by one, test page speed, look for broken links. It takes 2-4 hours per site and the output is inconsistent between team members.

Here's a better approach: automate the audit, document the results, and start the engagement with data — not opinions.

What Does the 28-Point Checklist Cover?

These are the checks that matter for every new client site, organized by category.

Meta & Content

# Check Why It Matters
1 Title tag exists No title = invisible in search results
2 Title length (50-60 chars) Too long gets truncated, too short wastes space
3 Meta description exists Controls the snippet in search results
4 Meta description length (120-160 chars) Same truncation issue as title
5 H1 tag present Primary heading signals page topic to Google
6 Single H1 per page Multiple H1s dilute topic signal
7 Heading hierarchy (H1→H2→H3) Skipping levels confuses crawlers
8 Content length (300+ words) Thin content rarely ranks
9 Image alt text coverage Accessibility + image search visibility
10 Readability score Content too complex = high bounce rate

Technical SEO

# Check Why It Matters
11 HTTPS enabled Ranking signal since 2014, trust signal for users
12 SSL certificate valid Expired cert = browser warning = bounced visitors
13 Response time (<500ms) Slow servers hurt Core Web Vitals
14 Canonical URL set Prevents duplicate content penalties
15 Mobile viewport meta tag Required for mobile-first indexing
16 robots.txt present Controls what gets crawled
17 XML sitemap present Helps Google discover all pages
18 Structured data (JSON-LD) Enables rich snippets in search results

Social & Open Graph

# Check Why It Matters
19 OG title set Controls how links appear on Facebook/LinkedIn
20 OG description set The preview text when shared
21 OG image set Posts with images get 2-3x more engagement
22 Twitter Card tags Same as OG but for Twitter/X
23 Favicon present Browser tabs, bookmarks, professionalism

Performance

# Check Why It Matters
24 Page size (<3MB) Large pages = slow loads = high bounce
25 DOM complexity Overly complex DOM slows rendering
26 Compression enabled (gzip/brotli) 60-80% reduction in transfer size

Accessibility

# Check Why It Matters
27 Language attribute on HTML Screen readers need to know the language
28 ARIA landmarks Helps assistive technology navigate the page

How Do You Run a Client Audit via API?

Instead of checking these 28 points manually, run one API call:

curl -H "X-API-Key: YOUR_KEY" \
  "https://seoscoreapi.com/audit?url=https://newclient.com"

You get back every check with a pass/warning/fail status, an overall score, and prioritized fix recommendations. What used to take 2 hours takes 3 seconds.

Python: Onboard Multiple Pages

New clients usually care about more than their homepage. Audit their key pages in one script:

from seoscoreapi import audit, report_url

client_pages = [
    "https://newclient.com",
    "https://newclient.com/services",
    "https://newclient.com/about",
    "https://newclient.com/contact",
    "https://newclient.com/blog",
]

print("NEW CLIENT ONBOARDING AUDIT")
print("=" * 50)

total_issues = 0
for url in client_pages:
    result = audit(url, api_key="YOUR_KEY")
    issues = len(result.get("priorities", []))
    total_issues += issues

    print(f"\n{url}")
    print(f"  Score: {result['score']}/100 ({result['grade']})")
    print(f"  Issues: {issues}")

    for p in result["priorities"][:3]:
        print(f"    [{p['severity']}] {p['issue']}")

domain = "newclient.com"
print(f"\nTotal issues across {len(client_pages)} pages: {total_issues}")
print(f"Shareable report: {report_url(domain)}")

What Do You Show the Client?

Take the output from the audit and present three things in your kickoff meeting:

  1. The score — a single number they can understand (e.g., "You're at 62/100, we're going to get you to 85+")
  2. The quick wins — high-severity issues that are easy to fix (missing meta descriptions, no alt text, missing OG tags)
  3. The report link — hand them https://seoscoreapi.com/report/newclient.com so they can see the details themselves

This positions you as data-driven from day one. No vague promises — concrete numbers and a plan.

Setting Up Ongoing Monitoring

Once the baseline audit is done, set up monitoring so you catch regressions between check-ins:

from seoscoreapi import add_monitor

add_monitor("https://newclient.com", api_key="YOUR_KEY", frequency="daily")

You'll get an email alert if their score drops by 5+ points. This is how you catch it when their dev team pushes a template change that breaks meta tags — before the client notices the traffic drop.

The Onboarding Workflow

Here's the complete flow for every new client:

  1. Sign contract
  2. Run automated audit — 5 key pages, 3 seconds each
  3. Review results — identify quick wins and long-term priorities
  4. Share report link with client
  5. Set up monitoring — daily checks on their homepage
  6. Fix quick wins — usually done in the first week
  7. Re-audit — show the score improvement
  8. Monthly reporting — automated, sent via email or shared dashboard

Steps 2-5 take under 10 minutes with the API. That's the difference between onboarding a client in an afternoon vs. a week.

Get Started

  1. Sign up for a free API key — 5 audits/day to try the workflow
  2. Run your first onboarding audit
  3. Send the report to a client and see their reaction
  4. Upgrade to Basic ($15/mo) for ongoing client work

Frequently Asked Questions

What does the 28-point SEO audit checklist cover?

The checklist spans five categories: Meta & Content (title tags, meta descriptions, headings, readability), Technical SEO (HTTPS, canonical tags, sitemap, structured data), Social & Open Graph (OG tags, Twitter Cards), Performance (page size, compression, DOM complexity), and Accessibility (language attribute, ARIA landmarks).

How do you run a client SEO audit via the API?

Send a single GET request to https://seoscoreapi.com/audit?url=https://clientsite.com with your API key in the X-API-Key header. The response returns a score from 0-100, a letter grade, pass/fail results for all 28 checks, and a prioritized list of issues to fix — in about 3 seconds.

How do you generate a shareable client report?

Use the report_url(domain) helper from the Python SDK or navigate directly to https://seoscoreapi.com/report/yourdomain.com. The report page shows the score, grade, category breakdowns, and prioritized fixes in an interactive format. It updates automatically every time you re-audit the domain.

What does the /report endpoint return?

The /report/{domain} endpoint returns a fully rendered, publicly accessible HTML report page for the given domain. It includes the overall SEO score, letter grade, per-category breakdowns across all 28 checks, and a prioritized fix list. No authentication is required to view it — just send clients the link.

How do you white-label audit results for clients?

Use the raw JSON from the /audit endpoint and feed it into your own HTML template, PDF generator, or Google Sheet. The API returns structured data — score, grade, individual check results, and priorities — that you can render with your agency's branding. The shareable report link and SVG badge are also available for no-build delivery.