HTTP Status Code.
Non-200 status codes tell search engines your page has problems
What does this check test?
This check verifies that pages intended to be indexed return an HTTP 200 status code, that deleted or moved pages return proper 301 (permanent redirect) or 410 (gone) status codes, and that error pages return 404 (not found) rather than a soft 404 (a custom error page that returns 200). Redirect chains (301 to 301 to 301) should be minimized — ideally no more than one redirect hop. Server errors (5xx) indicate infrastructure problems that prevent indexing entirely.
Why does it matter?
Search engine crawlers rely heavily on HTTP status codes to understand how to treat each URL. A 200 tells Googlebot the page exists and should be indexed. A 301 transfers ranking authority ("link juice") to the new URL. A 404 tells Google to eventually remove the URL from its index. A soft 404 — where an error page returns 200 — confuses Google into trying to index your error page, wasting crawl budget and potentially showing error pages in search results. Redirect chains slow down crawling and dilute link equity with each hop. Consistent, correct status codes are foundational to a healthy crawl.
Who is affected?
Back-end developers configuring server responses and routing, DevOps engineers managing redirects and server health, front-end developers implementing client-side routing that must align with server responses, and SEO specialists auditing crawl reports for status code anomalies.
Where does this apply?
Every URL that Googlebot may encounter: pages linked from your sitemap, pages with inbound links from other sites, URLs from old site versions that should redirect, API endpoints that might be accidentally exposed to crawlers, and dynamically generated URLs from search or filter parameters. Pay special attention to URL migrations, domain changes, and CMS slug updates.
How to fix it
// next.config.js
module.exports = {
async redirects() {
return [
{
source: '/old-path',
destination: '/new-path',
permanent: true, // 301 redirect
},
];
},
}; // app/blog/[slug]/page.tsx
import { notFound } from 'next/navigation';
export default async function Page({ params }) {
const post = await getPost(params.slug);
if (!post) notFound(); // returns 404, not a soft 404
return <Article post={post} />;
} References
- Google — HTTP status codes and crawling
- Google — Soft 404 errors
- web.dev — Page has successful HTTP status code
AppVet checks HTTP Status Code automatically
Run a free seo scan and get a full report with actionable fixes, including a Fix with AI prompt you can paste into any coding tool.
Run Audit