Every check Wrendex runs, in 27 categories

The full catalog of technical SEO checks Wrendex runs on every audit. Browse by category, drill into any individual check, and see the synthetic before/after we use to validate it. Every check ships on every plan - no asterisks, no add-ons.

Jump to a category

Title (5 checks)

CheckDescriptionSeverity
Page title missing
TITLE_MISSING
The page has no <title> tag. Search engines fall back to the URL or a fragment of body text, which hurts click-through. error
Title too long
TITLE_TOO_LONG
Titles wider than what Google shows (~580px on desktop) are truncated in search results, hiding the part that converts. Truncation depends on the rendered width of the characters, not just their count. warning
Title too short
TITLE_TOO_SHORT
Very short titles miss ranking-relevant keywords and look thin in SERP listings. notice
Multiple title tags
TITLE_MULTIPLE
More than one <title> tag was found. Browsers and crawlers pick one inconsistently. warning
Duplicate title across pages
DUPLICATE_TITLE
Two or more pages share the same title, making them compete in search results. warning

Back to categories

Meta Description (5 checks)

CheckDescriptionSeverity
Meta description missing
META_DESCRIPTION_MISSING
Without a meta description, search engines auto-generate a snippet, which is rarely flattering for click-through. warning
Meta description too long
META_DESCRIPTION_TOO_LONG
Descriptions wider than what Google shows (~985px on desktop) get truncated in SERP snippets, losing your final call to action. Truncation depends on the rendered width of the characters, not just their count. notice
Meta description too short
META_DESCRIPTION_TOO_SHORT
Very short descriptions waste prime SERP real estate and miss keywords. notice
Multiple meta descriptions
META_DESCRIPTION_MULTIPLE
More than one meta description tag is present; crawlers pick one unpredictably. warning
Duplicate meta description
DUPLICATE_META_DESCRIPTION
Multiple pages share the same meta description, weakening relevance signals. notice

Back to categories

Headings (3 checks)

CheckDescriptionSeverity
H1 missing
H1_MISSING
The page has no H1. Crawlers and screen readers rely on it as the primary topic signal. warning
Multiple H1 tags
H1_MULTIPLE
More than one H1 dilutes the primary topic signal and confuses screen readers. notice
Duplicate H1 across pages
DUPLICATE_H1
Multiple pages share the same H1, suggesting overlapping topics or templating gaps. notice

Back to categories

HTTP Status (6 checks)

CheckDescriptionSeverity
404 Not Found
HTTP_404
The page returns 404. Search engines drop it from the index and inbound links waste their authority. error
403 Forbidden
HTTP_403
The server refused the request. Crawlers and users alike see a wall instead of content. error
409 Conflict
HTTP_409
The server reports the request conflicts with current state. Often a deployment or data race issue. error
4xx client error
HTTP_4XX
The page returned a 4xx response other than 403/404/409. The URL is unreachable for crawlers. error
500 Internal Server Error
HTTP_500
The server crashed handling this URL. Repeated 500s deindex the page over time. error
5xx server error
HTTP_5XX
The page returned a 5xx response. Search engines treat repeated 5xx as a removal signal. error

Back to categories

Indexability (6 checks)

CheckDescriptionSeverity
Page is noindex
NOINDEX_PAGE
The page sets robots noindex. Search engines will not include it in results. warning
Page-level nofollow
NOFOLLOW_PAGE
All outbound links on this page are flagged nofollow at the page level, breaking internal link equity. notice
noindex, follow
NOINDEX_FOLLOW
The page is noindex but follow. Often intentional, occasionally a leftover that hides ranking content. notice
noindex, nofollow
NOINDEX_NOFOLLOW
The page blocks both indexing and link following. Inbound link authority is wasted. warning
Conflicting noindex signals
NOINDEX_CONFLICT
Different sources (meta robots, X-Robots-Tag, sitemap) disagree on whether the page should be indexed. warning
Conflicting nofollow signals
NOFOLLOW_CONFLICT
Meta robots and X-Robots-Tag disagree on follow / nofollow. notice

Back to categories

Markup (2 checks)

CheckDescriptionSeverity
Invalid lang attribute
INVALID_LANG
<html lang> is missing or not a valid BCP-47 tag. Search engines and screen readers cannot determine the page language. notice
Missing viewport meta
MISSING_VIEWPORT
No <meta name="viewport"> tag. Mobile rendering will be broken and Google flags the page as non-mobile-friendly. warning

