Skip to content
Oh Dear

The client finds the 404

Broken page and mixed content detection.

The client, or their customer, finds the 404. You hear about it after. This is a daily crawl of your pages and their mixed content, not an every-minute uptime check.

10-day free trial · No credit card required · Every feature included

Daily crawl Every 24 hours
  • Bitmovin
  • HBO Nordic
  • Obsidian
  • Laravel
  • Fathom Analytics
  • PHP 8
  • Stanford University
  • Takeaway.com
  • IGN
  • VRT NWS
  • spatie

The agency portfolio

The client found the 404. You did not.

You manage a lot of client sites. You do not click through every inner URL every week, and a 200 on the homepage says nothing about the rest of the site.

A Friday deploy lands. A CMS slug changes and the redirect never gets written, so a product URL 404s. A stylesheet still loads over HTTP on an HTTPS page. Uptime monitoring stays green, because the public URL still answers. The person who notices is the client, or their customer, and you get the email afterwards.

That is what this check is for. Oh Dear crawls the site daily and reports the broken page or the mixed content, so you can fix it before that email arrives.

Agencies live this loop: unrelated client sites, different CMS setups, and several people who can ship a change without telling you. You are on the hook for the site without sitting in the CMS all day. This is how Oh Dear watches those inner URLs when you cannot.

Casey Sprague
Oh Dear detected an issue that our other uptime monitor did not!

Casey Sprague, CTO at thera-LINK

Uptime stayed green. The crawl is what surfaced it.

Four different questions

What this check sees, and what it does not.

A homepage can return 200 while an inner CMS URL 404s. A host can ping while a stylesheet still loads over HTTP. A cron can check in while a product URL is dead.

This check

Daily crawl

Pages and their mixed content, crawled once every 24 hours.

A different check

Ping

Ping monitoring is ICMP: did the host answer at all.

What it checks

  • Pages that are not HTTP/2xx or HTTP/3xx.
  • Anything from HTTP/200 to HTTP/399 counts as OK. A URL that never answers is retried and then skipped, not reported as broken.
  • Broken internal pages on the same domain by default. External links are optional via Include external links.
  • Mixed content: HTTPS pages loading images, scripts, or stylesheets over insecure HTTP.
  • Optional resource types in settings: links, images, scripts, stylesheets, Open Graph images.

What it does not

This is not a synthetic checkout. Authenticated flows and JavaScript-rendered pages are out of scope, and login walls belong with AI monitoring.

Operational ownership

Send the find to the person who owns the fix.

A broken page on client A is not the same person's problem as mixed content on client B. Oh Dear sends the find to the channel that team already uses, configured per site.

If the same broken links or mixed content show up on later crawls, you get a reminder after 7 days instead of a daily repeat. A later scan that finds mixed content resolved sends a recovery message.

Slack
Email
Webhook
Explore notifications and routing

Agency first

Who needs this check most.

Agencies need it first. You launched the client site and no longer click through it, and the client can change a URL without you in the room.

Many client sites. One daily habit you do not have to remember.

Agencies already run dozens of unrelated sites in Oh Dear. This check sits next to the rest of the website health monitoring on each of them, so a broken page surfaces without anyone scheduling a crawl.

It is not a paste-a-URL freelancer tool or a self-hosted crawler you babysit. It runs on the sites you are already responsible for.

SaaS teams need it on what they ship.

The marketing site, the docs, the pages nobody opens after launch. A 200 on the homepage can hide a 404 in the docs, and a mixed-content stylesheet can sit on a page you stopped looking at.

A desktop crawler you run when someone remembers will find broken pages too, if someone remembers. Oh Dear runs every 24 hours.

No feature tiers

Every check.
Every plan.

Broken page and mixed content detection is included on every plan. You pay for the number of sites, not per feature, so you are not stacking a second broken-link vendor on top of your monitoring.

Start with everything on.

One broken page on one client site should not mean a new product and a new invoice.


  • Broken page and mixed content detection included
  • Every feature on every plan
  • Pay for the number of sites, not per feature
  • Same site, same bill
Start a free trial

10-day free trial. No credit card.

For the technically curious

How the crawl actually works.

