B+ · Good

Page SEO Inspection

https://lysanderslabyrinth.com/
Crawled 20 Oct, 07:42 UTC (16 hr ago)
HTTP 200 37 KB 299 ms TTFB
Download PDF

PDF export is a paid feature

A PDF of the full report, ready to send to a client or a colleague, comes with Basic at $19 a month and every plan above it, along with saved history. The report itself stays free to read.

See the plans
On-Page Checklist 75% Complete
Primary focus: Largest Contentful Paint is 11.6s (lab data), above the 2.5s target and in the poor range. Fix now →
Filter:

Full diagnostics

Every check that ran, grouped by what it affects. Problems appear first in each group.

Meta Tags & Search Snippet Simulator

The tags that decide how this page is titled and described in search results.

! 1✓ 150% · fair
Live snippet simulation
Title width: 650px / 580px · truncated
L Lysander's Labyrinth lysanderslabyrinth.com
Lysander's Labyrinth — Puzzle History, Guides & Collector's…

A collector's compendium of tavern puzzles, 3D metal and wood puzzles, and jigsaw puzzles — their histories, makers, and the obsessive joy of solving…

Title width 650px of 580px

The title is about 650px wide and will be truncated in desktop results (limit 580px).

Rendered width

Desktop650px/ 580px
Mobile585px/ 920px

Measured in Arial at the size Google renders result titles, accurate to within a fraction of a percent of a browser. Characters: 70.

How to fix
How to fix
Shorten the title so the important words appear first.
Meta description 155 characters

The meta description length is well judged.

Crawling & indexing

Whether search engines can reach, read and index this page at all.

! 2✓ 1588% · good
Missing pages (404) HTTP 200

A page that does not exist returns HTTP 200. Search engines can index endless empty pages, and Search Console reports them as soft 404s.

https://lysanderslabyrinth.com/wrp-missing-c250d37143 answered HTTP 200
How to fix
How to fix
Make the server or the application return a 404 status for unknown addresses. The not-found page can look the same; only the status code has to change.
www and https versions 2 found

2 other spellings of this address do not lead here, so search engines can treat them as separate pages and split the ranking between them.

https://www.lysanderslabyrinth.com/ answers HTTP 200 itself
http://www.lysanderslabyrinth.com/ → 301 → https://www.lysanderslabyrinth.com/
How to fix
How to fix
Redirect every spelling (http and https, with and without www) to https://lysanderslabyrinth.com/ with a single 301.
HTTP status HTTP 200

The page returns 200 OK.

Redirect chain

The URL resolves without redirects.

Robots directives

No directive prevents indexing.

Canonical tag

The canonical correctly references this page.

https://lysanderslabyrinth.com/
Language

Language is declared as "en".

lang="en"
hreflang

No hreflang annotations, which is correct for a single-language page.

Viewport

The viewport is configured for mobile.

width=device-width, initial-scale=1.0
Character encoding

The page declares UTF-8 encoding.

Favicon

A favicon is declared.

Mixed content

All resources load securely.

URL length 31 characters

The URL is 31 characters.

URL readability

The URL is clean and readable.

URL depth 0 levels deep

The page is 0 levels deep.

URL parameters

The URL has no query parameters.

robots.txt 0 KB

robots.txt is present and does not block crawling.

XML sitemap 13 URLs

A sitemap is published, listing 13 URLs.

Lists 13 URLs

Content & metadata

What the page says it is about, and how it reads.

! 1✓ 1091% · excellent
Word count 408 Substantive
Headings 10 Structured
H1 tags 1 Exactly one
Text ratio 7.4% Text vs markup
Heading outline 10 headings
H1 Every Puzzle Has a Story.
H2 Tavern Puzzles
H2 3D Metal & Wood
H2 Jigsaw Puzzles
H2 Other Puzzles
H2 Chinese Nine Linked Rings Puzzle
H2 Delivered to your inbox. Occasionally.
H3 Explore
H3 Puzzle Types
H3 The Labyrinth
Share image

