SEO issues library
Every issue our audit checks for, in plain English: what triggers it, why it matters and how to fix it. 82 issues across 6 categories.
On-page SEO
- High priorityTitle tag missing, too short or too longThe page has no
<title>, or its title is under 30 or over 60 characters, so it is either invisible in search results or cut off. - High priorityMissing, empty or multiple H1 headingsThe page has no H1, an empty H1 (often an image with no alt text) or several H1s, so its main topic is unclear.
- High priorityPage set to noindexA robots meta tag or X-Robots-Tag header tells search engines not to show this page in results.
- High priorityPage blocked by robots.txtA Disallow rule in robots.txt stops Googlebot crawling this URL, so Google can’t read its content.
- High priorityOther pages missing title tagsPages from your sitemap have no title tag, so they are hard to find and look broken in search results.
- Medium priorityMeta description missing, too short or too longThe page has no meta description, or it is under 70 or over 160 characters, so Google writes its own snippet or cuts yours off.
- Medium priorityPage tells search engines not to follow its linksA robots meta tag with
nofollowstops ranking signals flowing from this page to every page it links to. - Medium priorityCanonical tag missing, conflicting or pointing elsewhereThe page has no canonical tag, several that disagree, or one pointing to a different URL, so Google may index the wrong version.
- Medium priorityPage language not declaredThe
<html>tag has nolangattribute, so browsers, screen readers and search engines have to guess the page’s language. - Medium priorityhreflang tags invalid or incompleteThe page’s hreflang tags use invalid codes, list a language twice, or lack a self-reference or x-default.
- Medium priorityStructured data missing or invalidThe page has no schema.org structured data, or its JSON-LD can’t be parsed, so it can’t earn rich results.
- Medium priorityStructured data missing required fieldsStructured data on the page lacks properties Google needs for rich results, like a Product without offers or reviews.
- Medium prioritySitemap lists noindex pagesPages in your XML sitemap are set to noindex, so your sitemap asks Google to index pages that ask not to be indexed.
- Medium priorityDuplicate title tags across pagesSeveral pages on your site use exactly the same title, so they compete with each other in search.
- Medium priorityOther pages missing meta descriptionsPages from your sitemap have no meta description, so Google writes their snippets from whatever text it finds.
- Medium priorityOther pages missing an H1Pages from your sitemap have no H1 heading, so their main topic is unclear to visitors, screen readers and search engines.
- Low priorityMultiple title tagsThe page has more than one
<title>element, so search engines have to guess which one to use. - Low priorityMultiple meta descriptionsThe page has more than one meta description tag, which sends mixed signals about the snippet to show.
- Low priorityHeading levels skippedThe page jumps between heading levels, like an H2 straight to an H4, breaking the outline of the content.
- Low priorityCanonical tag repeatedThe same canonical tag appears more than once. It’s harmless, but means head tags are being output twice.
- Low priorityURL is long or hard to readThe URL is over 100 characters, has uppercase letters or underscores, or carries many query parameters.
- Low priorityTitle and H1 share no key termsThe title tag and the H1 have no meaningful words in common, which weakens the signal of what the page is about.
- Low priorityPage not listed in the XML sitemapYour XML sitemap exists but doesn’t include this page, so search engines may discover and recrawl it less reliably.
- Low priorityDuplicate meta descriptions across pagesSeveral pages share the same meta description, so their search results look identical and Google often replaces them.
Technical
- High prioritySite not served over HTTPSThe page loads over plain HTTP, so browsers mark it “Not secure” and it misses Google’s HTTPS ranking signal.
- High priorityHTTP version doesn’t redirect to HTTPSThe http:// version of the page still loads instead of sending visitors to the secure version.
- High priorityMixed content (insecure resources on an HTTPS page)The HTTPS page loads scripts, styles, images or frames over insecure HTTP.
- High priorityMobile viewport not setThe page has no viewport meta tag, or it isn’t set to the device width, so phones show a zoomed-out desktop layout.
- High priorityBroken pages in the XML sitemapURLs listed in your sitemap return 404, 410 or server errors, or their domain doesn’t resolve.
- Medium priorityRedirect chain or temporary redirectThe URL reaches the page through several redirects, or through a temporary (302/307) redirect instead of a permanent one.
- Medium priorityBoth www and non-www versions loadYour site loads at both example.com and www.example.com instead of one redirecting to the other.
- Medium priorityrobots.txt missing, erroring or blocking the siterobots.txt is missing, returns a server error, or disallows Google from the whole site.
- Medium priorityXML sitemap missing or invalidWe couldn’t find an XML sitemap at the location in robots.txt, /sitemap.xml, /sitemap_index.xml or /sitemap-index.xml, or it isn’t valid XML.
- Medium priorityMissing pages return 200 instead of 404 (soft 404)A made-up URL on your site loads normally with status 200, so search engines can index error pages as real content.
- Medium priorityPinch-to-zoom disabledThe viewport tag stops people zooming in with
user-scalable=noormaximum-scale=1. - Medium priorityButtons without an accessible nameSome
<button>elements have no text, aria-label or title, so screen readers announce them as just “button”. - Medium priorityForm fields without labelsSome inputs, selects or textareas have no associated label, so screen readers can’t say what to enter.
- Medium priorityMeta refresh redirectThe page uses
<meta http-equiv="refresh">to reload or redirect, which is slow and unreliable for users and crawlers. - Medium priorityHTML document is very largeThe HTML file itself is over 1 MB, which is slow to download and parse, especially on phones.
- Medium priorityRedirecting URLs, chains or loops in the sitemapURLs in your sitemap redirect elsewhere, sometimes through chains of several hops or in loops that never resolve.
- Low priorityHSTS header missingThe site doesn’t send a Strict-Transport-Security header, so browsers may still try HTTP first.
- Low prioritySecurity headers missingThe site doesn’t send some of the main HTTP security headers: Content-Security-Policy, X-Content-Type-Options, X-Frame-Options or Referrer-Policy.
- Low prioritySitemap not referenced in robots.txtYou have both a robots.txt and a sitemap, but robots.txt doesn’t say where the sitemap is.
- Low priorityNo faviconThe site has no favicon declared and no /favicon.ico, so browser tabs and mobile search results show a generic icon.
- Low priorityCharacter encoding not declaredThe HTML doesn’t declare its character encoding, so browsers may show accented letters and symbols as garbage.
- Low priorityNo HTML doctypeThe document doesn’t start with
<!doctype html>, so browsers render it in “quirks mode”. - Low priorityDeprecated HTML tagsThe page uses obsolete elements like
<font>,<center>or<marquee>that modern HTML has dropped.
Content
- High priorityThin content (low word count)The page has under 300 words of visible text, giving search engines little to understand or rank.
- High priorityBroken internal linksLinks on the page to other pages on your own site return 404, 410 or server errors.
- Medium priorityBroken external linksLinks on the page to other websites return 404, 410 or server errors, or point to domains that no longer exist.
- Medium priorityFew or no internal linksThe page links to fewer than five other pages on your site, or none at all.
- Medium priorityLinks with no textSome links have no text, alt text or aria-label, so search engines and screen readers can’t tell where they go.
- Low priorityText is hard to readThe page’s Flesch reading ease score is under 50, meaning long sentences and complex words that many visitors struggle with.
- Low priorityRepeated headingsThe same subheading text appears more than once on the page.
- Low priorityLong text with no subheadingsThe page has 300+ words but no H2–H6 headings, so the content is one unbroken block.
- Low priorityLow text-to-HTML ratioVisible text makes up less than 10% of the HTML, a sign of code bloat or very little content.
- Low priorityInternal links pointing to redirectsLinks on the page go to URLs on your site that redirect elsewhere instead of linking to the final page.
- Low priorityGeneric link text like “click here”Links use text such as “click here”, “read more” or “learn more” that says nothing about the destination.
- Low priorityInternal links marked nofollowLinks to your own pages have
rel="nofollow", telling search engines not to pass signals through them.
Performance
- High prioritySlow Largest Contentful Paint for real visitorsChrome users see the page’s main image or text block appear after more than 2.5 seconds (75th percentile).
- High prioritySlow Interaction to Next Paint for real visitorsWhen Chrome users click, tap or type, the page takes more than 200ms to respond visually (75th percentile).
- High priorityLayout shifts for real visitors (CLS)Content on the page moves around while it loads, with a Cumulative Layout Shift above 0.1 (75th percentile).
- High priorityLow mobile Lighthouse performance scoreGoogle Lighthouse scores the page under 90 for performance on a simulated mid-range phone.
- High prioritySlow server response time (TTFB)The server took more than 800ms to start sending the page.
- High priorityHTML not compressedThe page is sent without gzip, Brotli or zstd compression, making it several times larger than necessary.
- Medium priorityRender-blocking scripts in the headScripts in
<head>withoutdeferorasyncstop the browser rendering anything until they download and run. - Low priorityHeavy HTML documentThe HTML is over 200 KB before compression, usually because of large inline scripts, styles or data.
- Low priorityToo many render-blocking stylesheetsMore than four stylesheets load in
<head>before the page can render. - Low priorityToo many scripts on the pageThe page includes more than 25 scripts, a sign of accumulated plugins and third-party tags.
Images
- High priorityImages missing alt textSome
<img>elements have noaltattribute, so screen readers and Google Images can’t understand them. - High priorityBroken imagesImages on the page return 404, 410 or server errors, leaving empty boxes or broken-image icons.
- Medium priorityImages without width and heightImages don’t declare
widthandheight, so the page jumps around as they load. - Medium priorityImages over 200 KBSome images are larger than 200 KB (and some may be over 500 KB), which slows the page down, especially on mobile.
- Medium priorityImages could use WebP or AVIFJPEG, PNG or other legacy-format images over 30 KB could be served in a modern format that is much smaller.
- Low priorityBelow-the-fold images not lazy-loadedImages further down the page load immediately instead of waiting until the visitor scrolls near them.
- Low priorityLarge images without srcsetImages 600px or wider have no
srcset, so phones download the full desktop-size file.
Social & AI search
- High priorityMissing Open Graph tagsOne or more of og:title, og:description, og:image, og:url and og:type are missing, so shared links look bare or wrong.
- High priorityShare image broken, small or too largeThe og:image doesn’t load, is smaller than 1200×600, or is over 5 MB, so shares show no image or a tiny thumbnail.
- Medium priorityrobots.txt blocks AI crawlersrobots.txt disallows AI crawlers like GPTBot, ClaudeBot, PerplexityBot or Google-Extended from your site.
- Low priorityNo X (Twitter) card tagThe page has no
twitter:cardmeta tag, so links on X show a small summary instead of a large image card. - Low priorityNo llms.txt fileThe site has no /llms.txt, a short Markdown guide that helps AI assistants understand your site.
- Low priorityNo Organization or WebSite schemaThe page has no Organization, LocalBusiness, Person or WebSite structured data saying who is behind the site.