Back to categories

Content (1 checks)

CheckDescriptionSeverity
Thin content
LOW_WORD_COUNT
The page has very few words. Thin content rarely ranks and may be classified as low quality. notice

Back to categories

Performance (4 checks)

CheckDescriptionSeverity
Slow page response
SLOW_PAGE
Total response time is high. Slow pages cost rankings and conversions. warning
Oversized HTML
OVERSIZED_HTML
The HTML payload is unusually large, slowing parsing and hurting Core Web Vitals. notice
No HTTP compression
NO_COMPRESSION
The response is not gzip / br compressed, wasting bandwidth and slowing time-to-first-byte for clients. warning
Slow time-to-first-byte
SLOW_TTFB
TTFB is high, indicating server or origin latency. This drags every other metric. warning

Back to categories

CheckDescriptionSeverity
No outgoing internal links
NO_OUTGOING_LINKS
The page links to nothing else on the site. Crawlers cannot use it as a hub. notice
Double-slash in URL
DOUBLE_SLASH_URL
The URL contains a doubled slash, often produced by a templating bug, and can split crawl signals. notice
Too many URL parameters
TOO_MANY_URL_PARAMS
The URL stacks many query parameters, which can fragment crawl coverage and confuse canonicalisation. notice
Orphan page
ORPHAN_PAGE
No internal page links here. Search engines reach it only via the sitemap, with weak ranking signals. warning
Links to broken page
LINKS_TO_BROKEN
This page links to a 4xx / 5xx URL on the site. Users hit dead ends and equity is wasted. error
Links to redirected page
LINKS_TO_REDIRECT_INDEXABLE
The link target redirects to an indexable page. Working but wastes a hop and a little crawl budget. notice
Links to non-indexable redirect
LINKS_TO_REDIRECT_NON_INDEXABLE
The link redirects to a URL the crawler cannot index. Equity is lost. warning
Links to broken non-indexable
LINKS_TO_BROKEN_NON_INDEXABLE
The link target is both broken and non-indexable, so neither users nor crawlers can use it. warning
Only nofollow incoming links
NOFOLLOW_ONLY_INCOMING
Every internal link to this page is nofollow. Search engines do not pass authority through. warning
Mixed follow / nofollow incoming
MIXED_FOLLOW_INCOMING
Internal links to this page mix follow and nofollow, which is usually a templating accident. notice
Nofollow on internal link
NOFOLLOW_OUTGOING_INTERNAL
An internal link is marked rel=nofollow, blocking authority flow on your own site. notice
Only one dofollow incoming
SINGLE_DOFOLLOW_INCOMING
Just one internal page passes equity here. Single points of failure for crawl and rank. notice
Redirect with no incoming
REDIRECT_NO_INCOMING
A redirect endpoint with no inbound internal links is dead weight in the link graph. notice

Back to categories

Images (5 checks)

CheckDescriptionSeverity
Missing alt text
MISSING_ALT_TEXT
An image has no alt attribute. Screen readers and image search cannot describe it. warning
Broken image
BROKEN_IMAGE
The image URL returns an error. Users see a placeholder, search engines drop it from image results. error
Oversized image
OVERSIZED_IMAGE
The image file is much larger than its rendered size, slowing the page. warning
Image URL redirects
IMAGE_REDIRECT
The image src redirects, costing an extra round-trip on every load. notice
Missing image dimensions
MISSING_IMAGE_DIMENSIONS
The image has no width / height attributes, which causes layout shift (bad CLS). notice

Back to categories

Social (3 checks)

CheckDescriptionSeverity
Missing Open Graph tags
MISSING_OG_TAGS
The page is missing og:title / og:description / og:image. Social shares fall back to ugly auto-snippets. notice
og:url and canonical disagree
OG_CANONICAL_MISMATCH
og:url does not match the canonical URL. Shares may land on the wrong variant. notice
Missing Twitter Card
MISSING_TWITTER_CARD
twitter:card is absent. Twitter / X falls back to a plain link preview. notice

Back to categories

Redirects (10 checks)