The share image is an SVG, which no social platform shows on a card, so a shared link shows no picture.

https://lysanderslabyrinth.com/og-image.svg
How to fix
How to fix
Point og:image at a JPEG or PNG of 1200 × 630 pixels that loads publicly, and check it with the platform's own debugger.
Open Graph tags

Open Graph tags are present.

Twitter card

twitter:card is set to summary_large_image.

H1 tag

The page has exactly one h1.

Every Puzzle Has a Story.
Heading hierarchy

The heading outline descends in order.

Content length 408 words

The page has roughly 408 words.

Text-to-HTML ratio 7.4% text

Text is 7.4% of the page source.

Table headers

No data tables on this page, so there are no columns to label.

Keyword placement

The page's prominent terms appear in its title, description or headings.

Where these terms appear

TermCountDensityTitleDescriptionHeadings
puzzle103.89%✓✓✓
puzzles103.89%✕✓✓
rings72.72%✕✕✓
nine51.95%✕✕✓
metal41.56%✕✓✓
Keyword repetition

No term is repeated unnaturally often.

Keyword cloud

The page's most frequent terms, from 257 words of content.

What this page is about

Term size reflects how often it appears. Density is not a ranking factor, this is a view of the page's subject, not a target to hit.

puzzlepuzzlesringsninemetalhistoriesownlongsolutionlinkedmetaljigsawotherpuzzlesguidesencyclopedialysandercollectorcompendiumthreedimensionalsolvingaroundtimechallengesjustloopsolvelabyrinthcookiestoolsservicessitetavernwoodlogcontacttavernwoodlogcontacteverystorytavernwondersjigsawartsmakersobsessivejoybegin

AI & answer readiness

Whether answer engines and AI overviews can extract and trust this page.

i 3✓ 770% · good
AI crawlers 10/10 All allowed
Readable without JS Yes Served complete
Identity 1/2 Partly declared
Quotable signals 2/4 Schema, date, author, answers
Content freshness

The page publishes no date. Not expected on a page like this; worth adding if its content goes out of date.

How to fix
How to fix
<time datetime="2026-09-17">17 September 2026</time>, or datePublished in Article structured data.
Answer schema

No structured data an answer engine can lift directly, such as FAQPage, HowTo or Article.

How to fix
How to fix
Mark up question-and-answer content as FAQPage, or step-by-step content as HowTo.
Page subject

No structured data describes what this page is about.

Found: Organization
None of these declare the page's subject.

1 type: Organization

How to fix
How to fix
Describe the page with the type that fits it, Article for writing, Product for a product, FAQPage for questions and answers. Boilerplate like Organization and BreadcrumbList identifies the site, not the page.
Answer readiness 2 found

2 headings are followed by a snippet-shaped answer.

Attribution

Attribution signals present: contact page, about page, privacy policy.

contact page, about page, privacy policy

Extractable structure 408 words

408 words across 11 headings, 3 lists and 0 tables.

Publisher identity

The page names who is behind it: lysanderslabyrinth.com.

Readable without JavaScript

The page reads the same with and without JavaScript.

llms.txt for AI agents

llms.txt is published, giving AI agents a curated map of the site.

AI crawler access 10 checked

Every AI crawler checked is allowed to read this page.

Speed & delivery

What makes the page slow, and what the loading experience measures.

✕ 1! 1i 2✓ 969% · needs work
Rendered page
The page as it rendered on a mobile viewport during the performance test
Mobile, measured
The page as it rendered on a desktop viewport
Desktop, measured
LCP Poor
11.57s

Largest Contentful Paint

Target ≤ 2.5s

What this measures

How long until the largest thing on screen, usually the hero image, video or headline block, has finished rendering. It is a proxy for "when did this page feel loaded".

What moves it: Serve the hero image in a modern format at the size it is displayed, preload it, and remove render-blocking CSS and JavaScript ahead of it. A slow server response delays it too, so check TTFB first.

INP Good
0ms

Interaction to Next Paint

Target ≤ 200ms

What this measures

