Skip to content

Docs

Issue reference

The 66 checks a crawl runs, grouped as they appear in your report. Each has its own link, such as /docs/issues#redirect_chain, so you can share the fix for one issue.

Error15 checks
Something is broken for visitors or search engines. Fix first.
Warning26 checks
Likely to hurt how pages are indexed or shown. Fix soon.
Notice25 checks
Worth a look. Often intentional, sometimes not.

Response codes8

  • Internal URL returned a 4xx status. Links to it are broken.

    How to fix: Restore the page, or 301-redirect it to the closest live equivalent. Then update the internal links listed under Inlinks so they point at the live URL directly.

  • Internal URL returned a 5xx status.

    How to fix: Check server and application logs for the URL at the time of the crawl. If the error was temporary, lower crawl speed and re-crawl; if it repeats, fix the failing route before search engines see it.

  • Internal no response

    Errorinternal_no_response

    Internal URL failed to respond (DNS, connection or timeout error).

    How to fix: Confirm the host resolves and accepts connections from outside your network. Look for firewall or bot-protection rules blocking the crawler, and raise the request timeout if the page is simply slow.

  • External client error (4xx)

    Warningexternal_4xx

    Linked external URL returned a 4xx status.

    How to fix: Replace the link with a working URL, link to an archived copy, or remove it. Outbound links to dead pages look neglected to visitors.

  • External server error (5xx)

    Warningexternal_5xx

    Linked external URL returned a 5xx status.

    How to fix: Open the link yourself. If the other site is down for good, replace or remove the link; if it was a blip, re-check it in your next crawl.

  • External no response

    Warningexternal_no_response

    Linked external URL failed to respond.

    How to fix: Check whether the domain still exists. Expired or parked domains should be unlinked; slow sites may only need a longer request timeout.

  • Blocked by robots.txt

    Noticeblocked_by_robots

    URL was not crawled because robots.txt disallows it.

    How to fix: If the URL should be crawled and indexed, remove or narrow the Disallow rule that matches it. If it is meant to be private, consider noindex instead, since blocked URLs can still be indexed from links.

  • Slow response

    Noticeslow_response

    Server took longer than 1000 ms to respond.

    How to fix: Profile the page's server time: slow database queries, uncached rendering and heavy middleware are the usual causes. Add caching for pages that change rarely.

Redirects4

  • Internal redirect (3xx)

    Noticeinternal_redirect

    Internal URL redirects. Links should point at the final URL.

    How to fix: Update internal links to point straight at the final URL. The redirect can stay for visitors arriving from old bookmarks and external links.

  • External redirect (3xx)

    Noticeexternal_redirect

    Linked external URL redirects. Links should point at the final URL.

    How to fix: Update the link to the URL it redirects to. External redirects often mean the other site moved the page, so check it still says what you link it for.

  • Redirect chain

    Warningredirect_chain

    URL reaches its destination through more than one redirect.

    How to fix: Point the first URL directly at the final destination with a single 301, and update internal links to the final URL.

  • Redirect loop

    Errorredirect_loop

    Redirects return to a URL already in the chain.

    How to fix: Trace the chain and remove the rule that sends a URL back to an earlier step. Loops often come from conflicting trailing-slash, www or HTTPS rules.

Page titles6

  • Missing title

    Errortitle_missing

    Page has no <title> or it is empty.

    How to fix: Add a unique <title> in the page <head> that describes the page in plain words, ideally with the main topic first.

  • Multiple titles

    Warningtitle_multiple

    Page has more than one <title> element.

    How to fix: Keep one <title> element. Duplicates usually come from a theme and a plugin both writing one; switch one of them off.

  • Duplicate title

    Warningtitle_duplicate

    Title is identical to another indexable page's title.

    How to fix: Write a distinct title for each page. For paginated or filtered pages, add the page number or filter, or canonicalise them to the main page.

  • Title over limit

    Noticetitle_too_long

    Title is longer than 60 characters and may be truncated in search results.

    How to fix: Shorten the title so the important words come first and it fits in search results. Drop repeated brand names and filler.

  • Title below limit

    Noticetitle_too_short

    Title is shorter than 30 characters.

    How to fix: Add useful detail such as the product type, location or brand so the title explains what the page is.

  • Title same as H1

    Noticetitle_same_as_h1

    Title is identical to the page's first H1.

    How to fix: Usually fine. If you want more room in search results, make the title a slightly fuller version of the H1, for example adding the brand or category.