A scheduled crawl, not a live probe, and no replacement for uptime monitoring.

  • Results. Oh Dear reports pages that are not HTTP/2xx or HTTP/3xx. Anything from HTTP/200 to HTTP/399 counts as OK. A page that never answers is retried and then left out of the report rather than flagged as broken, so a rate limiter or a transient blip does not bury the real 404s.
  • Scope. By default only broken internal pages on the same domain. Subdomains count as external. External links are optional via Include external links.
  • Mixed content. HTTPS pages are crawled for resources loaded over insecure HTTP. A later scan that finds it resolved sends a recovery message.
  • Reminders. If the same broken links or mixed content appear on later crawls, Oh Dear sends a reminder after 7 days.
  • Limits. The crawl stops at 20 minutes or 5,000 pages, whichever comes first, and reads the first 512KB of uncompressed content. JavaScript is not rendered. For sites over 5,000 pages, add the site several times with different starting URLs. Crawler speed is tunable per monitor.
  • robots.txt. Respected by default and can be toggled off. Use User-agent: OhDear. Disallow rules work, and a site-wide Disallow: / yields zero pages scanned. A noindex meta tag or x-robots-tag skips that page.
  • Logs. The User-Agent in your logs is OhDear.app (+https://ohdear.app/docs/features/broken-links-detection).
  • Exclusions. Per-monitor ignored URL patterns support wildcards, and a separate do-not-crawl list never requests those URLs. Noisy social-share URLs are excluded globally.
  • 429 responses. A 429 during the crawl shows up on the report. Allowlist our IPs or slow the crawler down.

Really into the nitty gritty details?

Before the first crawl

Questions about the daily crawl.

What the daily crawl reports, where it looks, and where this check ends.

What is broken page and mixed content detection?

A daily crawl of your pages. Oh Dear reports pages that do not answer with HTTP/2xx or HTTP/3xx, and HTTP resources loaded on HTTPS pages.

What is broken link monitoring?

It is the same thing under a different name. Oh Dear follows the links on your site, then reports broken internal pages (external links are optional) and mixed content on HTTPS pages.

Does Oh Dear find broken links automatically?

Yes. The crawl runs every 24 hours, so you never have to remember to scan. If the same broken links or mixed content are still there on a later crawl, Oh Dear sends a reminder after 7 days rather than repeating itself daily.

Will Oh Dear check all of my site for broken links and errors?

Up to a point. Each crawl stops at 5,000 pages or 20 minutes, whichever comes first, and it reads the first 512KB of each page. JavaScript is not rendered. Sites larger than 5,000 pages can be added several times with different starting URLs.

What is mixed content and does Oh Dear detect it?

Mixed content is an HTTPS page loading a resource over insecure HTTP, which browsers may block or flag. Yes, Oh Dear crawls HTTPS pages and flags images, scripts, and stylesheets loaded over HTTP. When a later scan finds it resolved, you get a recovery message.

Is there a mixed content checker in Oh Dear?

Yes, and it is not a separate one-off tool: mixed content reporting runs inside this check. Details in mixed content reporting.

Can I scan a website for broken links without running a desktop crawler?

Yes. This is a daily crawl on a site you already monitor, not a paste-a-URL checker. A desktop crawler finds broken links too, if someone remembers to run it. Oh Dear runs every 24 hours.

How is this different from website uptime monitoring?

Website uptime monitoring checks whether a public URL responds, every minute. This is a daily crawl of the pages behind it. A homepage can return 200 while an inner CMS URL 404s.

How is this different from ping monitoring?

Ping monitoring is ICMP: did the host answer. This check asks whether the crawl found a broken page or mixed content. A host can ping happily while a stylesheet still loads over HTTP on an HTTPS page.

Does this test a checkout or login?

No. Authenticated flows and JavaScript-rendered pages are not part of this crawl. Login walls belong with AI monitoring.

Does Oh Dear render JavaScript?

No. The crawl reads the first 512KB of uncompressed content and stops at 5,000 pages or 20 minutes.

What does the Oh Dear crawler look like in my logs?

The User-Agent is OhDear.app (+https://ohdear.app/docs/features/broken-links-detection). More in what is the Oh Dear crawler doing in my logs?

Can I exclude URLs from broken links checks?

Yes. Use per-monitor ignored URL patterns with wildcards, plus a separate do-not-crawl list that never requests those URLs at all. Noisy social-share URLs are already excluded globally. See can I exclude URLs from broken links checks?

Do you respect robots.txt?

Yes by default, and you can switch that off. Use User-agent: OhDear; disallow rules work, and a site-wide Disallow: / yields zero pages scanned. A noindex meta tag or x-robots-tag skips that page. See can I add Oh Dear to my robots.txt?

Can Google Search Console or Google Analytics find broken links?

Only after the damage is done. Search Console reports 404s once Googlebot has already hit them, and Analytics only shows traffic to error pages. Neither crawls your site looking for broken links.

Do broken links affect SEO?

Yes, indirectly. They waste crawl budget, leak link equity, and signal neglect. The bigger cost is usually the visitor who hit the dead end.

How do I fix broken links after switching to HTTPS?

Crawl the site, find every link and resource still pointing at http://, then update or redirect each one. Oh Dear's crawler plus mixed-content detection automates the finding, and re-checks on every crawl so regressions get caught.

Can Oh Dear check the URLs in my sitemap for broken links?

Yes. Combined with sitemap monitoring, Oh Dear verifies your sitemap and visits the pages it lists. The two checks stay separate, so you can see which one found what.

Which notification channels does Oh Dear support?

Email, SMS, Slack, Microsoft Teams, Discord, Google Chat, Telegram, Pushover, ntfy, Opsgenie, PagerDuty, and webhooks, configured per site on notifications. Slack cannot rerun this crawl.

Can agencies monitor client sites for broken pages?

Yes, and that is who it is built for: sites you launched and no longer click through. Add each client site, send finds to whoever owns the fix, and keep it on the same plan as the rest of your monitoring. Start at web agencies.

Is broken page and mixed content detection included in every plan?

Yes. Every feature is on every plan. You pay for the number of sites, not per feature.

See all other FAQ items

Get started

Start monitoring the pages you're already on the hook for.

A 200 on the homepage is not the inner URL. A daily crawl that reports the 404 and the HTTP resource on HTTPS. No credit card.