How to Audit Your Own Website’s SEO (and What an Audit Should Actually Cover)

An SEO audit is a diagnostic, not a checklist. You confirm Google can crawl and index your pages, check real-user Core Web Vitals, then rank issues by the traffic they cost you. Fix the expensive problems first. I run this on live sites in an afternoon.
Part of the complete SEO guide.
On this page
- Start with crawlability, not keywords
- Check your Core Web Vitals against real users
- Look at your title tags and headings as a set, not one by one
- Find the pages that should be ranking and aren’t
- Audit your internal links
- Check for technical debt that’s silently costing you
- What to do with all of this
- FAQ
- How often should I run an SEO audit?
- Can I do an SEO audit without paid tools?
- What’s the single most common problem you find?
Most “SEO audit” services hand you a 40-page PDF full of green checkmarks and vague warnings, then charge you for it. That’s not an audit. An audit is a diagnostic: you find what’s broken, you rank the problems by how much traffic they’re costing you, and you fix the expensive ones first. You can do most of this yourself in an afternoon.
Here’s the process I run on real sites, including the parts most checklist tools skip.
Start with crawlability, not keywords
Before you touch content or links, confirm Google can actually see your pages. Everything else is noise if the answer is no.
Check robots.txt first. It’s at /robots.txt, and a stray Disallow: / from a staging environment that never got removed is one of the most common causes of a site vanishing from search. Look for:
- A blanket disallow, even one that’s commented out but still parsed wrong
- Sitemap references that point to a 404
- Rules blocking CSS or JS files. Google needs those to render the page
Then check your sitemap.xml. It should list canonical URLs only. If it’s full of ?sort= or ?utm= parameters, you’re telling Google to crawl junk.
Finally, verify indexing in Search Console under Pages. The “Crawled – currently not indexed” bucket is the one to worry about. That usually means Google saw the page and decided it wasn’t worth keeping. That’s a content or duplication problem, not a technical one.
Check your Core Web Vitals against real users
Lighthouse in Chrome DevTools is a lab test. It runs on your machine, on your connection, with a cold cache. Useful for catching obvious problems, but it’s not what Google ranks you on. Google uses field data from real Chrome users, and you can see that in Search Console under Core Web Vitals.
The three numbers that matter:
- LCP (Largest Contentful Paint): under 2.5 seconds
- INP (Interaction to Next Paint): under 200 milliseconds. This replaced First Input Delay in March 2024, so if your audit tool still reports FID, it’s out of date
- CLS (Cumulative Layout Shift): under 0.1
If INP is your problem, it’s almost always JavaScript. Long tasks blocking the main thread. Here’s a quick way to spot them:
// Paste in DevTools console. Reports tasks over 50ms.
const observer = new PerformanceObserver((list) => {
for (const entry of list.getEntries()) {
console.log(`${entry.duration.toFixed(0)}ms`, entry);
}
});
observer.observe({ entryTypes: ['longtask'] });
Anything over 50ms blocks input. Ten of those on page load and your INP is going to be bad no matter how fast your server is. The fix is usually less JavaScript, not faster JavaScript. Defer what you can, split what you can’t, and kill third-party scripts you stopped using two years ago.
Look at your title tags and headings as a set, not one by one
Individual title tags are easy. The problem shows up when you look at them together and realize twelve pages all target the same phrase, or half your titles are just the company name.
Pull every URL and title from your sitemap and sort them:
curl -s https://example.com/sitemap.xml
| grep -oP '(?<=<loc>)[^<]+'
| while read url; do
title=$(curl -s "$url" | grep -oP '(?<=<title>)[^<]+' | head -1)
echo "$url | $title"
done
Then read down the list. You’re looking for:
- Duplicate titles across different pages (Google picks one, the other gets nothing)
- Titles that don’t match search intent. A service page titled “Welcome to Our Website” tells Google nothing
- Missing H1s, or multiple H1s saying different things
- Pages with no title tag at all. Rare, but it happens with badly built templates
One thing people get wrong: the H1 doesn’t need to match the title tag word for word. It should say the same thing in a way that reads naturally to a human landing on the page. If it reads like it was written for a crawler, rewrite it.
Find the pages that should be ranking and aren’t
This is where an audit turns from technical to strategic. In Search Console, go to Performance, set the date range to the last 16 months, and filter by query. Look for:
- Positions 5 through 15 with decent impressions. These are your quickest wins. A better title, a clearer answer to the query, or a couple of internal links often moves them onto page one
- High impressions, low clicks. You’re ranking but nobody’s biting. Your title and meta description aren’t doing their job
- Queries you rank for on the wrong page. Google is picking a page that isn’t your best answer. Consolidate or redirect
If you run a local business, this is also where you check your Google Business Profile. Make sure the categories are right, the hours are current, and your service area matches what’s on your site. For a lot of local searches, the map pack sits above the organic results, so a perfect page two ranking doesn’t mean much if your profile is a mess.
Audit your internal links
Internal linking is the most underrated part of any audit and the one most tools ignore. Google uses your internal links to understand what your pages are about and which ones matter most.
Run a crawl and look for:
- Orphan pages. Pages with no internal links pointing to them. Google can still find them via sitemap, but they get almost no authority
- Click depth. Important pages buried four clicks from the homepage are harder to rank than the same content one click away
- Anchor text. If every link to your services page says “click here,” you’re wasting the signal. Use the words you actually want to rank for
There’s a useful rule here: if a page matters, link to it from a page that already ranks. That’s how authority moves through a site. It’s also the reason a well-structured site with plain custom web development tends to outrank a prettier site with no internal linking plan.
Check for technical debt that’s silently costing you
Some things don’t show up in rankings until they do. Worth checking every audit:
- HTTPS everywhere. Mixed content warnings still hurt. Check for images or scripts loaded over
http:// - Canonical tags. Every page should have a self-referencing canonical. If you have
wwwand non-wwwboth resolving, pick one and 301 the other - Redirect chains. A to B to C to D wastes crawl budget and slows things down. Collapse them to single hops
- 404s with backlinks. If an external site links to a page you deleted, that link is dead. Redirect it to the closest live page
- Structured data. Validate it with Google’s Rich Results Test. Broken schema is worse than no schema
What to do with all of this
You’ll end up with a list. Don’t fix it top to bottom. Rank by impact:
- Anything blocking indexing. Fix today
- Core Web Vitals failures, especially INP. These affect every page
- Pages in positions 5 to 15 with real impressions. Highest ROI per hour of work
- Internal linking and orphan pages
- Titles, meta descriptions, and content refreshes
Re-run the audit 60 to 90 days after you make changes. Google needs time to recrawl and re-evaluate, and you need enough data to tell whether a change actually worked or just coincided with a slow month. If you’d rather hand this off than build the process yourself, that’s what a proper Long Island SEO engagement looks like. Not a PDF. A ranked list of fixes and someone to do them.
FAQ
How often should I run an SEO audit?
A full audit once or twice a year is enough for most sites. Run a lighter check quarterly, focused on indexing, Core Web Vitals, and your Search Console queries. If you just redesigned or migrated the site, audit immediately.
Can I do an SEO audit without paid tools?
Yes. Search Console, the Chrome DevTools Performance panel, Screaming Frog’s free tier (500 URLs), and a spreadsheet will get you 90% of the way. Paid tools save time on large sites, but they don’t find problems you can’t find yourself.
What’s the single most common problem you find?
Pages that should be ranking but have no internal links pointing to them, and title tags that don’t match what people actually search. Both are cheap to fix and both usually show up in rankings within a few weeks.