How long the page takes to respond visibly after a tap, click or key press, measured across every interaction, not just the first. High INP is what makes a page feel unresponsive even once it looks ready.

What moves it: Break up long JavaScript tasks so the main thread is free to respond, defer work that is not needed for the interaction, and avoid large re-renders on every event.

CLS Good
0

Cumulative Layout Shift

Target ≤ 0.1

What this measures

How much visible content jumps around while the page loads. This is what makes someone tap the wrong thing because a banner or image pushed the layout down underneath their finger.

What moves it: Give images and video explicit width and height so the browser reserves the space, reserve room for ads and embeds, and avoid inserting content above what is already on screen.

FCP Poor
4.04s

First Contentful Paint

Target ≤ 1.8s

What this measures

How long until anything at all appears, the first text or image painted. It separates "the page starts slowly" from "the biggest element is slow": a fast FCP with a slow LCP points at the hero, while both slow points at the server.

What moves it: Cut render-blocking CSS and JavaScript in the head, inline the styles needed for the first screen, and improve the server response time.

TTFBNo data
n/a

Real-user response time

Target ≤ 800ms

Needs real-user data from Chrome UX Report

Render-blocking resources 3 found

3 resources in <head> block the first paint, delaying when anything appears on screen.

stylesheet: /assets/index-Dce2Ul9P.css
script: /airo-video-slots.js
script: /airo-logo-orientation.js
How to fix
How to fix
Add defer to scripts, inline critical CSS, and load the rest asynchronously.
Inline styles 138 found

138 elements carry inline style attributes, which cannot be cached and inflate the document.

How to fix
How to fix
Move repeated styles into a cacheable stylesheet.
Time to first byte

Time to first byte is 299 ms.

HTML size 37 KB

The HTML document is 37 KB.

Deprecated tags

No deprecated HTML tags are used.

Compression

The response is compressed with gzip.

Content-Encoding: gzip
Page weight 28 requests · 1.8 MB

The page loads 28 requests totalling 1.8 MB.

What loaded, by type

Type RequestsTransferred
image7of 9 declared1.4 MB
script9of 5 declared374 KB
font276 KB
stylesheet2of 1 declared15 KB
other78 KB
document17 KB

Of these, 9 requests (440 KB) come from third-party domains. The HTML declares 9 images but only 7 loaded, the rest are lazy-loaded and fetched when scrolled to.

Third-party services 3 services · 440 KB

3 third-party services load on this page, adding 440 KB.

Third-party services

Service TransferredMain thread
GoDaddy361 KB33ms
Google Fonts78 KBunder 1ms
secureserver.net1 KBunder 1ms

0.0s of main-thread time

Browser caching 19 KB re-downloaded

Cache lifetimes are long enough that a returning visitor re-downloads only 19 KB.

Short cache lifetimes

FileCache lifetimeSize
img1.wsimg.com/scc-c2.min.js30m22 KB

1 expire within the hour

Security

Transport security, reputation and the response headers that protect visitors.

! 2i 5✓ 646% · needs work
HSTS

No Strict-Transport-Security header, so a first visit over HTTP can be intercepted before the redirect.

How to fix
How to fix
Strict-Transport-Security: max-age=31536000; includeSubDomains
Clickjacking protection

Nothing prevents this page being embedded in a frame, which allows clickjacking.

How to fix
How to fix
Content-Security-Policy: frame-ancestors 'self'
MIME sniffing

No X-Content-Type-Options header, so browsers may guess a resource type and execute it.

How to fix
How to fix
X-Content-Type-Options: nosniff
Referrer policy

No Referrer-Policy header, so full URLs may leak to third-party sites.

How to fix
How to fix
Referrer-Policy: strict-origin-when-cross-origin
Content Security Policy

No Content-Security-Policy, the main defence against cross-site scripting.

How to fix
How to fix
Content-Security-Policy: default-src 'self'
Permissions policy

No Permissions-Policy header, so any script or embed on the page may ask for the camera, microphone or location.

How to fix
How to fix
Permissions-Policy: camera=(), microphone=(), geolocation=()
security.txt