CheckDescriptionSeverity
302 temporary redirect
REDIRECT_302
The URL serves a 302. Crawlers may keep crawling the source if they expect it to come back. notice
3xx redirect
REDIRECT_3XX
The URL returns a non-301/302 redirect status. Browsers follow it but crawlers handle it inconsistently. notice
Broken redirect
BROKEN_REDIRECT
The redirect target is a 4xx / 5xx response. Users land on an error. error
Redirect chain
REDIRECT_CHAIN
More than one redirect hop before the final URL. Wastes crawl budget and slows users. notice
Redirect chain too long
REDIRECT_CHAIN_TOO_LONG
The redirect chain has too many hops. Some crawlers stop following before the destination. warning
Redirect loop
REDIRECT_LOOP
The redirect chain points back to itself. Browsers and crawlers give up. error
HTTPS redirects to HTTP
HTTPS_TO_HTTP_REDIRECT
An HTTPS URL redirects to HTTP. This is a security and SEO regression. error
HTTP to HTTPS redirect
HTTP_TO_HTTPS_REDIRECT
An HTTP URL redirects to HTTPS. Expected, but every internal link should target HTTPS directly to skip the hop. notice
Meta refresh redirect
META_REFRESH_REDIRECT
The page uses a <meta http-equiv="refresh"> tag. Crawlers may treat it as a soft 200 instead of a redirect. warning
Request timed out
TIMEOUT
The crawl request timed out. The URL is effectively unreachable for crawlers and slow users. error

Back to categories

Security (5 checks)

CheckDescriptionSeverity
HTTPS page links to HTTP
HTTPS_LINKS_TO_HTTP
An HTTPS page contains a plain HTTP link. Triggers mixed-content warnings on click-through. warning
HTTP page links to HTTPS
HTTP_LINKS_TO_HTTPS
An HTTP page links to HTTPS. Usually fine, but suggests the page itself should also be HTTPS. notice
HTTPS page loads HTTP CSS
HTTPS_CSS_TO_HTTP
Stylesheet loaded over HTTP from an HTTPS page. Browsers block it as mixed content. error
HTTPS page loads HTTP JS
HTTPS_JS_TO_HTTP
Script loaded over HTTP from an HTTPS page. Blocked as mixed content; the page may break. error
HTTPS page loads HTTP image
HTTPS_IMG_TO_HTTP
Image loaded over HTTP from an HTTPS page. Causes mixed-content warnings. warning

Back to categories

Hreflang (10 checks)

CheckDescriptionSeverity
Invalid hreflang code
INVALID_HREFLANG
An hreflang attribute has an invalid language / region code. warning
hreflang language mismatch
HREFLANG_LANG_MISMATCH
The hreflang language does not match the actual page language. notice
Missing self-referential hreflang
HREFLANG_MISSING_SELF_REF
An hreflang cluster must include a self-reference for each locale. This page omits its own. notice
Missing x-default hreflang
HREFLANG_MISSING_X_DEFAULT
No x-default fallback is defined for users whose locale does not match any listed variant. notice
hreflang target broken
HREFLANG_POINTS_TO_BROKEN
An hreflang entry points at a 4xx / 5xx URL. error
hreflang target redirects
HREFLANG_POINTS_TO_REDIRECT
An hreflang entry redirects to another URL. Search engines may discount it. notice
Missing reciprocal hreflang
HREFLANG_MISSING_RECIPROCAL
Page A links to page B via hreflang, but B does not link back. Without reciprocity, the cluster is ignored. warning
hreflang target non-canonical
HREFLANG_POINTS_TO_NON_CANONICAL
An hreflang entry points at a URL whose canonical is something else. notice
Multiple languages on one page
HREFLANG_MULTI_LANG_SINGLE_PAGE
The page declares hreflang for multiple language codes pointing at itself. notice
One language across many pages
HREFLANG_MULTI_PAGE_SINGLE_LANG
Several pages claim to be the canonical for the same language code. notice

Back to categories

Canonical (8 checks)

CheckDescriptionSeverity
Canonical points to 4xx
CANONICAL_POINTS_TO_4XX
The canonical URL returns a 4xx error. The page has no valid canonical. error
Canonical points to 5xx
CANONICAL_POINTS_TO_5XX
The canonical URL returns a 5xx error. error
Canonical points to redirect
CANONICAL_POINTS_TO_REDIRECT
The canonical URL redirects. Search engines may follow it but the signal is weakened. warning
Canonical has no incoming links
CANONICAL_NO_INCOMING_LINKS
The canonical URL is not linked anywhere internally, suggesting the cluster is fragmented. notice
Canonical http to https
CANONICAL_HTTP_TO_HTTPS
The page is HTTP but its canonical is HTTPS. Expected during a migration; should not persist. notice
Canonical https to http
CANONICAL_HTTPS_TO_HTTP
The page is HTTPS but the canonical is HTTP. Search engines may demote the page. error
Non-canonical declared as canonical
NON_CANONICAL_AS_CANONICAL
The page sets itself as canonical but other pages declare a different canonical for the same content. warning
Duplicates without canonical
DUPLICATES_NO_CANONICAL
Multiple pages share the same content but none declare a canonical. warning

