# One-click URL reports and deeper inspection (0.5.0)

Open **URL report**, paste a public URL or bare domain, and click **Generate SEO report**. Bare domains use HTTPS. No provider key or publishing connection is required for the standard HTML audit. The worker creates or reuses the matching website workspace, samples up to 25 HTML pages within the existing crawl budget, and prepares a saved report. Existing normal-audit crawl settings are preserved.

The report automatically uses the first inspected page title as its display name for a newly discovered site. This is a label from page content, not independently verified business identity. The executive summary, finding counts, first five priorities and effort estimates are deterministic descriptions of captured evidence. No ranking, traffic or revenue figures are invented.

## Deeper checks

**Rendered content**, selected by default, inspects up to three captured pages in fresh mobile Chromium sessions. Its purpose is to compare HTML against content visible after JavaScript executes. It does not replace raw HTML, verify publication or establish Google indexing. The report keeps HTML and rendered findings separate; their counts can overlap.

Rendering is deliberately restricted: only same-origin public GET requests for documents, scripts, CSS and data are fulfilled through HyperSEO's DNS-pinned bounded fetcher. Robots rules apply. Private targets, cross-origin requests, writes, frames, images, fonts, media, WebSockets and service workers are blocked. A dead-end browser proxy prevents direct networking outside the interception path. No browser profile, cookies or signed-in session is reused. There are request, byte, DOM, time and process limits. Client-rendered sites that depend on third-party services or blocked resources can be incomplete; missing render evidence is reported as unavailable, never a pass.

Fresh installations run `npm run setup:browser` during `npm run setup`. Existing installations can run it once after installing dependencies. It installs Playwright's matching Chromium browser in the normal OS cache outside the source/release archive. Linux may also need Playwright's documented system dependencies. If Chromium is unavailable, HTML evidence remains useful and the report clearly identifies the failed rendered check.

**Google mobile performance**, off by default, requires approval to send the public URL to PageSpeed Insights. It makes one mobile Performance-category request for the first inspected page. Google supports requests without an API key; quota/rate limits can make this optional check unavailable. HyperSEO does not use other applications' credentials. At most ten approved performance-report requests per UTC day can be queued locally, including requests later cancelled or failed. No external request is automatically retried.

The report retains Google’s Lighthouse score, selected numeric lab metrics, opportunities, run version and timestamp. A zero value is retained; an absent value remains absent. These are simulated lab observations, not field Core Web Vitals, actual visitor speed, search rank or an audit of every page. Cross-origin final results and unsupported result shapes are rejected. Inspect findings and performance differences in their original context before making changes.

## Review and deliver

Completed reports appear automatically. Change the agency name, accent, raster logo and additional executive summary, then save to refresh the preview. The most recently saved agency branding is reused for future URL reports unless an existing website has its own branding. Client-specific summary text is not reused across reports.

Download the exact branded HTML shown in the preview, with embedded Figtree fonts and license notice. Use **Open print view** and the browser's Print / Save as PDF for a PDF copy. No email, public hosting or publishing happens automatically. Links to the website workspace let you turn findings into reviewed work using the existing tools.

Up to five reports can be queued/running and thirty completed reports retained. Export and remove old reports when full. Reports preserve frozen source observations; later website changes do not silently rewrite them. Explicit branding edits update the report presentation. Cancellation and worker lease checks block a late report from being saved. A completed raw HTML audit may already remain in the website workspace when a later deep check is cancelled. Interrupted jobs fail without automatic retries; start another report deliberately if needed.

## Verification

`npm run check` runs unit tests, typechecks and the production build. `npm run test:url-reports-ui` uses synthetic public/provider responses with a real isolated Chromium renderer, SQLite, API and browser UI. It tests URL entry, JavaScript-derived content, private/cross-origin/write/WebSocket blocking, optional performance consent, source separation, branding, exact HTML delivery and responsive layouts. Provider fixtures do not establish live Google availability. A separate public `example.com` render can be checked without contacting a paid provider.

References: [Playwright request routing](https://playwright.dev/docs/network), [Playwright browser installation](https://playwright.dev/docs/browsers), [Google PageSpeed setup and limitations](https://developers.google.com/speed/docs/insights/v5/get-started), [PageSpeed request reference](https://developers.google.com/speed/docs/insights/v5/reference/pagespeedapi/runpagespeed).