No security.txt, so somebody who finds a vulnerability has no published way to tell you about it.

https://lysanderslabyrinth.com/.well-known/security.txt
How to fix
How to fix
Publish /.well-known/security.txt with a Contact: line (an email address or a form) and an Expires: date.
Email addresses in the page

No email addresses are written into the page for harvesting bots to collect.

Cookie flags

The cookie the page sets carries Secure, HttpOnly and SameSite.

Version disclosure

No software versions are disclosed in headers or the page.

TLS certificate 88 days left

The TLS certificate is valid for another 88 days, issued by Google Trust Services.

88 days remaining
Google Web Risk

Not listed by Google Web Risk for malware, phishing or unwanted software.

TLS version TLS 1.3

Connections use TLS 1.3.

Server & domain

The server and the domain behind the page: protocol, network, registration and email records.

i 1✓ 686% · good
IPv6

lysanderslabyrinth.com has no IPv6 address. Visitors on IPv6-only mobile networks reach it through a translation gateway, which adds a step.

How to fix
How to fix
Add an AAAA record. Most hosts and every major CDN provide an IPv6 address.
HTTP/2 HTTP/2

Served over HTTP/2, which loads a page's files in parallel over one connection.

CDN Cloudflare

Served through Cloudflare, a CDN, so visitors get the page from a server near them.

Domain expiry 361 days left

lysanderslabyrinth.com is registered until 16 Oct 2027 with GoDaddy.com, LLC.

361 days remaining
Domain age Under a year old

lysanderslabyrinth.com was registered on 16 Oct 2026, under a year ago. Age is not a ranking factor, but an established name is one buyers and partners look for.

SPF record

lysanderslabyrinth.com publishes an SPF record: v=spf1 include:secureserver.net -all

DMARC policy

lysanderslabyrinth.com has a DMARC policy of quarantine.

ads.txt

No ad network loads on this page, so ads.txt is not needed.

Links, media & schema

Links, images and structured data.

! 2✓ 1083% · good
Social share preview From this page's Open Graph tags
Image dimensions 3 found

3 images have no width and height, so the page shifts as they load (hurting CLS).

All 3 point at the same source, one template reused down the page.

# / lineImage source
#1 L32/airo-assets/images/logo/horizontal ×3<img src="/airo-assets/images/logo/horizontal" alt="Lysander's Labyrinth" class="block h-auto max-h-16 md:max-h-20 w-auto max-w-[300px] object-contain">
How to fix
How to fix
<img src="…" width="800" height="600">, the browser reserves the space before decoding.
Responsive images 9 found

9 large images are served at one fixed size, so phones download desktop-sized files.

Shown as 7 unique sources; the counts show how often each repeats.

# / lineImage source
#1 L32/airo-assets/images/logo/horizontal ×3<img src="/airo-assets/images/logo/horizontal" alt="Lysander's Labyrinth" class="block h-auto max-h-16 md:max-h-20 w-auto max-w-[300px] object-contain">
#2 L32/airo-assets/images/pages/home/hero<img src="/airo-assets/images/pages/home/hero" alt="" class="w-full h-full object-cover" loading="eager" fetchpriority="high" width="1920" height="1080">
#3 L32/airo-assets/images/categories/tavern-puzzles<img src="/airo-assets/images/categories/tavern-puzzles" alt="Tavern Puzzles" class="absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" loading="lazy" width="800" height="600">
#4 L32/airo-assets/images/categories/3d-wood-puzzles<img src="/airo-assets/images/categories/3d-wood-puzzles" alt="3D Metal &amp; Wood" class="absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" loading="lazy" width="800" height="400">
#5 L32/airo-assets/images/categories/jigsaw-puzzles<img src="/airo-assets/images/categories/jigsaw-puzzles" alt="Jigsaw Puzzles" class="absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" loading="lazy" width="800" height="400">
#6 L32/airo-assets/images/categories/other-puzzles<img src="/airo-assets/images/categories/other-puzzles" alt="Other Puzzles" class="absolute inset-0 w-full h-full object-cover transition-transform duration-700 group-hover:scale-105" loading="lazy" width="1200" height="400">
#7 L32/airo-assets/images/pages/home/featured-article<img src="/airo-assets/images/pages/home/featured-article" alt="Featured article" class="w-full object-cover" style="aspect-ratio:4/3;border-radius:2px" loading="lazy" width="1200" height="800">
How to fix
How to fix
<img src="hero.jpg" srcset="hero-400.jpg 400w, hero-800.jpg 800w" sizes="(max-width: 600px) 400px, 800px">
Structured data

