⚠️ DEV TOOL — This website intentionally contains SEO issues for testing. Not for public use.Issues Index →

Master Issues Index

111 Intentional Issues

Searchable and filterable table of all intentional SEO issues present on this test site. Use this to locate which page demonstrates each issue.

22Critical
52Important
37Standard
111Total

Showing 111 of 111 issues

CriticalImportantStandard
#RequirementPriorityToggle GroupPageScript
#1

HTTPS enabled with valid SSL certificate

XeoPix crawler can validate headers

CRITICALHTTP Security HeadersSecurity HeadersPossible
#2

No mixed content warnings (HTTP assets on HTTPS pages)

Use crawler to scan for http:// in content

CRITICALHTTP Security HeadersSecurity HeadersPossible
#136

Strict-Transport-Security (HSTS) header set on server

Enforces HTTPS and prevents downgrade attacks; trust signal

IMPORTANTHTTP Security HeadersSecurity HeadersPossible
#137

Content-Security-Policy (CSP) header configured

Prevents XSS; Google considers site security a ranking factor

IMPORTANTHTTP Security HeadersSecurity HeadersManual
#139

Referrer-Policy header set on server

Controls referrer info sent to linked sites

STANDARDHTTP Security HeadersSecurity HeadersPossible
#140

X-Frame-Options or CSP frame-ancestors directive set

Prevents clickjacking; a trust and security signal

IMPORTANTHTTP Security HeadersSecurity HeadersPossible
#185

No mixed active content (inline scripts/styles loading over HTTP)

Browser blocks mixed active content; breaks page; hurts trust signals

CRITICALHTTP Security HeadersSecurity HeadersPossible
#3

XML sitemap created at /sitemap.xml

Implement with sitemap-parser.js

CRITICALCrawl BehaviourHomepagePossible
#5

robots.txt configured and tested

Use robots-txt-parser.js to validate

CRITICALCrawl BehaviourHomepagePossible
#8

All redirects in place (301/302 correct)

Use redirect-tracker.js to validate

CRITICALCrawl BehaviourCrawl IssuesPossible
#9

No broken internal links

HTTP status tracking in crawler

CRITICALCrawl BehaviourCrawl IssuesPossible
#10

www vs non-www redirects correct

Test both versions redirect properly

CRITICALCrawl BehaviourCrawl IssuesPossible
#11

No redirect chains or loops

Redirect chains and loops hurt SEO performance; validated with redirect-tracker.js

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#14

Crawl depth shallow (3 clicks from homepage)

Verify with crawler depth analysis

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#17

No orphan pages (all linked somewhere)

Crawler linkage analysis

STANDARDCrawl BehaviourCrawl IssuesPossible
#50

External links use noopener noreferrer

Prevents reverse tabnapping attack and leaks of opener reference

STANDARDCrawl BehaviourCrawl IssuesPossible
#157

Image sitemap created (separate or <image:image> entries in main sitemap)

Helps Google discover and index images that may not be found via crawl

IMPORTANTCrawl BehaviourCrawl IssuesManual
#164

Sitemap: directive declared in robots.txt pointing to sitemap URL

Additional sitemap discovery method used by all major crawlers

IMPORTANTCrawl BehaviourHomepagePossible
#165

Crawl-delay directive set where server needs rate limiting

Protects server from overload; respects crawl budget

STANDARDCrawl BehaviourCrawl IssuesPossible
#166

Search results pages blocked in robots.txt (e.g. Disallow: /?s=)

Prevents crawl budget waste and duplicate content from internal search

IMPORTANTCrawl BehaviourHomepagePossible
#172

Canonical URL matches exactly the URL in XML sitemap

Mismatch causes Google to choose a different canonical than intended

IMPORTANTCrawl BehaviourPage SEO BasicsPossible
#175

Canonical tag not blocked by robots.txt (Google must be able to access canonical)

If canonical page is blocked Google cannot validate it

CRITICALCrawl BehaviourCrawl IssuesPossible
#180

Video sitemap created with <video:video> entries (duration, thumbnail, URL)

Required for video rich results and Google Video index

STANDARDCrawl BehaviourCrawl IssuesPossible
#187

GPTBot (OpenAI) explicitly allowed or disallowed in robots.txt

GPTBot crawls for ChatGPT training data; deliberate allow/disallow decision required

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#188

ClaudeBot (Anthropic) explicitly allowed or disallowed in robots.txt

ClaudeBot crawls for Anthropic AI training; requires explicit robots.txt decision

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#189

