If you have not run it yet, start with the free website SEO diagnostic. It scans a sample of your site and tells you what it can actually detect, which usually narrows things down before you work through anything by hand.
This checklist is what comes after that. It covers the parts no automated scan can do for you: reading your Search Console reports, judging whether a warning is a real defect, and deciding what is worth your time. It runs on Search Console and a browser, both free, and it is ordered so the checks that usually explain the problem come first. Tick items off as you go. Your progress is saved in this browser, so you can close the tab and come back.
1. Before you audit anything
Most emergency audits are triggered by a graph. The first job is working out what the graph is actually showing.
- Separate a ranking drop from a demand drop. In Search Console, compare the last 3 months to the previous period, then check the same query in Google Trends. If interest fell everywhere, your rankings may be fine and your market got quieter.
- Check whether clicks or impressions moved. Impressions down means you lost visibility. Impressions flat with clicks down usually means you lost position within the page, or someone above you started taking the click.
- Find the date the change started. Set the Performance report to Full duration and look for the week it turned. A cliff points at a technical event or a manual change. A slope points at competition or decay.
- Check what changed on your side that week. Plugin updates, a redesign, a migration, a robots.txt edit, a new staging site going public. Line the dates up before blaming an algorithm.
- Confirm the property covers the whole site. A domain property covers every subdomain and protocol. A URL prefix property does not, and half your data may be sitting in a property nobody opens.
2. Indexing: what Google actually kept
Rankings are downstream of indexing. A page that is not indexed cannot rank for anything, so this is where an audit either finds the problem or rules it out.
- Open Pages, not just Performance. Search Console’s Pages report splits indexed from not indexed and gives a reason for each exclusion. Most people never open it.
- Compare indexed pages against pages you meant to publish. If you have 400 published URLs and 90 indexed, that gap is the story. If you have 400 published and 4,000 indexed, you are generating URLs you do not know about.
- Read Crawled, currently not indexed. Google fetched the page and chose not to keep it. That is usually a quality or duplication signal rather than a bug, and adding more internal links to it rarely fixes it.
- Read Discovered, currently not indexed. Google knows the URL exists and has not fetched it. On a small site this often points at crawl priority. On a large one it points at too many low-value URLs competing for attention.
- Check for pages excluded by noindex you did not intend. Staging flags, plugin defaults and per-page toggles all set noindex quietly. Search for it in the Pages report before assuming it is not there.
- Test one important URL live. Use the URL Inspection tool, then View Crawled Page. If the HTML Google stored looks different from what you see, you have a rendering problem, not a ranking one.
3. Duplication and canonicals
Duplication rarely announces itself. It shows up as pages that quietly stop earning clicks while a near-identical URL takes them.
- Look for Duplicate without user-selected canonical. Google found copies and picked the canonical itself. Sometimes it picks correctly. The check is whether the URL it kept is the one you would have chosen.
- Look for Duplicate, Google chose different canonical than user. Here you did declare a canonical and Google overruled it, which usually means your internal links, sitemap and canonical tag disagree with each other.
- Check one page has one address. A site should not answer on http and https, with and without www, and with and without a trailing slash. Type all four variants and confirm three of them redirect to the fourth.
- Check parameter URLs. Filters, sorting and tracking parameters can generate thousands of near-identical pages. Search Console’s Pages report will show them if they are being crawled.
- Check tag and category archives. On WordPress these are the most common source of thin duplicate pages. A tag used once creates an archive page with a single item on it.
4. Crawl access
- Read your robots.txt out loud. Visit /robots.txt directly. A single stray Disallow line can remove a section from search, and it is the fastest catastrophic mistake to make and to fix.
- Confirm CSS and JavaScript are not blocked. Google renders pages. If it cannot fetch your stylesheets and scripts it sees a broken layout and judges it accordingly.
- Submit and check your sitemap. It should list canonical, indexable URLs only. A sitemap full of redirects, 404s and noindex pages teaches Google to trust it less.
- Find your 404s and decide about each. A 404 is correct for a page that should not exist. It is a mistake for one that moved. Redirect the second kind to the closest real equivalent, not blanket to the homepage.
- Check redirect chains. A redirect that points at another redirect wastes crawl budget and loses a little signal at each hop. Chains usually appear after a migration.
5. What the page delivers when it loads
These are Google’s published Core Web Vitals thresholds. Field data in Search Console reflects real visitors, which is the version that counts.
- Largest Contentful Paint under 2.5 seconds. Usually the hero image or heading. If it is an image, it should not be lazy loaded and it should not wait behind a stylesheet.
- Interaction to Next Paint under 200 milliseconds. Measures how quickly the page responds when someone taps. Heavy third-party scripts are the usual cause.
- Cumulative Layout Shift under 0.1. Set width and height on images and reserve space for anything that loads late, including cookie banners and ads.
- Check the mobile numbers, not the desktop ones. Desktop scores flatter almost every site. Google evaluates the mobile experience.
- Check field data before lab data. A lab test is one simulated load on one connection. The Core Web Vitals report in Search Console is what your visitors actually got.
6. Structure and internal links
- Confirm every important page is reachable by clicking. If a page can only be found through the sitemap, it is orphaned. Orphaned pages are the most common cause of good content that never ranks.
- Check one page targets one intent. Two pages written for the same query will split their own signals and neither will win. This is the most common self-inflicted SEO problem.
- Read your title tags as a list. Export them and scan the column. Duplicates, truncation and boilerplate are obvious in a list and invisible one page at a time.
- Check headings describe the content. One H1 per page, and headings that would still make sense to someone reading only them.
- Check images carry information. Descriptive filenames set before upload, and alt text that says what the image shows. Image search is a separate queue with less competition in it.
7. What not to fix
This is the section most checklists leave out, and the one that saves the most time. Not every warning is a defect.
- Alternate page with proper canonical tag is correct behaviour. It means your canonical tags are working. Nothing to do.
- Excluded by noindex is often intentional. Thank you pages, internal search results and admin screens should be excluded. Check the list, do not empty it.
- Page with redirect is usually fine. If you moved a page and redirected it, this is the report confirming that.
- Not every 404 needs a redirect. Redirecting a genuinely dead page to an unrelated one is worse than letting it 404 honestly.
- A perfect performance score is not the goal. Past the thresholds, further gains stop affecting rankings and start costing you time that content would repay better.
- Do not change more than one thing at a time on a live problem. If you fix six things and traffic returns, you have learned nothing about which one mattered.
Take the checklist with you
Get the printable version as a PDF, and an email when I publish something worth your time. Usually once a month, never more than that.
When to stop and get someone to look
Work through the list first. Most sites find something in sections 2 or 3 and can act on it without help. If you get to the end and the numbers still do not explain themselves, that is usually a sign the problem is structural rather than a single setting, and structural problems are hard to see from inside the site you built.
That is what the SEO audit and roadmap is: this checklist run properly on your site, plus the part a checklist cannot give you, which is knowing which of the findings is actually worth your next month. If you would rather just ask a question first, the contact page is the low-commitment option, and there is no obligation attached to it.