Structured data is valid: Organization.

Organization

1 type: Organization

Rich result eligibility

Eligible for rich results via Organization.

Organization

1 type: Organization

Link distribution 50 resources

39 internal and 11 external links.

39 internal, 11 external

39 internal, 11 external

Anchor text

Anchor text describes its destinations.

Link rel attributes

Outbound link rel attributes look appropriate.

In-page anchors

In-page anchors resolve to real targets.

Image alt text

All images carry an alt attribute.

Image formats

No heavy legacy image formats found.

Image loading

Image loading strategy looks sound.

Broken links 15 checked

All 15 checked links resolve.

What to fix first

Ranked by impact against effort, the top of this list buys the most for the least work.

1
✕ Critical Largest Contentful Paint is 11.6s (lab data), above the 2.5s target and in the poor range.
Optimise the hero image, remove render-blocking CSS and JS, and improve server response time.
moderate
2
! Recommended The title is about 650px wide and will be truncated in desktop results (limit 580px).
Shorten the title so the important words appear first.
quick fix
3
! Recommended 3 images have no width and height, so the page shifts as they load (hurting CLS).
<img src="…" width="800" height="600">, the browser reserves the space before decoding.
quick fix
4
! Recommended 2 other spellings of this address do not lead here, so search engines can treat them as separate pages and split the ranking between them.
Redirect every spelling (http and https, with and without www) to https://lysanderslabyrinth.com/ with a single 301.
quick fix
5
! Recommended The share image is an SVG, which no social platform shows on a card, so a shared link shows no picture.
Point og:image at a JPEG or PNG of 1200 × 630 pixels that loads publicly, and check it with the platform's own debugger.
quick fix
6
! Recommended No Strict-Transport-Security header, so a first visit over HTTP can be intercepted before the redirect.
Strict-Transport-Security: max-age=31536000; includeSubDomains
quick fix
7
! Recommended Nothing prevents this page being embedded in a frame, which allows clickjacking.
Content-Security-Policy: frame-ancestors 'self'
quick fix
8
! Recommended A page that does not exist returns HTTP 200. Search engines can index endless empty pages, and Search Console reports them as soft 404s.
Make the server or the application return a 404 status for unknown addresses. The not-found page can look the same; only the status code has to change.
quick fix
9
! Recommended 9 large images are served at one fixed size, so phones download desktop-sized files.
<img src="hero.jpg" srcset="hero-400.jpg 400w, hero-800.jpg 800w" sizes="(max-width: 600px) 400px, 800px">
moderate
10
! Recommended First Contentful Paint is 4.0s (lab data), above the 1.8s target.
Cut render-blocking CSS and JS, and improve the server response time.
moderate
11
· Notice 3 resources in <head> block the first paint, delaying when anything appears on screen.
Add defer to scripts, inline critical CSS, and load the rest asynchronously.
moderate
12
· Notice The page publishes no date. Not expected on a page like this; worth adding if its content goes out of date.
<time datetime="2026-09-17">17 September 2026</time>, or datePublished in Article structured data.
quick fix

Score breakdown

How each area scored. Categories that could not be measured are excluded rather than counted as zero.

Indexability & Crawling38 checks · 10 issues
64
On-Page Content & Structure22 checks · 5 issues
81
Core Web Vitals13 checks · 4 issues
70
Schema & Rich Snippets2 checks · 0 issues
100
Media & Links10 checks · 2 issues
91
Overall scoreGrade B+ · 64/87 passed
76