Back to categories

Duplicates (1 checks)

CheckDescriptionSeverity
Identical content
IDENTICAL_CONTENT
Two or more pages serve identical body content. warning

Back to categories

CSS (3 checks)

CheckDescriptionSeverity
Broken stylesheet
BROKEN_CSS
A linked stylesheet returns an error response. The page renders without its styles. error
Oversized stylesheet
OVERSIZED_CSS
A stylesheet is unusually large, slowing page render. warning
Stylesheet redirects
REDIRECTED_CSS
A linked stylesheet URL redirects, costing an extra round-trip. notice

Back to categories

JS (3 checks)

CheckDescriptionSeverity
Broken script
BROKEN_JS
A linked script returns an error. The page may behave incorrectly. error
Oversized script
OVERSIZED_JS
A script bundle is unusually large, hurting time-to-interactive. warning
Script redirects
REDIRECTED_JS
A script URL redirects, adding a round-trip on every page load. notice

Back to categories

CheckDescriptionSeverity
External link redirects
EXTERNAL_LINK_3XX
An outbound external link redirects, costing user time. notice
External link broken (4xx)
EXTERNAL_LINK_4XX
An outbound external link returns a 4xx error. warning
External link blocked
EXTERNAL_LINK_BLOCKED
The external host blocked our crawler. Could be intentional bot blocking. notice
External link 5xx
EXTERNAL_LINK_5XX
An outbound external link returned a 5xx error. warning
External link timeout
EXTERNAL_LINK_TIMEOUT
The external link timed out during the crawl. notice
External redirect to 5xx
EXTERNAL_LINK_5XX_REDIRECT
The external link redirects to a server-error response. warning

Back to categories

Render-Blocking (2 checks)

CheckDescriptionSeverity
Render-blocking CSS
RENDER_BLOCKING_CSS
A stylesheet blocks first paint. Hurts Largest Contentful Paint and perceived speed. warning
Render-blocking JS
RENDER_BLOCKING_JS
A script in the <head> blocks rendering until parsed and executed. warning

Back to categories

Robots.txt (1 checks)

CheckDescriptionSeverity
robots.txt inaccessible
ROBOTS_TXT_INACCESSIBLE
robots.txt could not be fetched. Crawlers may treat the entire site as disallowed. error

Back to categories

Cross-Crawl Changes (6 checks)

CheckDescriptionSeverity
Title changed
TITLE_CHANGED
The page title changed since the previous crawl. notice
Meta description changed
META_DESCRIPTION_CHANGED
The meta description changed since the previous crawl. notice
H1 changed
H1_CHANGED
The H1 changed since the previous crawl. notice
Word count changed
WORD_COUNT_CHANGED
The page word count moved meaningfully between crawls. notice
Redirect target changed
REDIRECT_TARGET_CHANGED
A redirect now points at a different URL than in the previous crawl. warning
Page became non-indexable
BECAME_NON_INDEXABLE
A previously indexable page is now blocked from indexing. warning

Back to categories

Sitemap (10 checks)

CheckDescriptionSeverity
Sitemap URL redirects
SITEMAP_3XX_REDIRECT
A URL listed in the sitemap redirects. notice
Sitemap URL returns 4xx
SITEMAP_4XX
A URL in the sitemap is broken. error
Sitemap URL forbidden
SITEMAP_403_FORBIDDEN
A URL in the sitemap returns 403. Search engines cannot index it. error
Sitemap URL returns 5xx
SITEMAP_5XX
A URL in the sitemap returns a server error. error
Sitemap URL is noindex
SITEMAP_NOINDEX
A URL in the sitemap is marked noindex. The two signals contradict each other. warning
Sitemap URL non-canonical
SITEMAP_NON_CANONICAL
A URL in the sitemap is not the canonical version of its page. notice
Sitemap URL timed out
SITEMAP_TIMEOUT
A URL in the sitemap timed out during the crawl. warning
Invalid sitemap format
INVALID_SITEMAP_FORMAT
The sitemap could not be parsed as valid XML / sitemap protocol. error
URL missing from sitemap
MISSING_FROM_SITEMAP
A linked, indexable URL is not present in any sitemap. notice
Duplicate URL in sitemaps
DUPLICATE_IN_SITEMAPS
The same URL appears in more than one sitemap or more than once in the same sitemap. notice

