Why an unordered checklist becomes noise
I’ve seen projects where the team launched a review of broken links, images without ALT text, and meta descriptions in the same week. Three months later, traffic was still flat. The problem wasn’t the effort: it was the sequence. An on-page and off-page SEO audit checklist is of little use if it doesn’t distinguish between what needs to be fixed before continuing to publish and what can wait until the next quarter.
This checklist is ordered by impact and dependency. The first blocks are blocking: if they fail, the rest of the actions lose effectiveness. The last ones are cumulative improvements. It’s not a list to check off in an afternoon; it’s a work order for the coming weeks.
Block 1: checks that block everything else
1. Real indexability, not the kind the CMS shows
Open Search Console and review the pages report. Then check with a direct request (curl or the URL inspection tool) whether key pages return a 200 without noindex. A common mistake: the SEO plugin marks noindex on categories and archives, but product pagination inherits it too. According to Google’s official documentation on robots directives, accidentally inherited noindex is one of the most common causes of silent traffic loss.
2. Canonicals that are consistent with each other
Check three levels: the canonical declared by the page, the one declared by its version with parameters, and the one declared by the version with and without a trailing slash. If all three point to different URLs, you have a signal consolidation problem. It’s not enough for a canonical to exist: it must point to the URL you actually want to rank.
3. A sitemap that reflects reality
Compare the number of URLs in the sitemap with the number of indexable pages you detect in your own crawl. Differences greater than 20% usually indicate orphan URLs, poorly managed redirects, or content that is generated dynamically and not included. A sitemap that includes noindex pages sends contradictory signals.
4. Redirects that don’t chain
A 301 redirect pointing to another 301 that points to a 404 is a broken chain. Review chains with more than two hops. In domain migrations, it’s common to find chains of three or four hops that slow down crawling and dilute authority.
5. Status codes on the URLs that receive the most traffic
Export the 100 URLs with the most clicks in Search Console and check their response code. A 200 on most of them doesn’t mean the ones that fail don’t matter: precisely the ones that fail are usually the ones that contribute most to the business.
Block 2: on page, but with a business mindset
6. One H1 per page that matches the intent
It’s not just a matter of quantity. The H1 must respond to the dominant intent of the query. If the page ranks for an informational keyword but the H1 sells a product, CTR will drop even if the position is good. Review the H1 of the ten pages with the most impressions and fewest clicks: that’s where the disconnect between expectation and content lies.
7. Titles that fit without being truncated
Beyond pixels, check whether the title repeats the brand at the beginning on every page. That consumes useful space and pushes the keyword out. A reasonable exception: brand pages or the homepage, where the brand can legitimately go first.
8. Meta descriptions that aren’t an automatic excerpt
If the CMS generates the meta description from the first lines of content, review the pages with a CTR below the average for their position. An excerpt that cuts a sentence in half reduces clicks even if the snippet is valid.
9. An Hn structure that reflects the actual content
A mistake I see often: using H2 for every paragraph and H3 for subsections that don’t exist. The hierarchy should allow a reader to scan the text and understand the argument. If reading only the headings doesn’t make the page understandable, the structure fails.
10. Internal linking with intent
Check whether the pages that convert best receive internal links from the pages with the most authority. It’s not about linking everything to everything: it’s about making the flow of authority follow the funnel path. A common pattern: the blog links to the homepage, but not to the service pages that monetize.
11. Images with reasonable weight and complete attributes
Check the weight of images on the pages with the worst LCP. A descriptive ALT helps accessibility and context, but it doesn’t compensate for a 2 MB image. Prioritize format and dimensions over alt text.
12. Duplicate content across product or service variants
In ecommerce, color or size variants often share a description. If they don’t add differential value, consider consolidating them with a canonical or unifying them into a single URL. According to industry studies, internal duplication doesn’t penalize on its own, but it dilutes the relevance of the main page.
Block 3: off page that you can actually measure
13. Inbound link profile: quality before quantity
Export the referring domains and classify them by topic. If most links come from generic directories or sites unrelated to your sector, topical authority isn’t being built. Also review the trend: a sudden spike in links followed by a drop usually indicates a purchased campaign or a low-quality directory.
14. Anchors that aren’t excessively exact-match
A natural distribution includes brand, generic, URL, and exact-match anchors. If more than 40% of your external links use the exact keyword, review the profile. It’s not a fixed rule, but it’s a manipulation signal that algorithms detect easily.
15. Broken outbound and inbound links
Check the outbound links on your most visited pages. A link to an expired domain or a 404 undermines credibility. On the inbound side, check whether any unlinked mention can be converted into a link: it’s the cleanest route to editorial link building.
16. Brand mentions without links
Search for your brand name in search engines and check whether the mentions include a link. Contacting the outlet to request the link is legitimate if the mention already exists. What doesn’t work is sending mass emails to sites that have never mentioned you.
17. NAP consistency in directories and maps
If you have a local business, check that the name, address, and phone number match across Google Business Profile, Bing Places, and the main directories. A discrepancy in the phone number can split entity signals. This isn’t on-page SEO, but it affects the trust the search engine places in your business.
18. Internal links from older content
Review articles published more than a year ago and add links to relevant new pages. It’s one of the actions with the best effort-to-result ratio in projects with an established blog. It doesn’t require creating new content, only connecting what already exists.
Block 4: measurement and documentation
19. Search Console: queries with impressions and zero clicks
Filter queries with more than 100 impressions and zero clicks over the last 28 days. There are title and meta description opportunities there. Don’t change everything at once: apply the change to a group of pages and measure CTR two weeks later.
20. Average positions that hide cannibalization
If two URLs from your site appear for the same query in positions 4 and 18, you have cannibalization. Check whether the content overlaps and decide which URL should rank. The solution isn’t always to merge: sometimes it’s enough to differentiate the intent.
21. Core Web Vitals by template, not by page
Group URLs by template type (home, category, product, article) and review the LCP and CLS of each group. Optimizing page by page without fixing the template is duplicated work. According to Google’s documentation on Web Vitals, performance is evaluated at the URL level, but the causes are usually structural.
22. Document every change with date and owner
A spreadsheet with columns for date, URL, change applied, and expected metric prevents repeating mistakes. When traffic drops, the first question is what was touched. Without a record, the answer is lost.
What this checklist doesn’t solve
No checklist replaces judgment. There are cases where the problem isn’t on the page or in the links: it’s in the business model or in seasonality. If your traffic drops in August because your sector is seasonal, no on-page audit is going to fix that.
It doesn’t work the same way in every sector either. On a site with thousands of URLs generated by filters, managing canonicals and parameters matters more than content. In a local business with ten pages, NAP and reviews matter more than internal linking. Adjust the order of the blocks to your context before you start.
And a practical warning: don’t apply mass changes to titles and meta descriptions without having a CTR baseline. Without prior measurement, you won’t know whether the improvement came from the change or from seasonality. The on-page and off-page SEO audit is a process of hypothesis and verification, not a to-do list for ticking boxes.