Your website probably looks fine to you. You visit it, it loads, the pages are where you left them, and nothing’s on fire.

The problem is that your browser has the site cached and you already know where everything is. You’re the worst possible person to evaluate whether your own site works. I include myself in that!

Websites drift. A page gets renamed and the old links stay put. A campaign wraps and the landing page never comes down (or maybe it should never have been indexed in the first place). An external source link breaks because the original publisher reorganized their blog. None of this breaks anything, exactly. It just accumulates…and accumulates…and accumulates.

This post is about the fundamentals. Is the site alive? Can Google read it? Can a person use it without hitting something broken? Keywords, rankings, and the content strategy of it all are a different conversation at a different level of investment. But they don’t matter much unless the basics are stable.

What a site health check will tell you

A health check can answer four questions. Is the site reachable? Can it be crawled? Can it be indexed? Can a person use it?

Some tools you could use

You don’t need a big stack for this. Google Search Console is the one non-negotiable and it’s free. It’s the closest thing you have to Google telling you directly what it thinks of your site. Set it up today if you haven’t.

Beyond that, Screaming Frog’s free tier crawls up to 500 URLs, which covers most small and mid-size sites. It’ll surface broken links, redirect chains, and missing metadata in one pass. Ahrefs Webmaster Tools gives you a free audit for domains you verify, and PageSpeed Insights handles speed page by page.

If you already pay for Semrush or Ahrefs, their audit modules run all of this on a schedule and email you when something changes. That scheduling piece is such a huge help for me, so take advantage of it! And if you’re not sure whether you should be paying for them at all, that’s a stack audit question.

Finding it and fixing it are two different jobs

One thing before the list. Finding these things and fixing them are two different jobs, and the fixing depends entirely on what you’re running.

If you’re on WordPress with Yoast, your meta descriptions are a text field. Fill it in, done. If you’re on a static site deployed through git, that same change means editing frontmatter, committing, and pushing. Comfortable with that? Still ten minutes. Not comfortable with it? That’s a developer.

Redirects work the same way. Managed hosting often gives you a settings panel. A custom setup means a config file and someone with server access.

So I’m not going to tell you which of these you can handle yourself. That depends on your CMS, your plugins, your host, and how your site gets deployed, and you know all of that better than I do. Read the list and you’ll know.

What to pay attention to

Indexing and coverage. Can Google see your pages at all? Search Console tells you what Google indexed, what’s excluded, and the reason behind it. Read the excluded list closely. This is where a stray noindex left on after a redesign turns up, or a robots.txt line blocking a section nobody meant to block, or a canonical pointing at the wrong version of your domain.

Pages in the index that were never meant to be there. The other direction of the same problem. Campaign landing pages, thank-you pages, gated asset delivery pages, the duplicate someone spun up for a webinar in 2023. These were built for one audience arriving from one place, and they were never written to be found cold. Read the indexed list, not just the excluded one, and ask whether you’d be happy if a stranger landed on each of these. If the answer is no, that’s a noindex.

Broken internal links. Fix all of them. I’m going to spend the back half of this post telling you that not every warning deserves your time, and I mean it, but this one is different. Internal links are entirely inside your own control. A healthy site is aware of its own inventory and references it regularly. If you made the links, you can fix them, and it reflects on your site’s credibility when you don’t.

So find out why the link broke, set up the redirect, update the reference, whatever it takes. And if the crawl comes back with a hundred of them? Spend another afternoon digging or call in an expert.

Broken external links. These aren’t your fault and they’re still your problem. You linked to a source, that publisher reorganized their blog or let the domain go, and now your post points at nothing. It happens quietly and it happens to everyone, and the older the post, the likelier it is. The same crawl that finds your internal breaks finds these too. Update the link, find a replacement source, or cut the reference.

Pages returning 404 or 500. Especially the ones that used to get traffic. A page that saw steady traffic for years and now throws an error is costing you something every day it sits there. And pages can hold their ranking for a while before keyword tracking tools show the drop, and by then, you’ve lost time.

Redirect chains. A redirect pointing to another redirect pointing to a third URL. You want every old URL landing on its final destination in one step. Every migration I’ve been part of has produced at least a few of these, so if you’ve moved platforms, go look.

Orphaned pages. These are published pages with no internal links leading to them. They’re live and invisible at the same time. Link them from somewhere sensible or take them down, and be purposeful about the decision. If a page is important, make sure it’s linked to from other pages. If a page isn’t important enough to be referenced elsewhere on the site, maybe it shouldn’t exist at all. (This excludes privacy policies, of course!)

Meta descriptions. Not the wording, just the presence. Remember: This is the snippet people will see in their search engine. It’s the first impression of the meat of your page. If you leave them blank, Google writes its own from a guess. Worth knowing: Google often rewrites yours anyway, so this isn’t a lever you fully control. Write them regardless, keep them true, but don’t spend your afternoon tuning them.