Back to categories

Structured Data (10 checks)

CheckDescriptionSeverity
JSON-LD parse error
JSON_LD_PARSE_ERROR
A JSON-LD script block could not be parsed as valid JSON. error
JSON-LD missing @type
JSON_LD_MISSING_TYPE
A JSON-LD object has no @type. Search engines cannot interpret it. warning
JSON-LD invalid @type
JSON_LD_INVALID_TYPE
The @type does not exist on schema.org or is misspelled. warning
JSON-LD invalid property
JSON_LD_INVALID_PROPERTY
A property on the JSON-LD object is not defined for the declared @type. notice
JSON-LD wrong property type
JSON_LD_UNEXPECTED_PROPERTY_TYPE
A property's value type does not match the schema.org expected type (for example, string instead of Date). notice
JSON-LD unexpected property
JSON_LD_UNEXPECTED_PROPERTY
An unrecognised property appeared on a JSON-LD object. notice
JSON-LD invalid value
JSON_LD_INVALID_VALUE
A property's value is not in the expected format (for example, malformed URL). notice
JSON-LD duplicate property
JSON_LD_DUPLICATE_PROPERTY
The same property is declared more than once on a JSON-LD object. notice
JSON-LD deprecated type
JSON_LD_DEPRECATED_TYPE
The JSON-LD object uses a schema.org type that has been deprecated. notice
JSON-LD deprecated property
JSON_LD_DEPRECATED_PROPERTY
The JSON-LD object uses a property that has been deprecated. notice

Back to categories

Structured Data (Google) (9 checks)

CheckDescriptionSeverity
Google rich result missing required field
JSON_LD_GOOGLE_MISSING_REQUIRED
A field Google requires for the rich result is missing. The page is ineligible until it is added. warning
Google rich result missing one-of required
JSON_LD_GOOGLE_MISSING_ONE_OF_REQUIRED
Google requires at least one of a set of fields and none are present. warning
Google rich result property missing type
JSON_LD_GOOGLE_PROPERTY_MISSING_TYPE
A nested object that Google expects to be typed has no @type. notice
Google rich result missing image
JSON_LD_GOOGLE_MISSING_IMAGE
Google's rich result for this type requires an image and none was provided. warning
Google rich result invalid date
JSON_LD_GOOGLE_INVALID_DATE
A date field is not in ISO 8601 format. notice
Google rich result unrecognised property
JSON_LD_GOOGLE_UNRECOGNIZED_PROPERTY
A property is not recognised by Google for this rich-result type. notice
Google rich result unresolved @id
JSON_LD_GOOGLE_UNRESOLVED_ID
An @id reference does not match any object on the page. notice
Google rich result empty field
JSON_LD_GOOGLE_EMPTY_FIELD
A field that should hold a value is empty. notice
Google rich result invalid value
JSON_LD_GOOGLE_INVALID_VALUE
A field's value is outside the format Google expects. notice

Back to categories

AMP (3 checks)

CheckDescriptionSeverity
AMP validation errors
AMP_VALIDATION_ERRORS
The AMP variant has validation errors and is ineligible for AMP-specific surfaces. warning
AMP canonical mismatch
AMP_CANONICAL_MISMATCH
The AMP page and its canonical disagree on the canonical URL. notice
AMP excessive CSS
AMP_EXCESSIVE_CSS
The AMP page exceeds the CSS budget allowed by the AMP spec. notice

Back to categories

Duplicate Code (2 checks)

CheckDescriptionSeverity
Duplicate JavaScript
DUPLICATE_JS_CODE
Multiple script bundles ship the same code, wasting bandwidth and parsing time. notice
Duplicate CSS
DUPLICATE_CSS_CODE
Multiple stylesheets ship the same rules, inflating CSS payload. notice

Back to categories

Run it on your site

Wrendex catches every check above on every audit. Run a free audit, no credit card.

Run free audit