Skip to content
siterank.info

Product

A technical SEO audit that shows its working

Twelve rules over titles, canonicals, headings, links, content and images — each finding traceable to a page and a value, reported as a status band rather than a grade.

Start free How it is measured

Most WordPress SEO audits end in a number: 68 out of 100, amber, "needs work". The number is the problem. It is assembled from weights nobody published, it moves for reasons nobody can reconstruct, and it cannot tell you which page to open first. SiteRank AI's audit reports findings instead — each one attached to a specific URL and a specific observed value — and summarises them as a status band with the counts it came from.

The audit runs inside your install. It reads your published content through WordPress itself, makes no outbound request, and needs no API key.

The rules

Twelve rules ship in the SEO set. Each has a stable identifier, an evidence tier, a severity, and a stated fix path.

Rule What it looks for Tier Severity
seo.title.missing Indexable pages with no title element Official provider guidance High
seo.title.duplicate Groups of indexable pages sharing one title Official provider guidance Medium
seo.title.length Titles likely to be truncated in results, or very short Official provider guidance Low / info
seo.meta_description.missing Pages with no meta description Official provider guidance Medium
seo.canonical.conflict A canonical URL pointing at a different page Official provider guidance High, or critical cross-host
seo.heading.structure Missing, skipped or duplicated heading levels Established standard Medium / low
seo.content.thin Pages with very little readable text Emerging practice Low
seo.links.unresolved_internal Internal links that resolve to no known content Established standard Medium
seo.links.insecure_internal Internal links written as http on an https site Established standard Medium
seo.links.orphan Pages with no in-content internal links pointing at them Official provider guidance Medium
seo.links.weak_inbound Substantial pages with very few inbound internal links Official provider guidance Low
seo.images.missing_alt Images with no alt attribute at all Established standard Medium

Titles

A page with no title element cannot be represented properly in a result list or a link preview, so a missing title is a high-severity finding. Duplicate titles are reported as groups rather than as isolated pages, because the fix is a decision about a set: which of these five pages is the one that should win this phrasing. Some duplication is legitimate — paginated archives, variant products — so the finding asks you to review the group, not to rename everything.

Title length is deliberately the mildest of the three. Google shortens long titles for display; there is no official character limit and no penalty for exceeding one. SiteRank AI flags titles past 65 characters as likely to be truncated, and titles under 15 characters as very short, and calls both what they are: a legibility observation, not a ranking problem.

Meta descriptions

A missing description is not an error. Search engines generate a snippet from the page when none is supplied, and often prefer their own. The reason to write one is control over how the page is summarised — in a result list, and in generative answers that quote a snippet. The rule is scored at medium severity because the opportunity is real, and it is worded so nobody reads it as a defect.

Canonical conflicts

A canonical tag pointing somewhere other than the page itself is a deliberate instruction to exclude the page from results in favour of another URL. That is exactly correct for a genuine duplicate and a serious problem otherwise, which is why the rule cannot be evaluated by pattern alone. Same-host conflicts are raised as high; a canonical pointing at a different host is raised as critical, because it hands the page to another domain and is almost never intended in WordPress.

Heading structure

Headings are the document outline. Screen-reader users navigate by them and machine readers use them to work out what each section covers. The rule reports missing top-level headings, skipped levels and duplicated ones. It is an established-standard check, grounded in accessibility guidance rather than in anybody's ranking theory, and it also feeds the passage-level work described on the GEO and AI readiness page.

Thin content

Pages with very little readable text are flagged at low severity and at the EMERGING PRACTICE tier, because word count is not a ranking factor and there is no target length. A contact page or a gallery is supposed to be short. The finding exists to surface pages that were meant to inform and do not.

Two safeguards keep this rule honest. Boilerplate — navigation, header, footer, sidebars, scripts, forms — is stripped before counting, because counting it inflates every page equally. And when a page builder is detected, the extraction method is recorded as unreliable and the rule is skipped entirely for that page, since reporting "thin content" for a rich builder layout is a false positive that destroys trust in the whole report.

Four rules read the internal link graph, which is built from links inside page content only.

Unresolved internal links point at URLs on your own site that match no published page found in the scan. Some are genuinely broken; some resolve through a redirect or a rewrite rule the check cannot see. The finding says so, and asks you to verify before changing anything.

Insecure internal links are http links on an https site. They cost a redirect hop, can trigger a mixed-content warning, and make the site look inconsistent to a crawler deciding which URL is canonical.