PerplexityBot explicitly allowed or disallowed in robots.txt

Allowing PerplexityBot enables site content to surface in Perplexity AI answers

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#190

Google-Extended bot rule set in robots.txt (used for Gemini/Vertex AI training)

Separate from Googlebot; controls whether content feeds Google generative AI products

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#191

CCBot (Common Crawl) rule set in robots.txt

Common Crawl dataset powers many open-source LLMs; explicit allow/disallow required

STANDARDCrawl BehaviourCrawl IssuesPossible
#199

llms-full.txt published for AI systems requiring full-content access

Extended version of llms.txt; provides complete page content for AI ingestion

STANDARDCrawl BehaviourCrawl IssuesPossible
#220

Moved/deleted pages return 301 redirect (not instant 404) for at least 1 year

301 passes link equity to new URL; abrupt 404 on moved pages loses accumulated PageRank

IMPORTANTCrawl BehaviourCrawl IssuesPossible
#227

Page indexability audit: critical pages confirmed indexable (no unintentional noindex, not blocked by robots.txt, returning HTTP 200)

Aggregate indexability check — combines noindex meta, robots.txt disallow, and HTTP status

IMPORTANTCrawl BehaviourHomepagePossible
#103

<meta charset="UTF-8"> declared in <head>

Required for correct character encoding

CRITICALHTML Head TagsHead TagsPossible
#104

<meta name="viewport" content="width=device-width, initial-scale=1"> present

Google uses this to determine mobile-friendliness

CRITICALHTML Head TagsHead TagsPossible
#105

<html lang="xx"> attribute set with correct language code

Checks whether the page declares its primary language

CRITICALHTML Head TagsHead TagsManual
#106

<meta name="robots" content="max-snippet:-1, max-image-preview:large, max-video-preview:-1"> set

Unlocks rich snippets and large thumbnail previews in SERPs

IMPORTANTHTML Head TagsHead TagsPossible
#107

<meta name="author"> tag set on article/blog pages

Signals content authorship for E-E-A-T

STANDARDHTML Head TagsHead TagsPossible
#108

<meta name="google-site-verification"> OR DNS/file verification in place

Required to claim property in Google Search Console

IMPORTANTHTML Head TagsHead TagsPossible
#109

<meta name="msvalidate.01"> Bing site verification tag present

Required to verify site in Bing Webmaster Tools

STANDARDHTML Head TagsHead TagsPossible
#110

<meta http-equiv="content-language"> or HTTP Content-Language header set

Declares content language for search engines and browsers

STANDARDHTML Head TagsHead TagsPossible
#112

<meta name="referrer" content="no-referrer-when-downgrade"> present

Controls referrer data passed to external links

STANDARDHTML Head TagsHead TagsPossible
#130

<link rel="sitemap" type="application/xml" href="/sitemap.xml"> in <head>

Helps crawlers discover sitemap directly from HTML

STANDARDHTML Head TagsHead TagsPossible
#6

Canonical tags on all pages

Extract with seo-extractor.js

CRITICALPage SEO BasicsPage SEO BasicsPossible
#13

Page uses rel=next/rel=prev or equivalent pagination signals

Extract pagination metadata

IMPORTANTPage SEO BasicsPage SEO BasicsPossible
#15

URL structure clean (lowercase hyphens)

Validate with URL normalization

STANDARDPage SEO BasicsPage SEO BasicsPossible
#16

Trailing slash consistency

Enforce site-wide settings

STANDARDPage SEO BasicsPage SEO BasicsPossible
#39

Every page has unique title tag (50-60 chars)

Extract with seo-extractor.js

CRITICALPage SEO BasicsPage SEO BasicsPossible
#40

Every page has unique meta description (150-160 chars)

Extract with seo-extractor.js

CRITICALPage SEO BasicsPage SEO BasicsPossible
#43

No duplicate elements, on page only

Crawler duplicate page elements detection, Exact string match

CRITICALPage SEO BasicsPage SEO BasicsPossible
#44

H1-H6 heading hierarchy logical

Extract and validate structure

IMPORTANTPage SEO BasicsPage SEO BasicsPossible
#173

Canonical tag points to HTTPS not HTTP version

HTTP canonical on HTTPS page confuses crawlers

CRITICALPage SEO BasicsPage SEO BasicsPossible
#174

Self-referencing canonical on every page (not just duplicate pages)

Prevents Google from selecting an unintended canonical version

IMPORTANTPage SEO BasicsPage SEO BasicsPossible
#212

