The SEO Issue Guide
235 technical SEO issues, each with its own in-depth guide: what it is, why it hurts rankings, how to fix it, and the best practices around it. The same definitions our scanner enforces — so the guide and the audit never disagree.
Crawlability (22)
Crawlability is whether search engine bots can physically reach and read your pages. Before Google can rank anything, Googlebot has to fetch it: follow links to it, receive a successful response, and parse the HTML. Crawl problems are silent — the page looks fine in a browser while bots hit walls (robots rules, broken chains, server errors, infinite URL spaces). Because everything downstream depends on the crawl, fixing crawlability issues usually unlocks more value per hour than any other SEO work.
- Canonical URL points to a redirecting URL
- Inconsistent trailing slash usage
- No internal links point to this page
- No XML sitemap found
- Orphan page (no internal links pointing to it)
- Page blocked by robots.txt
- Page is too many clicks from homepage
- Page redirects to a different domain
- Page uses meta refresh redirect
- Paginated page missing rel=prev/next
- URL contains double slashes in path
- URL contains non-ASCII characters
- URL contains session ID parameter
- URL contains special characters
- URL contains unnecessary file extension
- URL contains uppercase characters
- URL exceeds recommended length
- URL has excessive query parameters
- URL has too many directory levels
- URL uses underscores instead of hyphens
- X-Robots-Tag HTTP header contains noindex
- XML sitemap contains errors
Indexability (16)
Indexability is whether a crawled page is allowed into the search index at all. A page can be perfectly reachable and still tell Google to ignore it — through a noindex directive, a conflicting canonical, or an X-Robots-Tag header set by the server. These directives are absolute: one stray meta tag removes a page from search entirely. Indexability issues are the most binary in SEO — the page either can rank or it cannot — which is why they sit at the top of every serious audit.
- Canonical URL is relative instead of absolute
- Canonical URL points to a different page
- Content-Language HTTP header missing
- Duplicate content detected
- Duplicate language code in hreflang set
- Hreflang set missing self-referencing entry
- Hreflang set missing x-default
- Hreflang tags missing on multilingual page
- Hreflang URL protocol mismatch
- Hreflang uses invalid language code
- Hreflang uses relative URL
- HTML lang attribute does not match content language
- Missing canonical tag
- Page has noindex directive
- Redirect chain detected
- Redirect loop detected
Metadata (37)
Metadata is how your page introduces itself to search engines and social platforms: the title tag, meta description, canonical URL, Open Graph and Twitter cards. Titles remain one of the strongest on-page relevance signals, and descriptions drive click-through rate from the results page even though they aren't a direct ranking factor. Bad metadata rarely breaks a site — it quietly bleeds clicks on every query where you appear.
- Character encoding declaration missing
- Character encoding is not UTF-8
- Content-Type HTTP header missing
- Duplicate meta description
- Duplicate title tag
- Favicon not found
- Meta description appears keyword-stuffed
- Meta description is too long
- Meta description is too short
- Meta keywords tag is present
- Meta robots tag contains nofollow
- Missing meta description
- Missing title tag
- Multiple <title> tags found
- Multiple canonical tags found
- Multiple meta description tags found
- Open Graph og:description is too long
- Open Graph og:description tag missing
- Open Graph og:image tag missing
- Open Graph og:locale tag missing
- Open Graph og:title is too long
- Open Graph og:title tag missing
- Open Graph og:type tag missing
- Open Graph og:url does not match canonical
- Open Graph og:url tag missing
- Open Graph tags missing
- Social media preview is incomplete
- Title tag appears keyword-stuffed
- Title tag is too long
- Title tag is too short
- Title tag starts with site name
- Twitter Card meta tag missing
- Twitter description meta tag missing
- Twitter image meta tag missing
- Twitter site handle meta tag missing
- Twitter title meta tag missing
- X-Content-Type-Options header missing
Structured data (18)
Structured data (JSON-LD / schema.org) is how you describe your content to machines in their own vocabulary: this is a product with this price, an article by this author, an event on this date. It powers rich results — stars, FAQs, breadcrumbs, product info — which materially raise click-through rates. Invalid or incomplete markup doesn't just miss the enhancement; sustained abuse can earn manual actions, so correctness matters as much as presence.
- A linked social profile is dead
- Article schema missing image
- Article schema missing publisher
- Event schema missing date information
- Few or no social profiles linked
- HowTo schema missing step information
- Microdata format detected instead of JSON-LD
- No structured data (schema.org) found
- Product schema missing image
- Product schema missing price information
- Recipe schema missing recommended fields
- Review schema missing rating value
- SearchAction missing from WebSite schema
- Structured data has validation errors
- Structured data has warnings
- Structured data points at an image that does not respond
- Video schema missing recommended fields
- WebSite schema markup missing
Content (18)
Content is what actually earns rankings: text that answers the query better than the competition. Search engines evaluate depth, originality, structure (headings), and freshness. Thin, duplicated, or poorly structured content doesn't just fail to rank — it can drag down a domain's overall quality assessment. Every content issue here is ultimately about the same question: does this page deserve to be someone's answer?
- Broken heading hierarchy
- Content readability score is low
- Duplicate H1 heading across pages
- Duplicate heading text on same page
- Empty heading tag found
- Excessive use of bold/strong tags
- H1 heading is too long
- H1 heading is too short
- Image has empty alt attribute
- Image missing alt attribute
- Keyword density is suspiciously high
- Link has malformed or empty href
- Lorem ipsum placeholder text detected
- Low text-to-HTML ratio
- Missing H1 heading
- Multiple H1 headings on page
- No paragraph tags in main content
- Thin content (too few words)
Internal linking (13)
Internal links are how authority and discoverability flow through your site. They tell crawlers which pages exist, tell ranking systems which pages you consider important, and give users paths deeper into your content. Orphan pages (no internal links pointing to them) are nearly invisible to search engines regardless of quality. A deliberate internal-linking structure is one of the highest-leverage, fully-in-your-control SEO instruments.
- All internal links are in navigation only
- Broken external link (4xx/5xx)
- Broken internal link (4xx/5xx)
- Excessive number of external links
- Excessively long anchor text
- Internal link has nofollow attribute
- Link has empty anchor text
- Link is named for screen readers but has no anchor text
- Link points to non-existent page fragment
- Link uses generic anchor text
- Links implemented with JavaScript only
- Page contains no internal links
- Too many on-page links
Performance (42)
Performance is both a ranking signal (Core Web Vitals) and a conversion multiplier. Google measures real-user loading (LCP), interactivity (INP), and visual stability (CLS) — and slow sites lose visitors before analytics even registers them. Most performance issues concentrate in a few repeat offenders: unoptimised images, render-blocking resources, and third-party scripts. Fixing the top three usually moves the needle more than fixing the next thirty.
- Above-fold images not prioritized
- Below-the-fold images not lazy loaded
- Cache-Control header missing
- Cacheable response sets a cookie, so no CDN will cache it
- Critical CSS not inlined
- CSS files are not minified
- Cumulative Layout Shift (CLS) is too high
- DNS resolution may be slow
- ETag header missing on resources
- Excessive DOM nesting depth
- Excessive DOM size
- Excessive inline CSS
- Excessive inline JavaScript
- Excessive redirect chain
- Excessive third-party resource loading
- Image file too large (>500 KB)
- Images missing responsive srcset
- Images missing width and height attributes
- Images not using modern format
- Interaction to Next Paint (INP) is too slow
- JavaScript files are not minified
- Key resources not preloaded
- Largest Contentful Paint (LCP) is too slow
- Largest Contentful Paint (LCP) needs improvement
- Lighthouse performance score needs improvement
- Low Lighthouse performance score
- Missing preconnect hints for critical origins
- Page size exceeds 3 MB
- Render-blocking CSS or JavaScript
- Scripts without async or defer
- Slow first byte, but only on the first request
- Slow server response time (TTFB > 3s)
- Stylesheets loaded in body
- Text resources not compressed
- Time to First Byte (TTFB) is slow
- Too many external CSS stylesheets
- Too many external JavaScript files
- Too many HTTP requests per page
- Total Blocking Time (TBT) is too high
- Total page weight exceeds 5MB
- Web font uses font-display: block
- Web fonts missing font-display property
Mobile (14)
Google indexes the mobile version of your site — desktop is the afterthought, not the other way round. Mobile issues (missing viewport, tap targets too close, content wider than the screen, intrusive interstitials) directly gate rankings for every query. With most traffic on phones, a mobile problem is not a subset of your audience — it is your audience.
- App install banner configuration missing
- Apple touch icon missing
- Content wider than viewport on mobile
- Flash content detected
- Font size too small for mobile
- Horizontal scrolling likely on mobile
- Images not responsive for mobile
- Mobile-specific redirect detected
- Tables use fixed widths
- Tap targets too small or too close together
- User scaling disabled in viewport
- Viewport meta tag missing
- Viewport missing initial-scale
- Viewport uses fixed width instead of device-width
Accessibility (30)
Accessibility overlaps heavily with SEO because both depend on machine-readable structure: alt text, heading hierarchy, labels, contrast. Screen readers and search crawlers consume the same signals. Accessible sites rank better not by special treatment but because the same fixes — descriptive alt attributes, proper headings, real link text — are exactly what search engines parse for meaning. It is also, in a growing number of jurisdictions, the law.
- Animations without prefers-reduced-motion
- Button has no accessible text
- Data table missing caption
- Data table missing header cells
- Duplicate ID attributes found
- Elements use positive tabindex values
- Elements with positive tabindex
- Focus indicators removed or hidden
- Form inputs missing associated labels
- Form inputs missing autocomplete attribute
- Heading element is empty (accessibility)
- Icon-only button missing aria-label
- Iframe missing title attribute
- Image inside link missing alt text
- Insufficient color contrast ratio
- Invalid lang attribute value
- Link has no accessible text
- Low contrast text
- Media element autoplays with sound
- Missing ARIA landmark regions
- Missing landmark elements
- Missing lang attribute on <html> element
- Missing language direction for RTL content
- Missing skip-to-content navigation link
- Nested interactive elements detected
- No :focus-visible styles detected
- Related form controls not grouped with fieldset
- Skip navigation link missing
- Touch targets too small
- Video without captions
Security (25)
Security issues erode both rankings and trust. HTTPS has been a ranking signal since 2014, and browsers actively warn users away from insecure or mixed-content pages — a warning interstitial is a 100% bounce rate. Missing security headers rarely block indexing, but they widen your attack surface, and a hacked site (injected spam, malicious redirects) can be removed from results entirely. Security is the SEO work you do so you never have to do recovery work.
- Contact details are scrapable in plain text
- Content-Security-Policy header missing
- Content-Security-Policy is in report-only mode
- Cookie missing HttpOnly flag
- Cookie missing SameSite attribute
- Cookie missing Secure flag
- CORS allows all origins (wildcard)
- CORS wildcard with credentials enabled
- CSP allows unsafe-inline scripts
- Deprecated TLS version detected
- External resources without Subresource Integrity
- External scripts missing integrity hash
- Form submits to insecure HTTP endpoint
- HSTS header missing
- HSTS max-age is shorter than a year
- Links worth checking for open redirect
- Mixed content (HTTP resources on HTTPS page)
- Page served over HTTP instead of HTTPS
- Page vulnerable to clickjacking
- Permissions-Policy header missing
- Referrer-Policy header missing
- Server header leaks technology information
- X-DNS-Prefetch-Control header missing
- X-Frame-Options header missing
- X-Powered-By header present