Orphan pages have nothing in any page's content linking to them. Menu links are not counted, and the finding says that explicitly — a page reachable only from the main menu is discoverable by a reader but carries no in-content signal at all.

Weak inbound linking flags substantial pages (roughly 300 words or more) with very few inbound internal links. The threshold is computed from your own site's average rather than from a fixed target, because the right number of internal links is a property of a site's size and structure, not a universal constant.

Image alt text

Alt text is what a screen-reader user hears in place of an image, and it is the only part of an image a text-only reader can use. The rule flags images with no alt attribute at all. It does not flag an empty alt="", which is the correct markup for a decorative image, and it does not judge the wording of existing alt text.

How the status band is computed

There is no composite score. Each domain reports one of four bands, derived from severity counts against the number of documents scanned:

density = ( high_count * 5.0 + medium_count * 2.0 ) / documents

critical         if any critical finding exists
critical         if a high-severity finding exists and density >= 1.0
needs_attention  if density >= 0.25
good             otherwise
not_measured     if no documents were scanned

Two properties matter here. Density is per-document, so a 5,000-page site is not marked critical simply for having more pages than a five-page one. And not measured is a real state, distinct from good — a check that did not run says so rather than defaulting to a pass.

Only findings at scoring evidence tiers reach this calculation. EXPERIMENTAL and HYPOTHESIS findings are excluded from status by the query itself, so a rule at those tiers can inform you without ever moving a band.

What this audit does not claim

  • It is not a ranking prediction. None of these rules is a ranking factor, and none is presented as one. They are hygiene checks against published guidance and settled standards.
  • It does not crawl your live site as a search engine would. It reads your content corpus from WordPress. Server-level behaviour — response codes, redirects, rendering — is outside its evidence, except where the plugin checks a specific surface such as robots.txt.
  • It does not fix anything on its own. Every finding becomes a recommendation with a state (open, reviewed, ignored, resolved) and a stated fix path. Changes that alter site-visible output are shown as a diff and applied only when you act.
  • It does not fight your SEO plugin. Yoast SEO, Rank Math, All in One SEO, SEOPress, The SEO Framework and Slim SEO are detected, and where one of them already owns a title, description or canonical, the finding tells you which tool to fix it in.

Who it is for

Anyone maintaining a WordPress site who wants a list of concrete, checkable problems rather than a grade — and particularly anyone who will have to defend the list to a client or a manager. Every row expands into the URL and the value that produced it.

Official sources & further reading

Frequently asked questions

A page in my main menu is reported as orphaned. Is that wrong?

No — that is the rule behaving as described. The internal link graph is built from links inside page content only, so a page reachable solely from the navigation has no in-content link pointing at it and is reported as an orphan. Whether that matters is your call: the finding says the page carries no contextual link from any related piece of content, which is a different thing from being unreachable. If it is fine as it stands, mark the recommendation ignored and it will stop asking.

Does the audit work on sites built with a page builder?

Mostly, with one deliberate exception. When a page builder is detected, the extraction method is recorded as unreliable and the thin-content rule is skipped for that page, because reporting "thin content" on a rich builder layout is a false positive that would undermine trust in every other row. The remaining rules still run, and where a value genuinely cannot be extracted the check records that it was not measured rather than assuming a pass.

I fixed a dozen findings and the band did not move. Why not?

Because the band is a density calculation, not a running total. It weighs high and medium findings against the number of documents scanned, so on a large site a dozen fixes may not cross a threshold even though the report is genuinely better. Read the counts rather than the band — the finding lists shrink immediately, and a recommendation whose underlying condition has gone is auto-resolved on the next scan. A band that jumped for twelve fixes across five thousand pages would be a more excitable instrument, not a more useful one.

My client wants one number out of ten. What do I give them instead?

Give them the band, the counts behind it, and the ability to open any row. A grade would have to encode somebody's private opinion about how a missing description compares to a canonical pointing at another domain, and a client who asks how the number was built deserves a real answer. In practice the counts survive the meeting better: "nine pages with a cross-host canonical" is a task list, and "68 out of 100" is a mood.

How often should I re-run it?

After content or template changes, and otherwise on whatever cadence your publishing schedule justifies. There is no interval the audit needs in order to stay valid — each run reads the current state of your corpus rather than depending on the previous one. Re-scanning is also how recommendations close, since a finding whose condition is gone is auto-resolved when the next scan confirms it.

Analyse your own site

The audit, AI readiness and topic analysis run on your own installation with no API key.

Create a free account