Technical SEO

Find the technical problems that keep a page out of search

Most pages that fail in search do not fail on their content. They fail because something in the plumbing keeps a crawler out, or keeps the page out of the index, and nothing about the copy above it matters until that is fixed. SEOAST checks that layer first and scores it separately.

No signup required to start — 10 audits a day without an account.

The 9 checks behind this

Each one is a check that runs, described by the engine itself. If a check changes, this page changes with it.

  • HTTP status

    http_status

    The status of the final response after redirects. Fails on anything outside the 2xx range, because a URL that does not answer 200 has no document to index; warns on a 2xx that is not 200. Reports not_measurable when the audit was run against supplied HTML rather than a live fetch.

    Fixing it: Gives search engines a document to index at this URL at all.

  • Redirect chain

    redirect_chain

    Every hop followed to reach the page. Fails on a loop, on any hop through plain http, and at 3 or more hops; warns above 1. Each hop costs crawl budget and adds latency for every visitor.

    Fixing it: Cuts latency for every visitor and stops crawl budget being spent on hops.

  • HTTPS

    transport_security

    The scheme of the final URL and whether a Strict-Transport-Security header was returned. Plain http fails; https without HSTS warns, because the first request of a session can still go out in the clear.

    Fixing it: Removes the browser "not secure" warning and satisfies a confirmed ranking signal.

  • robots.txt

    robots_txt

    The origin /robots.txt, parsed to RFC 9309: consecutive user-agent lines share a group, the most specific group wins, and the longest matching pattern decides with Allow winning ties. Fails when the audited path is disallowed for Googlebot; warns when the file is absent or declares no Sitemap. Distinct from the robots meta tag: a disallow here stops the crawl, not just the indexing.

    Fixing it: Lets crawlers read the page, so every other signal on it can be seen.

  • Robots meta directives

    robots_meta

    Directives across meta robots, googlebot, bingbot and googlebot-news tags. A noindex or none directive fails the check outright because it removes the page from search regardless of every other signal; nofollow warns because it strips the page of its outbound crawl value.

    Fixing it: Removes a directive that keeps the page out of search regardless of its content.

  • X-Robots-Tag header

    x_robots_tag

    Indexing directives delivered in the response header rather than the markup, including any bot-name prefix. A noindex or none fails; nofollow warns. This is checked separately from the robots meta tag because the two disagree often and a header-level noindex is invisible in the HTML.

    Fixing it: Removes a header-level block that keeps the page out of the index entirely.

  • Canonical URL

    canonical

    Presence of <link rel="canonical">, whether its href is absolute in the markup, whether it resolves to the audited URL itself, and whether more than one canonical is declared. A missing or conflicting canonical lets parameter and trailing-slash variants compete with the page.

    Fixing it: Consolidates duplicate URL variants onto one address, so ranking signals stop being split.

  • XML sitemap

    sitemap

    Discovery via the robots.txt Sitemap directive then the conventional paths, followed by XML validation. Fails when nothing retrieved parses, or when a file breaks the 50,000 URL or 50 MB protocol limits; warns on relative or cross-host <loc> values, on partial parse failures, and when a valid sitemap does not list the audited page.

    Fixing it: Shortens the delay between publishing a page and it being discovered.

  • Server-rendered content

    render_dependency

    Visible text as a share of the response body, plus inline script share and server-rendered word count. Fails under 60 words alongside a script-heavy document, or below a 2% text ratio; warns below 5%. SEOAST executes no JavaScript, so this measures what a crawler sees before deciding whether to queue a rendered pass.

    Fixing it: Puts the content in the first response, where every crawler reads it, instead of behind a render pass that is neither fast nor guaranteed.

How this works in practice

The three ways a page gets blocked, and why they are different

A robots meta noindex lets the crawler read the page but keeps it out of the index. A robots.txt disallow keeps the crawler out entirely, leaving a URL that can still be listed with no title and no description. An X-Robots-Tag does the first from a response header, where it is invisible in the markup and routinely survives the migration everyone assumed had cleared it. SEOAST checks all three separately, because they fail in opposite directions and the fix for one is not the fix for another.

A page that cannot be indexed does not get a good score

Weighted averaging alone lets a perfect page with a noindex land in the seventies, which is a number that gets a client relaxed about the wrong thing. Four indexability failures cap the result outright instead. The uncapped score is shown alongside, so a report can say "82 on the page itself, held at 35 because the page is noindex" rather than showing 35 with no explanation.

It reads what your server returned, not what a browser assembles

No headless browser and no JavaScript execution — the same thing a crawler sees before it decides whether the page is worth queueing for a rendered pass. One of the checks measures exactly that gap: if the copy only exists after hydration, the report says so instead of quietly grading an empty shell.

What this will not do

One URL per audit. There is no site crawl and no rank tracking, and the report says so at the top of every run.

Questions

Does this crawl my whole site?

No. One page per audit, plus that origin’s robots.txt, sitemap and llms.txt. Every report carries a coverage line stating exactly what was retrieved, and nothing that was not fetched is ever reported as passing.

Why did my page score badly when the markup looks fine?

Most often a cap. Check the indexability section first: a non-200 status, a noindex in the meta tag or the X-Robots-Tag header, or a robots.txt rule blocking the URL will each hold the score down regardless of how good everything else is.

Do I need an account?

No. Audits run without signup, up to a daily limit. An API key raises that limit.

  • AI-search readiness audit

    Check whether your page can be crawled, parsed and understood without JavaScript. SEOAST measures the foundational signals — crawl access, server-rendered content, structured data, heading structure and llms.txt — that machine readers depend on.

  • Local SEO audit

    Audit a local business page for the signals map results depend on: LocalBusiness schema, NAP consistency, geo coordinates, opening hours, a maps link and linked profiles.

Audit your page

No signup required to start.