Meta description5

  • Missing meta description

    Warningmeta_description_missing

    Page has no meta description or it is empty.

    How to fix: Add a meta description that summarises the page and gives a reason to click. Search engines may still rewrite it, but a good one is often used.

  • Multiple meta descriptions

    Warningmeta_description_multiple

    Page has more than one meta description.

    How to fix: Keep one meta description tag. Check templates and SEO plugins for a second one being injected.

  • Duplicate meta description

    Warningmeta_description_duplicate

    Meta description is identical to another indexable page's.

    How to fix: Write a description specific to each page. For large templated sections, generate it from page data such as product name and price.

  • Meta description over limit

    Noticemeta_description_too_long

    Meta description is longer than 155 characters.

    How to fix: Trim the description so the key message sits in the first sentence and is not cut off.

  • Meta description below limit

    Noticemeta_description_too_short

    Meta description is shorter than 70 characters.

    How to fix: Expand it to a full sentence or two that tells searchers what they will find on the page.

H14

  • Missing H1

    Warningh1_missing

    Page has no H1 heading.

    How to fix: Add one visible H1 that names the page's main topic. Check that the template does not render the heading as a styled <div>.

  • Multiple H1

    Noticeh1_multiple

    Page has more than one H1 heading.

    How to fix: Use one H1 for the page title and H2 to H6 for sections below it. Logos and sidebars marked up as H1 are a common cause.

  • Duplicate H1

    Noticeh1_duplicate

    First H1 is identical to another indexable page's.

    How to fix: Give each page a heading that reflects its own content, especially across products, locations and paginated lists.

  • H1 over limit

    Noticeh1_too_long

    First H1 is longer than 70 characters.

    How to fix: Shorten the heading to the page's core topic and move supporting detail into an intro paragraph.

Directives3

  • Noindex

    Warningnoindex

    Page asks search engines not to index it (meta robots or X-Robots-Tag).

    How to fix: If the page should appear in search, remove noindex from the meta robots tag or the X-Robots-Tag header. If it is meant to be hidden, no action is needed.

  • Nofollow

    Noticenofollow

    Page asks search engines not to follow its links.

    How to fix: Remove page-level nofollow unless you deliberately want search engines to ignore every link on the page. Use rel attributes on individual links instead.

  • Noindex page linked internally

    Noticenoindex_linked_internally

    A noindex page receives internal links; check it should be excluded.

    How to fix: Decide whether the page should be indexed. If not, reduce internal links to it so crawl effort goes to pages you want found; if so, remove noindex.

Canonicals4

  • Missing canonical

    Noticecanonical_missing

    Indexable page has no rel=canonical.

    How to fix: Add a self-referencing <link rel="canonical"> with the page's preferred absolute URL. It protects against duplicates created by tracking parameters.

  • Multiple canonicals

    Warningcanonical_multiple

    Page declares more than one rel=canonical.

    How to fix: Output a single canonical, in the <head> or the HTTP header but not both with different values. Conflicting canonicals are usually ignored.

  • Canonicalised

    Noticecanonicalised

    Page's canonical points at a different URL, so it is not indexable.

    How to fix: Expected for parameter, print or variant URLs. If this page should rank on its own, change its canonical to point at itself.

  • Canonical to non-200

    Errorcanonical_to_non_200

    Canonical target did not return 200.

    How to fix: Point the canonical at a live URL that returns 200. If the target moved, use its final address rather than a redirecting or missing one.

