Client Report Delivery

Shareable Client Reports

Send a link. Clients see the report. No login required.

The simplest way to deliver SEO reporting: generate a report, enable sharing, and send the link. Clients open a clean, read-only view without creating an account. You can disable access anytime.

Share a read-only report link with no client login required
Reports load reliably using cached snapshots
Use live links by default, export PDF only when needed

1-click

Share Activation

0

Client Login Required

Instant

Disable Anytime

“Our clients love that they can just click a link and see their report. No passwords, no accounts—just the data they need.”

— Rachel K., Account Manager

What Clients See When They Open the Link

When a client clicks the share link, they see a full report view—the same structure as your admin dashboard, but designed for client consumption.

The Report Experience

  • Summary and highlights: Key metrics and insights up front
  • Traffic overview: Sessions, users, and engagement trends
  • Keyword performance: Target keywords with clicks, impressions, CTR, and position (when connected)
  • Competitor insights: Benchmarks and comparisons (when competitors are tracked)
  • Technical health: Core Web Vitals and performance indicators

Client-Friendly by Design

No editing.

Clients view data—they can't change settings or modify the report.

No setup required.

They click the link and see the report. No account creation, no password.

Built for skimming.

Summary first, detail tabs after. Stakeholders get what they need fast.

How Report Sharing Works

Sharing is controlled per report. Here's the workflow.

1

Generate a Report

Create a report in the admin area for your client. The report pulls data from connected sources and creates a snapshot.

2

Enable Sharing

Toggle sharing on for that report. This activates the share link and makes it accessible.

3

Copy the Share Link

Copy the link from the report settings. The link includes a unique report slug that identifies this specific report.

4

Send to Your Client

Share the link via email, Slack, or your client communication channel. They open it in their browser and see the report.

5

Disable When Needed

Turn sharing off anytime. The link immediately becomes invalid—anyone who tries to access it sees an error state, not the report.

When to Disable

Client contract ends
Report is outdated and you don't want it viewed
Link was shared with the wrong person

Secure Access via Share Tokens

Share links are token-based. They're not open to the public—they require a valid, enabled token to work.

How It Works

Each share link contains a unique identifier (the share token). When someone opens the link, the system checks:

  1. 1Is the token valid? Does it map to a real report?
  2. 2Is sharing enabled? Has the agency turned sharing on?
  3. 3Is the request within rate limits? Is this normal traffic or potential abuse?

If all checks pass, the report loads. If any check fails, the visitor sees an error.

Rate Limiting

Public report traffic is rate-limited to prevent abuse. Limits are applied per share link and client IP. Normal client viewing is unaffected—rate limits only kick in during unusual traffic patterns.

Best Practices

  • Only send links to decision-makers. The person who needs the data, not a general distribution list.
  • Disable the link when a contract ends. Don't leave old reports accessible indefinitely.
  • Re-share after refreshing. If you update the report, send the link again so clients know to check the latest version.

Live Link vs PDF: When to Use Each

Both options exist. Here's when to use each.

Live Link (Default)

Recommended

The share link is the default delivery method. Use it for:

  • Ongoing reporting: Clients bookmark the link and check back each period
  • Async stakeholder viewing: Different people can view at different times
  • Reliable access: Reports load from cached snapshots, so there's no dependency on external APIs at view time

Live links are easier for clients and easier for you. No attachments, no version confusion.

PDF Export (Backup)

When required

PDF export exists for situations where a static file is required:

  • Offline archiving: Client needs a file for their records
  • Procurement or compliance: Some organizations require PDF deliverables
  • Formal presentations: When a document format is expected

PDF export is generated server-side and requires an active session. It captures the current report state as a downloadable file.

Recommendation: Use live links as your default. Reserve PDF for clients who specifically request a document or have compliance requirements.

How Data Freshness Works

The shared report is a snapshot—a cached version of the report data at the time it was generated or last refreshed.

What Clients See

Clients see the data from your most recent report snapshot. If you generated the report on Monday and a client views it on Thursday, they see Monday's data.

How to Update

To give clients fresher data, refresh the report. This pulls the latest available data from connected sources (GA4, Search Console, PageSpeed) and updates the snapshot. After refreshing, clients who reload the link see the updated data.

No Real-Time Updates

The shared report doesn't pull live data when clients view it. This is intentional—cached snapshots load faster and more reliably than live API calls. You control when data updates by choosing when to refresh.

Built to Fail Gracefully

Reports are designed to load even when something goes wrong with a data source.

Partial Data Handling

If a connected source is temporarily unavailable (expired token, API issue), the report still loads. Sections with available data display normally. Sections with missing data show clear indicators rather than crashing.

Keywords Section Behavior

The keywords section has specific graceful handling. If upstream data isn't available (Google auth expired, no keywords added), it returns an empty state with guidance—not a broken page. The rest of the report remains accessible.

Why This Matters

Clients never see a completely broken report. If there's an issue, they see partial data with context. You can fix the underlying problem (reconnect accounts, refresh data) and the report updates.

Troubleshooting Share Links

When something goes wrong, here's how to diagnose and fix it.

"This Link Is Invalid" or Error Page

Likely cause:

The slug is wrong, the token is invalid, or sharing has been disabled.

Fix:

Go to the report in your admin area. Confirm sharing is enabled. Re-copy the link and send the correct URL.

Client Says Data Looks Outdated

Likely cause:

They're viewing the last cached snapshot, which hasn't been refreshed.

Fix:

Refresh the report data to pull the latest from connected sources. Have the client reload the link.

Keywords Tab Is Empty

Likely cause:

Google authentication expired or no target keywords were added to the client.

Fix:

Reconnect the Google account in your settings, then refresh the report. The keywords section returns an empty state rather than crashing, so this won't break the rest of the report.

"Too Many Requests" or Temporary Block

Likely cause:

Public endpoints are rate-limited, and the link received unusual traffic.

Fix:

Wait briefly and retry. Normal client viewing won't trigger rate limits—this usually indicates automated access or someone refreshing repeatedly.

Link Worked Before But Doesn't Now

Likely cause:

Sharing was disabled, or the report was deleted.

Fix:

Check the report status in your admin area. Re-enable sharing if it was turned off. If the report was deleted, generate a new one.

Shareable Client Reports FAQs

Common questions about sharing reports with clients.

Still have questions? The best way to understand shareable reports is to share one.

Share My Report

Share Your Next Report as a Link

Stop sending attachments. Generate a report, enable sharing, and send your client a link they can open instantly—no login, no setup.

Share My Report

1-click activation • No client login required