Core Web Vitals. Loading, responsiveness, and visual stability. Looking is free and takes a minute, and PageSpeed Insights gives you a number and a color. Knowing the number is worth something all by itself, because that’s what you hand to whoever can do something about it.

What only a person will catch

A crawler can tell you when a page loads, or when an h1 isn’t present. It can’t tell you the page is doing all of its job. These four are manual and they’re worth the time.

Do your forms work? Submit your own forms. Confirm they go through and the notifications go to the right people. If your volume is high and steady, you already know they work. If it’s lumpy, it’s harder to be certain. “Our form has been broken since X” is a conversation I’ve had more than once, and it’s a painful one every time.

Are your scripts installed and firing? Analytics, conversion tracking, whatever you use. A mis-configured or uninstalled tag doesn’t break the site for the user. It does break your ability to learn about how people interact with the site, which is worse in a slower, different way. If you want to track something, the collection mechanism has to be there and it has to be right.

Do your CTAs go where they should? A scheduling link on a landing page or a team page, still live, still booking time on the calendar of someone who left six weeks ago. A chat widget “we’re not here right now” message that’s hardcoded to go to that same calendar link. A gated asset where the form submits, the confirmation fires, but the auto-responder was deleted so the email with the asset never delivers. These are the things that make a visitor just…leave.

Does it hold up on a phone? Not the mobile-friendly score, but on your actual phone. And tablet if you have one. Open your site and try to do the thing you want a customer to do. A common one is a consent banner or popup you can’t dismiss because the close button is off-screen or sitting under something else. On desktop, it’s fine. On a phone, it parks on top of your CTA and keeps it hidden.

Not all errors are created equal

Here’s where audits can go sideways. You run a crawl, get 150+ issues and a health score in the 70s, and the sheer volume becomes the reason nothing gets fixed. It’s intimidating but it’s almost always more manageable than it seemed at first glance. Here’s what I mean.

Take nofollow links. Semrush will show you a count that looks like a catastrophe, and it isn’t separating out the internal ones for you. A big share of that number is usually your own variable and utility links pointing back at your own pages, doing exactly what they were built to do.

The check itself is real and accurate. The segmentation you need to decide whether it’s worth acting on isn’t there, so you supply it. Go look at what those links actually are before anyone panics. Most of the time the answer is that the site is fine.

I recommend sorting by consequence. The fastest way to find consequence is to ask which of these would matter to your leadership team if it stayed broken for a full quarter:

  • Leads stopped arriving and nobody knew
  • We’re invisible in search
  • We can’t measure anything
  • It’s embarrassing in front of a customer

Tools flag by rule, not by consequence, because knowing that depends on what a page is for and the crawler has no idea. Deciding what to ignore is so much of this work.

How often is regularly?

Monthly for the crawl, weekly for the money path.

The crawl is one action. You don’t check for broken links in January and redirect chains in April. You run it once and it hands you the 404s, the chains, the orphans, the dead external links, and the missing meta descriptions all at once. The slow-moving stuff comes along for free, which means the cadence is set by the fastest-decaying thing in the report. On any site that’s actively publishing, that’s monthly.

Weekly is the money path. Submit your own contact form. Click your primary CTAs. Two minutes, and it’s the tier where a few weeks of silence costs you leads instead of tidiness.

Some of it isn’t on a schedule at all. Search Console emails you when it finds something structural, so that check runs itself. Your job is having it set up and reading the email.

Then there’s the cadence that ignores the calendar entirely. A redesign, a migration, a CMS change, a campaign launch. Crawl after any of them, whenever they happen. The worst problems I’ve seen arrived in a single deploy rather than accumulating over months.

All of this scales with how often your site actually changes. If nothing has shipped since March, an April crawl finds what March found. Cadence tracks deploys, not the calendar. Most companies with a marketing team ship something every few weeks, so monthly holds.

The crawl is only half of it. The weeks between crawls are when the fixing happens, worked in the order you sorted by consequence. Not everything gets fixed, and that’s the point of sorting.

Resourcing it

This doesn’t necessarily require a full-time hire, or for somebody on your team to become a search specialist. It requires one person whose job it explicitly is.

Sometimes that’s someone internal with a standing block of time and permission to use it. Sometimes it’s a fractional resource for a few hours a month, which is often the right move when the work is real but nowhere near a full role.

Your website does not need all of your attention all of the time, but something needs to be live, indexable, current, and pointed at the right things at all times. Keep an MVP standing, keep an eye on it, and you never have to explain why the form was broken for a month before anyone noticed.

Where to start

Set up Search Console if you don’t have it. Set up Screaming Frog and run one crawl. Submit your own contact form. That’s an afternoon, and it’ll tell you whether you have a problem or not.

If the crawl comes back alarming and you want a second read on whether it deserves the alarm, I’m happy to take a look.

← All resources