Quick answer: An SEO audit template is a structured checklist that walks you through every technical, on-page, and content check your site needs, in a fixed order, and records both the finding and the fix for each item. The order is not arbitrary — indexability must be confirmed before on-page work is meaningful, and on-page work must be solid before you prioritise content gaps or link equity. Copy the tables below, run each section in sequence, and you will finish with a prioritised fix list you can hand to any developer or work through yourself.
What an SEO audit template must contain (and what most skip)
A usable template has six sections. Run them in this order because each section gates the one that follows. Confirming that Google can crawl and index your pages before you optimise title tags is not pedantry — it is the reason some stores spend months on content without seeing movement.
The six sections:
- Crawlability and indexability
- Technical health (speed, mobile, HTTPS, Core Web Vitals)
- On-page signals (titles, descriptions, headings, schema)
- Content quality
- Internal linking and site architecture
- Off-page signals and authority
Practical rule: Never write a single title tag before you have confirmed the page is actually indexed — check your robots.txt, canonical tags, and Google Search Console coverage report first.
Section 1 — Crawlability and indexability template
This is the gate. If a page is blocked or excluded from the index, every downstream fix is wasted effort.
| Check | How to run it | Passing state | Common failure |
|---|---|---|---|
| robots.txt is accessible | Fetch yourdomain.com/robots.txt |
200 OK, correct Disallow rules | 404, or Disallow: / blocking everything |
| XML sitemap exists and is submitted | Check Google Search Console → Sitemaps | Sitemap submitted, low error count | Sitemap never submitted, or includes noindex URLs |
| Key pages are indexed | site:yourdomain.com/page-url in Google |
Page appears in results | Page missing; check noindex tag or canonical |
| Canonical tags point correctly | Crawl tool or browser DevTools → page source | Self-referencing or correct canonical | Canonical points to wrong URL, creating a duplicate-content loop |
| Redirect chains are short | Crawl tool, check 3xx chains | Max 1 hop (A → B) | A → B → C chains bleed crawl budget |
| Noindex tags are intentional | Crawl and filter for noindex | Only non-commercial pages excluded | Category or product pages accidentally noindexed |
Worked example finding: A crawl of a 3,000-product Shopify store reveals that all faceted filter URLs (/collections/shoes?color=red) are indexed and included in the sitemap. Fix: add ? parameters to robots.txt Disallow or switch to canonical-tag consolidation. Priority: critical.
Practical rule: Run
site:yourdomain.comin Google and compare the count to your actual page count — a large gap almost always means a robots.txt or noindex misconfiguration.
Section 2 — Technical health template
| Check | Tool | Passing threshold | Common failure |
|---|---|---|---|
| HTTPS on all pages | Browser padlock / crawl report | All pages 200 over HTTPS | Mixed content warnings from HTTP assets |
| Core Web Vitals — LCP | PageSpeed Insights or CrWD | < 2.5 s | Large uncompressed hero images |
| Core Web Vitals — CLS | PageSpeed Insights | < 0.1 | Fonts, banners shifting layout on load |
| Core Web Vitals — INP | PageSpeed Insights | < 200 ms | Heavy JavaScript blocking main thread |
| Mobile usability | GSC → Mobile Usability report | Zero errors | Tap targets too small, viewport not set |
| Crawl errors (5xx, 4xx) | GSC → Coverage | Zero server errors, low 404s | Deleted product pages returning 404 instead of 301 |
| Structured data validity | Rich Results Test or schema validator | No errors, eligible for rich results | Missing required fields, JSON-LD syntax error |
For Shopify merchants: Shopify handles HTTPS and the CDN automatically, but Core Web Vitals on storefronts are frequently hurt by third-party app scripts loading synchronously in the <head>. Audit your installed apps and remove ones you no longer use — each script adds latency.
Section 3 — On-page signals template
On-page is where most audits start. It should be section 3, not section 1.
| Element | Check | Optimal state | Flag for fixing |
|---|---|---|---|
| Title tag | Unique per page, primary keyword near front | 50–60 characters, no duplication | Missing, duplicated across pages, > 60 chars |
| Meta description | Unique, matches search intent | 120–155 characters, includes a CTA | Missing, duplicated, auto-truncated mid-word |
| H1 | One per page, matches title intent | Present, contains primary keyword | Missing, or page has 2+ H1s |
| Image alt text | Describes image, relevant keyword where natural | ≤ 125 characters, no keyword stuffing | Empty alt on product images, or alt="image1.jpg" |
| JSON-LD schema | Correct type for page (Product, Article, BreadcrumbList) | Valid, no errors in Rich Results Test | Missing on product/collection pages |
| URL structure | Short, keyword-bearing, no parameters for canonical content | /collections/running-shoes |
/collections/123456?variant=789 |
Worked example finding: A batch crawl of 800 product pages shows 340 have identical meta descriptions pulled from a default Shopify theme fallback. Fix: write unique descriptions for the top 50 by traffic first; use a templated format ([Product name] — [key benefit]. Free shipping on orders over $X.) for the rest. Priority: high.
Section 4 — Content quality template
| Check | Signal | Flag |
|---|---|---|
| Word count relative to intent | Informational pages need depth; product pages need specificity | Thin product pages with only the manufacturer description |
| Keyword targeting | One clear primary keyword, supporting terms used naturally | Keyword stuffing, or page targeting nothing identifiable |
| Duplicate content | Pages share >70% of body text | Faceted search pages, tag pages, or near-duplicate product variants |
| Search intent match | Page format matches what the query expects | Blog post ranking for a transactional query; product page for an informational one |
| Freshness signals | Dates accurate, outdated information removed | "2019 collection" on an active product page |
Practical rule: Before writing new content, check whether a page you already own can be expanded to rank — adding a new page that competes with an existing one dilutes both.
Section 5 — Internal linking and site architecture
Internal links distribute authority and tell crawlers how pages relate to each other. On large Shopify catalogs this section is consistently under-optimised.
Checks to run:
- Orphan pages — pages with zero internal links pointing to them. GSC will show impressions with no click traffic; a crawl tool will show pages only reachable via the sitemap.
- Link depth — key landing pages should be reachable within 3 clicks from the homepage.
- Anchor text — generic anchors ("click here", "learn more") carry no context. Use descriptive, keyword-bearing anchors.
- Broken internal links — any internal 404 leaks equity. Find them with a crawl tool and redirect or update the link.
For ecommerce, the highest-leverage internal links are usually from blog content to product and collection pages. A well-structured ecommerce SEO strategy puts blog content to work here.
Section 6 — Off-page signals
This section is largely observational in an audit — you are documenting what exists and flagging gaps, not fixing them in the same workflow.
| Check | Where to check | What to record |
|---|---|---|
| Referring domains | Ahrefs, Moz, or Search Console Links report | Count, quality, relevance |
| Brand mentions without links | Google alerts, media monitoring | Opportunities to request attribution |
| GSC average position for key pages | GSC → Performance | Pages ranking 5–20 are prime for on-page improvement |
| Competitor backlink gap | Ahrefs or Semrush | Domains linking to competitors, not to you |
One honest note: RankEngine handles the on-site and AEO signals described in sections 1–5, but it does not build backlinks. Backlink acquisition is a separate workstream. No tool automates quality link building; anyone claiming otherwise is worth questioning.
SEO audit report template: how to structure the findings document
Once you have run all six sections, the output document your client or manager actually reads needs a specific structure.
Recommended report order:
- Executive summary (3–5 bullets, critical issues only)
- Audit scope (pages crawled, date, tools used)
- Findings by section, each formatted as: Finding → Evidence → Business impact → Recommended fix → Priority (Critical / High / Medium / Low)
- Prioritised fix list sorted by impact-to-effort ratio
- Baseline metrics (GSC impressions, indexed pages, Core Web Vitals scores) to measure against
The priority matrix that works in practice:
| Priority | Criteria | Timeline |
|---|---|---|
| Critical | Indexability blocked, major crawl errors, HTTPS broken | Fix this week |
| High | Widespread missing titles/descriptions, broken redirects, thin content on top pages | Fix this month |
| Medium | Alt text gaps, internal linking, schema missing on secondary pages | Fix this quarter |
| Low | Minor content updates, cosmetic URL tidying, marginal page speed gains | Backlog |
Running the audit on a Shopify store
Shopify's architecture creates a few audit patterns that differ from flat-site audits: the /collections/ hierarchy, theme-generated canonical tags, the ?variant= parameter pattern, and app-injected scripts all require specific attention.
For merchants who want the audit and the fixes in one place, RankEngine's Shopify SEO audit runs the crawl, writes verified fixes back through the Shopify Admin API, and confirms each fix landed before marking it done — no optimistic checkboxes. It covers meta titles and descriptions, alt text, thin content, JSON-LD schema, internal links, and canonical/robots/sitemap signals. It also surfaces AEO signals: structured data, llms.txt for AI crawlers, and AI-visibility probes across answer engines. The free tier is available without a trial expiry; paid plans start at $9.99/month and are billed through Shopify.
If you want to compare it against other options before committing, the honest comparison between RankEngine and Smart SEO and the RankEngine vs Yoast for Shopify breakdown cover the trade-offs. For broader context on what the current Shopify SEO tooling landscape looks like, the best Shopify SEO apps guide is a reasonable starting point.
For the indexability checks in section 1, Google Search Console remains the authoritative source and there is no substitute. No app replaces it.
What a worked SEO audit example looks like end-to-end
Store: Mid-size apparel store, ~1,200 products, Shopify, no previous technical audit.
Section 1 finding: 2,400 filter URLs indexed; sitemap contains them all. → Canonical consolidation to main collection pages. Critical.
Section 2 finding: LCP of 4.8 s on mobile; traced to a 1.4 MB hero image. → Compress and convert to WebP, lazy-load below-fold images. Critical.
Section 3 finding: 600 product pages share meta descriptions (theme default). → Templated unique descriptions across catalog. High.
Section 4 finding: 80 collection pages have < 80 words of body content; they rank for nothing and contribute little. → Add 150–250 words of relevant, keyword-bearing copy to the top 20 by traffic. High.
Section 5 finding: 140 blog posts have no internal links to collections. → Add 2–3 contextual links per post to the most relevant collection page. Medium.
Section 6 finding: 12 brand mentions in press coverage with no backlink. → Outreach to publications to request attribution. Medium.
Total critical/high issues: 4. That is a realistic starting sprint for most stores.
RankEngine