Title tag and meta description present in server-rendered HTML (not injected only by JS)

JS-only meta injection may be missed by crawlers; must be in SSR HTML output

CRITICALJavaScript SEO RenderingPage SEO BasicsPossible
#22

Images compressed (WebP/AVIF format)

Image optimization tools required

IMPORTANTImage AnalysisImage IssuesPossible
#23

Images have width/height attributes

Prevents layout shift

IMPORTANTImage AnalysisImage IssuesPossible
#42

All images have descriptive alt text and for screen readers

Check imagesWithoutAlt field

CRITICALImage AnalysisImage IssuesPossible
#51

Image filenames descriptive

Not img001.jpg

STANDARDImage AnalysisImage IssuesPossible
#97

Open Graph tags set

Social sharing metadata

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#99

Twitter Card meta tags

Social sharing metadata

STANDARDSocial & Open GraphSocial OpenGraphPossible
#119

og:image:width and og:image:height meta tags set (1200×630 recommended)

Without dimensions Facebook/LinkedIn may not display image

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#120

og:locale set (e.g. en_US)

Tells social platforms the language and regional format

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#121

og:site_name meta tag present

Shows site name alongside shared content on Facebook/Slack

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#122

og:image:alt meta tag set (accessible description of OG image)

Accessibility requirement for screen readers on social platforms

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#123

article:published_time meta tag on blog/article pages

Used by Google and social platforms to show publish date

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#124

article:modified_time meta tag on updated content

Signals freshness to crawlers

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#125

article:author meta tag linking to author profile

Supports E-E-A-T and author attribution

STANDARDSocial & Open GraphSocial OpenGraphPossible
#126

article:section and article:tag set on categorized content

Content categorization for social sharing context

STANDARDSocial & Open GraphSocial OpenGraphPossible
#127

twitter:site (@handle of website) meta tag set

Links the card to the publishing site's Twitter account

STANDARDSocial & Open GraphSocial OpenGraphPossible
#128

twitter:creator (@handle of author) meta tag set on articles

Attributes content to the specific author's Twitter profile

STANDARDSocial & Open GraphSocial OpenGraphPossible
#129

twitter:image:alt meta tag set

Alt text for Twitter card image (accessibility)

IMPORTANTSocial & Open GraphSocial OpenGraphPossible
#57

Organization/LocalBusiness schema

JSON-LD format

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#58

WebSite schema with SearchAction

Sitelinks search box

STANDARDStructured Data & Rich ResultsStructured DataPossible
#59

BreadcrumbList schema

Breadcrumb navigation

STANDARDStructured Data & Rich ResultsStructured DataPossible
#60

Article/BlogPosting schema (blog)

Blog post metadata

STANDARDStructured Data & Rich ResultsStructured DataPossible
#61

Review/Rating schema

For product reviews

STANDARDStructured Data & Rich ResultsStructured DataPossible
#62

FAQ schema on FAQ sections

FAQ snippet optimization

STANDARDStructured Data & Rich ResultsStructured DataPossible
#63

Event schema for event pages

Event metadata

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#75

LocalBusiness schema on location page

JSON-LD format

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#147

VideoObject schema on all pages with embedded video content

Enables video rich results in Google Search (thumbnail, timestamp)

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#148

Person schema on author profile pages

Supports E-E-A-T by linking author credentials to content

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#149

HowTo schema on instructional/tutorial pages

Enables How-to rich results with numbered steps in SERPs

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#150

SpeakableSpecification schema for voice-search content

Marks content suitable for Google Assistant read-aloud

STANDARDStructured Data & Rich ResultsStructured DataPossible
#151

ItemList schema on list/collection pages and category pages

Enables carousel rich results for list-style content

STANDARDStructured Data & Rich ResultsStructured DataPossible
#152

JobPosting schema on careers/jobs pages

Enables Google for Jobs integration

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#153

Service schema on service/product offering pages

Provides structured service information to search engines

STANDARDStructured Data & Rich ResultsStructured DataPossible
#154

ImageObject schema embedded within Article/Product schemas

Provides image metadata (dimensions, license, caption) to crawlers

STANDARDStructured Data & Rich ResultsStructured DataPossible
#155

Offer schema nested inside Product schema (price, currency, availability)

Enables price and availability rich results in Google Shopping

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#156

AggregateRating schema nested inside Product/LocalBusiness

Enables star rating rich results in SERPs

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#231

Product Schema Missing

E-commerce product pages are missing Product schema, causing the site to lose eligibility for Google Shopping rich results, price snippets, and availability display in SERPs.