Hreflang6

  • Invalid language code

    Errorhreflang_invalid_code

    Hreflang value is not a valid ISO 639-1 language (and optional ISO 3166-1 region) or x-default.

    How to fix: Use an ISO 639-1 language code, optionally followed by an ISO 3166-1 alpha-2 region (for example en or en-gb), or x-default. Regions alone, such as uk, are invalid.

  • Non-200 hreflang URL

    Errorhreflang_non_200_target

    An hreflang URL did not return 200.

    How to fix: Update the annotation to the alternate's final, live URL. Remove it if that language version no longer exists.

  • Missing self-reference

    Warninghreflang_missing_self_reference

    Page has hreflang annotations but none points at itself.

    How to fix: Include the page itself in its own hreflang set, using its own language code and URL.

  • Missing x-default

    Noticehreflang_missing_x_default

    Page has hreflang annotations but no x-default.

    How to fix: Add an x-default annotation pointing at your language selector or main fallback page for visitors whose language you do not target.

  • Inconsistent language

    Noticehreflang_inconsistent_language

    Self-referencing hreflang language differs from <html lang>.

    How to fix: Make the <html lang> attribute and the page's self-referencing hreflang code agree, and check both match the language the content is written in.

Duplicate content3

  • Exact duplicate

    Warningexact_duplicate

    Page text is identical to another indexable page.

    How to fix: Choose one version to keep. Redirect or canonicalise the others to it, or rewrite them so each page has its own content.

  • Low content

    Noticelow_content

    Indexable page has fewer than 200 words.

    How to fix: Add substantive content that answers what visitors came for, merge the page with a related one, or noindex it if it exists only for navigation.

  • Near duplicate

    Warningnear_duplicate

    Page text is very similar to another indexable page (above the configured similarity threshold).

    How to fix: Compare the pages listed in the near-duplicate group. Merge them, canonicalise the weaker versions to the strongest, or rewrite the shared boilerplate so each page says something of its own.

Images1

  • Images missing alt text

    Noticeimage_missing_alt

    Page contains <img> elements without alt text.

    How to fix: Add alt text that describes each meaningful image. Use an empty alt="" for purely decorative images so screen readers skip them.

Structured data4

  • Structured data parse error

    Errorstructured_data_parse_error

    A JSON-LD block is not valid JSON, or Microdata/RDFa could not be read.

    How to fix: Run the block named in the details through a JSON validator and fix the syntax, usually a trailing comma, an unescaped quote or a template that printed nothing. For Microdata and RDFa, check itemscope/itemprop or typeof/property nesting.

  • Rich result validation error

    Errorstructured_data_validation_error

    An item is missing a property Google requires for its rich result, or a value has the wrong type.

    How to fix: Add the required property listed in the details, or correct its value type (for example a number instead of text, or a full URL). Items with errors are not eligible for that rich result.

  • Rich result validation warning

    Warningstructured_data_validation_warning

    An item is missing a property Google recommends for its rich result.

    How to fix: Add the recommended property if you have the data. The item still qualifies without it, but richer results usually need it.

  • Unknown schema.org type or property

    Noticestructured_data_unknown_type

    A type or property is not in the schema.org vocabulary (often a typo).

    How to fix: Check the spelling and capitalisation against schema.org (types are PascalCase, properties camelCase). Remove vocabulary that search engines do not understand.

AMP2

  • Invalid AMP

    Erroramp_invalid

    AMP page fails AMP validation.

    How to fix: Fix each validation error listed in the details, most often disallowed scripts, inline styles over the size limit or missing required tags. Invalid AMP pages are not served from AMP caches.

  • AMP page without canonical

    Warningamp_missing_canonical

    AMP page has no rel=canonical pointing at its regular version.

    How to fix: Add <link rel="canonical"> on the AMP page pointing at the regular page (or at itself if the AMP page is the only version), and rel=amphtml on the regular page pointing back.

