A Practical SEO Audit Checklist for Small Business Sites

A focused technical SEO audit you can run on a small business site in an afternoon — indexing, sitemaps, titles, internal links, canonicals, schema, broken links, and speed.

Most "SEO audits" sold to small businesses are 80-page PDFs that flag every nitpick a crawler can find. The owner reads page three, gets overwhelmed, files it away, and nothing changes.

A useful audit is shorter and tells you what to fix in what order. Here's the one I actually run on a small business site, top to bottom, in under an hour.

Step 1: Can Google index the site?

Before anything else, confirm Google is allowed to crawl and index. The fastest way to wreck your own SEO is to leave a "discourage search engines" checkbox on from when the site was being built.

Check three things:

  1. robots.txt. Visit yourdomain.com/robots.txt. If you see Disallow: / for User-agent: *, that's blocking everything. Common cause: a developer forgot to flip it back after staging.
  2. The <meta name="robots"> tag. View source on the home page. If you see noindex, fix it now. WordPress has this under Settings → Reading.
  3. Google Search Console coverage. If you don't have Search Console set up yet, do that first. It's the single most useful free SEO tool, and Google will email you when something breaks.

If the site is genuinely blocked, every other audit step is wasted effort.

Step 2: Sitemap and submission

Every site needs an XML sitemap, and Google needs to know where it is.

  • For WordPress, Yoast generates it automatically at yourdomain.com/sitemap_index.xml. I lead with Yoast over other SEO plugins — it's the most reliable, the free tier covers what a small business needs, and Google has never had a problem reading its sitemaps.
  • For Shopify, sitemaps are at yourdomain.com/sitemap.xml and generated automatically.
  • For custom sites, generate one and host it at the root.

Submit the sitemap in Search Console under "Sitemaps." Check back in a week — it should show "Success" with a discovered URL count close to what you expect.

Step 3: Titles and meta descriptions

Every page needs a real <title> and <meta name="description">. Not the auto-generated ones, not duplicates across pages — real, page-specific text.

What I check:

  • Title under 60 characters. Longer ones get truncated in search results.
  • Description under 155 characters. Same reason.
  • No duplicates across pages. Search Console flags these under "Pages → Duplicate without user-selected canonical."
  • Primary keyword somewhere in the title, naturally. Not stuffed.

In WordPress, Yoast lets you set these per-page. On other systems it's wherever you put your <head> content.

Step 4: Headings and content structure

A page should have one <h1> (the visible page title), and <h2> headings that break the content into sections. Beyond that, the rules are loose:

  • The <h1> should match what the page is about.
  • <h2> headings should reflect the structure of the content, not the keyword you wish you ranked for.
  • Don't skip levels (h1 → h3 with no h2).

Most page builders make this hard to get wrong, but a surprising number of sites use <h1> for the logo on every page. Check the home page source for <h1> and make sure it's the headline, not the brand.

Step 5: Internal linking

Internal links pass authority between your pages and tell Google how the site connects. They're the cheapest SEO win on most sites because the content is already there.

Things to look for:

  • Every important page should be reachable in three clicks from the home page.
  • Service pages should link to related service pages and to relevant blog posts.
  • Blog posts should link back to service pages — that's how you get a reader to convert.
  • Avoid "click here" link text. Use the destination's actual topic.

A simple test: take five of your blog posts. Count internal links to your service pages. Most sites have zero. That's wasted leverage.

Step 6: Canonical URLs

A canonical tag tells Google "this is the real URL of this page" when the same content can be reached multiple ways. Without one, duplicate content gets diluted across versions.

Check that:

  • Every page has a <link rel="canonical" href="..."> in the head.
  • Pages reachable at both https://yourdomain.com/page and https://www.yourdomain.com/page resolve to one canonical version.
  • HTTPS is the canonical (not HTTP).
  • Trailing-slash and non-trailing-slash URLs resolve to one or the other consistently.

In WordPress, Yoast sets canonicals automatically and gets this right. On other platforms, verify it manually.

Step 7: Structured data (schema)

Schema markup is the extra JSON-LD you embed in a page to tell Google what kind of thing it is — a business, an article, a product, a recipe. Done right, it can earn you "rich results" in search: star ratings, FAQ snippets, business info panels.

For a small business site, focus on:

  • LocalBusiness schema on the home page (name, address, phone, hours).
  • Article schema on blog posts.
  • FAQ schema on FAQ sections.
  • Service schema on each service page if you have multiple services.

Yoast adds most of this on WordPress out of the box. Validate it with Google's Rich Results Test — paste in a URL and confirm there are no errors.

Step 8: Broken links and redirects

Broken internal links waste crawl budget and frustrate users. Old redirects that chain through three URLs are slow and confusing.

I use Screaming Frog (free up to 500 URLs, which covers most small business sites) to crawl the whole site and look for:

  • 4xx errors. Pages that no longer exist but are still linked.
  • 5xx errors. Server problems. Investigate.
  • Long redirect chains. Fix to one-hop redirects.
  • Redirected internal links. Update the link to point at the final URL directly.

This is the most tedious step. It's also where most sites have the most room to clean up.

Step 9: Page speed and Core Web Vitals

The technical SEO audit ends with a performance check. Run the home page, a service page, and a blog post through PageSpeed Insights and look at the field data.

I covered the details in Core Web Vitals and SEO, but the short version: get LCP under 2.5 seconds, CLS under 0.1, INP under 200ms. If you're not there, fix LCP first.

For WordPress, a caching plugin handles most of it — W3 Total Cache is the one I trust. For Angular sites, prerendering does the equivalent job.

What I don't bother checking

A short list of things audit tools flag that I don't lose sleep over:

  • Image alt text on decorative images. Useful for screen readers, not for ranking on its own.
  • Keyword density. Has not been a real ranking factor for a decade.
  • Number of words per page. Long pages don't outrank short pages unless the topic warrants it.
  • Site age. Not actionable, and not as influential as people think.
  • The exact Lighthouse SEO score. It's a directional indicator, not a goal.

Putting it together

A small business SEO audit isn't twelve hours of work. The whole thing above is one focused afternoon, and the fixes that come out of it are a week or two for most sites.

If you'd rather have someone else run the audit and just hand you the fix list, send me a message. It's faster than reading another 80-page PDF.

Want help shipping this on your own site?

Free 30-minute consultation. No pressure either way.

Start a project