CRITICALStructured Data & Rich ResultsStructured DataPossible
#232

Offer Schema Missing or Incomplete

Product pages have a Product schema block but the nested Offer is absent or missing required fields, preventing Google from displaying price and availability in rich results.

CRITICALStructured Data & Rich ResultsStructured DataPossible
#234

SiteLinksSearchBox Schema Missing

The homepage WebSite schema is present but missing the SearchAction property, preventing Google from displaying a Sitelinks Search Box beneath the homepage result for branded queries

STANDARDStructured Data & Rich ResultsStructured DataPossible
#235

SoftwareApplication Schema Missing

SaaS or app product pages are missing SoftwareApplication schema, preventing display of ratings, pricing, and OS compatibility in Google rich results

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#236

WebPage Schema Missing

The page is missing a WebPage schema block (or appropriate subtype), reducing the ability of search engines to classify the page's content type and intent

IMPORTANTStructured Data & Rich ResultsStructured DataPossible
#12

Hreflang tags (for multi-language sites)

Parse link[rel=alternate][hreflang]

IMPORTANTInternational SEOInternational SEOPossible
#135

x-default hreflang tag for international site root/homepage

Tells Google which page to show when no language-specific match found

IMPORTANTInternational SEOInternational SEOPossible
#168

hreflang self-referencing tag (each page references itself)

Every hreflang page must include a self-referencing hreflang tag

IMPORTANTInternational SEOInternational SEOPossible
#170

RTL dir="rtl" on <html> for Arabic/Hebrew/Persian content

Required for right-to-left language support

STANDARDInternational SEOInternational SEOPossible
#171

Separate URLs per language (subdirectory or ccTLD, not just cookies)

Google recommends distinct URLs per locale for proper indexation

IMPORTANTInternational SEOInternational SEOPossible
#67

No lorem ipsum text

Final content review

CRITICALContent & ReadabilityContent ReadabilityPossible
#70

Author bios on blog posts

Credibility signal

IMPORTANTContent & ReadabilityContent ReadabilityPossible
#226

Content readability score (Flesch-Kincaid) measured and appropriate for target audience

Readability is an AEO quality signal; tracked as readability_score; Grade 8 or below recommended

IMPORTANTAEO Content SignalsContent ReadabilityManual
#100

Favicon and Apple Touch Icon set

Brand presence

STANDARDLink Rel TagsHead TagsPossible
#131

<link rel="alternate" type="application/rss+xml"> for blog RSS feed

Enables RSS discovery for feed readers and aggregators

STANDARDLink Rel TagsHead TagsPossible
#132

<link rel="manifest" href="/manifest.json"> for PWA sites

Required for PWA installability and app metadata

STANDARDLink Rel TagsHead TagsPossible
#133

<link rel="icon" sizes="32x32"> and <link rel="icon" sizes="16x16"> variants

Different favicon sizes for different contexts and browsers

STANDARDLink Rel TagsHead TagsPossible
#134

<link rel="amphtml" href="..."> on pages with AMP versions

Links canonical page to its AMP counterpart

STANDARDLink Rel TagsContent & ReadabilityPossible
#141

Key page regions use semantic HTML5 elements instead of generic containers

Helps crawlers understand page structure and content hierarchy

IMPORTANTSemantic HTMLPage SEO BasicsPossible
#142

<figure> and <figcaption> wrap images with captions

Provides image context to crawlers beyond alt text

STANDARDSemantic HTMLPage SEO BasicsPossible
#186

llms.txt file created at /llms.txt (AI model content manifest)

Emerging standard; tells LLMs what site content is available for citation. FILE INTENTIONALLY ABSENT — /llms.txt returns 404 (test case for scanner detection)

IMPORTANTGEO & AI Engine SignalsCrawl IssuesPossible
#214

URL parameters handled: canonical or noindex on parameterized URLs (?sort= ?filter= ?ref=)

Unhandled URL parameters create duplicate indexable URLs and waste crawl budget

IMPORTANTURL Parameter AuditPage SEO BasicsPossible
#215

Faceted navigation handled: noindex or canonical on filter/sort combination pages

E-commerce faceted pages create thousands of near-duplicate URLs without proper handling

IMPORTANTURL Parameter AuditPage SEO BasicsPossible
#218

Canonical tags contain clean URLs (no tracking params like ?utm_source or ?fbclid)

Canonical with tracking parameters confuses Googlebot and propagates duplicate content signals

IMPORTANTURL Parameter AuditPage SEO BasicsPossible