Sample report. The site and figures are illustrative, the structure and wording are real
Technical SEO audit of furniture.example
This is what the report you receive looks like. This is a shortened version: 7 findings out of 23, without the URL spreadsheet and screenshots. In a real report every finding links to a tab with the full list of addresses.
Site type
Furniture online store, WooCommerce
Crawled
14,212 URLs, 9,870 indexed by Google
Data
Search Console 16 weeks, CrUX 28 days, logs 21 days
Priorities
3 × P1, 4 × P2, 5 × P3
The one-page summaryIf you read only this, you already know what to do this week
Catalog filters are open to indexing. 6,400 parameter URLs eat the crawl budget, new products get indexed late. Tasks T-01, T-02.
2,300 product pages share the same title and have no H1. The product template broke after a theme update in July. Task T-03.
After renaming /catalog/ to /shop/, 412 internal links go through two redirects. Task T-04.
Three tasks, roughly 2–3 developer days. The remaining findings below matter, but they do not block the result from the first three.
P1 findingsCritical: directly affects indexation and traffic right now
P1Indexation · catalog filters
Catalog filters generate 6,400 parameter URLs, 5,900 of them open to indexing
What I see
The sort, price, color and material parameters generate unique URLs without a canonical. In Search Console 4,100 of them are “Crawled, currently not indexed”, another 1,800 are indexed with an empty description.
GET /shop/sofas/?sort=price&color=grey → 200, canonical: none, meta robots: index
GET /shop/sofas/?material=fabric&page=4 → 200, canonical: none
Impact
Over 21 days of logs Googlebot made 61% of its requests to parameter URLs and 9% to product pages. New products get indexed 12–19 days after publication.
Task T-01
For sort, price and page combined with filters return rel="canonical" to the base category. For color and material keep only combinations with search demand indexable, per the “Filters with demand” tab (38 combinations), and give them their own title and H1.
Acceptance
Re-crawl: 0 URLs with sort or price without a canonical; 38 filter pages with unique titles. After 4 weeks, product pages receive over 30% of Googlebot requests in the logs.
P1Metadata · product template
2,300 product pages have the title “Buy online — furniture.example” and no H1
What I see
After the theme update on 14 July the single-product.php template stopped outputting the product name in the title and H1. Affected: every product added after that date and every product without a manually filled SEO title.
Impact
In Search Console clicks on product pages dropped 44% from 20 July with the same number of impressions: Google shows a snippet without the product name.
Task T-03
Restore the default title {product name} — buy online, price {price} | furniture.example and {product name} as H1 in the template. Do not overwrite manual SEO titles.
Acceptance
Crawl: 0 product pages with duplicate titles, 0 without H1. Check in Search Console after 3 weeks: product CTR returns to June levels.
P1Redirects · section migration
412 internal links point to old /catalog/ URLs through a 301 → 301 → 200 chain
What I see
In February the section was renamed to /shop/, then in April a trailing slash was added. The old redirect rules were never merged, and the menu, footer and “Similar products” block still link to /catalog/.
Each of the 412 links loses part of its equity at every hop, and 38 external links to the old URLs pass through two redirects.
Task T-04
In the menu, footer and “Similar products” templates replace hrefs with the final URLs including the trailing slash. In the server rules point old URLs straight to their final destination.
Acceptance
Crawl: 0 internal links to 3xx. Every URL in the “Old URLs” tab answers with a single 301.
P2 findingsImportant: limits growth, fix after P1
P2Speed · category template
LCP on the category template is 4.1 s in field data against the 2.5 s “good” threshold
What I see
The LCP element is a 1.9 MB PNG category banner without dimensions. A 480 KB chat script loads synchronously before the content. Web fonts have no font-display.
Task T-05
Serve the banner as WebP under 120 KB with width/height and fetchpriority="high". Initialise the chat after first interaction. Add font-display: swap to the fonts.
Acceptance
CrUX 28 days after release: LCP p75 on categories below 2.5 s.
P2Indexation · sitemap.xml
sitemap.xml contains 318 URLs that return 404 and 1,100 URLs with noindex
What I see
The plugin builds the sitemap from every record, including deleted products and utility pages. Search Console shows the sitemap status as “Has errors”.
Task T-06
Exclude products with status “deleted” and noindex pages from the sitemap; add lastmod from the real modification date.
Acceptance
Only URLs returning 200 and without noindex in the sitemap; Search Console status “Success”.
In brief: the remaining findingsP2 and P3, each described in full in the complete report
P2Category pagination canonicalises to page one, so products from page 3 onwards have no indexable link at all. Task T-07.
P2The staging copy dev.furniture.example returns 200 and has 1,240 pages indexed. Task T-08: put it behind authentication, return 410 for old URLs.
P371% of product images have no alt. Task T-09: alt template from product name and colour.
P3Product markup without price and availability on 40% of product pages, so Google shows no price in the snippet. Task T-10.
P3hreflang en ↔ de: 94 pages without a return link. Task T-11.
P3GA4 installed twice, via GTM and via a plugin. Purchase events are counted twice. Task T-12.
P3Breadcrumbs exist in the template but have no BreadcrumbList markup. Task T-13.
Developer tasksThis is how it looks in the tracker. Time estimates are rough, for planning
ID
Priority
Task
Acceptance criterion
Estimate
T-01
P1
Canonical to base category for sort, price, page combined with filters
0 URLs with these parameters without a canonical after crawl
4 h
T-02
P1
Unique title and H1 for the 38 filter pages on the list
38 pages with their own title, the rest canonicalised
6 h
T-03
P1
Restore product name in the product template title and H1
0 duplicate titles, 0 products without H1
2 h
T-04
P1
Replace /catalog/ links in menu, footer, similar products; merge redirects
0 internal links to 3xx; old URLs answer with a single 301
3 h
T-05
P2
Category banner as WebP with dimensions and fetchpriority; chat after interaction; font-display
Category LCP p75 under 2.5 s in CrUX over 28 days
5 h
T-06
P2
Exclude deleted products and noindex pages from sitemap.xml, add lastmod
Sitemap status “Success” in Search Console
2 h
What happens nextThe order I propose after the walkthrough call
Week 1: T-03 and T-04, because they are the quickest and show a visible effect in Search Console.
Week 2: T-01 and T-02 together, in one release, to avoid an intermediate state with partial canonicals.
Weeks 3–4: T-05, T-06, then P3 in order.
4 weeks after the last release: re-check and comparison of logs, coverage and product CTR against this report.
Want a report like this for your site? Send the address and what worries you, I reply with an exact quote.