Accessibility4

  • Critical accessibility violations

    Erroraccessibility_critical

    axe-core found violations with critical impact.

    How to fix: Fix these first: they block some visitors completely, for example form fields with no label or controls that cannot be reached by keyboard. The details list each axe-core rule with the affected elements.

  • Serious accessibility violations

    Erroraccessibility_serious

    axe-core found violations with serious impact.

    How to fix: Work through the rules in the details, typically low colour contrast, images without text alternatives or missing page language. Fix them in shared templates to clear many pages at once.

  • Moderate accessibility violations

    Warningaccessibility_moderate

    axe-core found violations with moderate impact.

    How to fix: Address these after critical and serious issues: landmarks, heading order and duplicate ids usually make up this group and are cheap to fix in templates.

  • Minor accessibility violations

    Noticeaccessibility_minor

    axe-core found violations with minor impact.

    How to fix: Low-impact refinements. Fix them when you next touch the template, and re-run the audit to confirm.

Mobile usability3

  • Missing or invalid viewport

    Errormobile_viewport_missing

    Page has no <meta name=viewport> with width=device-width, so it does not scale on phones.

    How to fix: Add <meta name="viewport" content="width=device-width, initial-scale=1"> to the page <head>, and do not disable zoom.

  • Content wider than screen

    Warningmobile_content_wider_than_screen

    Content overflows the mobile viewport horizontally.

    How to fix: Find the element that overflows: wide tables, fixed-width containers and large images are typical. Use max-width: 100%, responsive tables or horizontal scrolling inside the component rather than the page.

  • Mobile usability issue

    Warningmobile_usability_issue

    A Lighthouse mobile check failed; details name the audit.

    How to fix: Open the Lighthouse audit named in the details. Common fixes are larger tap targets with more spacing, legible font sizes of at least 12 px and content that fits the viewport.

Performance4

  • Poor Lighthouse performance

    Warninglighthouse_performance_poor

    Lighthouse performance score is below 50.

    How to fix: Start with the biggest opportunities Lighthouse lists: compress and resize images, remove unused JavaScript and CSS, and defer third-party scripts. Re-test on the same device setting to compare.

  • LCP is above 4 s.

    How to fix: Make the largest element load sooner: serve the hero image in a modern format at the right size, preload it, avoid lazy-loading it, and cut server response time and render-blocking CSS.

  • INP is above 500 ms (field data).

    How to fix: Break up long JavaScript tasks, defer non-essential scripts and avoid heavy work in input handlers so the page responds to taps and clicks within a frame or two.

  • Poor Cumulative Layout Shift

    Warningcwv_cls_poor

    CLS is above 0.25.

    How to fix: Reserve space for images, ads and embeds with width and height or aspect-ratio, avoid inserting content above existing content, and use font-display with matched fallback fonts.

Spelling and grammar2

  • Spelling errors

    Warningspelling_errors

    Page copy contains likely spelling mistakes.

    How to fix: Review the words listed in the details and correct genuine mistakes in the page copy or its template. Brand names and jargon may be false positives; check the page language is set correctly.

  • Grammar errors

    Noticegrammar_errors

    Page copy contains likely grammar or style mistakes.

    How to fix: Review the flagged sentences. Fix real errors; style suggestions are optional and can be ignored where the wording is intentional.

Search Console3

  • Not indexed by Google

    Warninggsc_not_indexed

    URL Inspection reports the URL is not on Google.

    How to fix: Read the coverage state in the details. Fix any blocker it names (noindex, robots.txt, redirect, soft 404), make sure the page is linked internally and in your sitemap, then request indexing in Search Console.

  • Google chose a different canonical

    Noticegsc_canonical_mismatch

    Google's selected canonical differs from the page's declared canonical.

    How to fix: Google picked another URL as canonical. Make the signals agree: consistent internal links, the sitemap and rel=canonical should all point at the URL you want indexed, and near-identical pages should be consolidated.

  • No search impressions

    Noticegsc_no_impressions

    Indexable page had no Search Console impressions in the selected period.

    How to fix: The page is indexable but did not appear in search during the period. Check it is indexed, targets a query people search for and is linked from relevant pages; otherwise consider merging or noindexing it.

Settings that change which URLs are checked are in the crawl settings reference.