http://demo.example.com/landing
10/31/2026, 1:25:46 PM · 60 rules · 0.0s · Static analysis only — no Core Web Vitals key configured
Performance
SEO
Accessibility
Best Practices
Security
- ℹ️ This is a sample report generated from a bundled demo page — no website was contacted.
🔴 Fix first
Ranked by impact × how many elements are affected × how easy the fix is. The formula is documented on the methodology page.
- 1This page tells search engines not to index it.Impact: High · Effort: Easy · SEO-006
- 2This page is served over plain HTTP.Impact: High · Effort: Easy · SEC-001
- 32 form fields have no accessible label.Impact: High · Effort: Medium · A11Y-003
- 4This page has no title tag.Impact: High · Effort: Easy · SEO-001
- 5This page has no usable mobile viewport tag.Impact: High · Effort: Easy · SEO-004
- 61 image on this page has no alt attribute.Impact: High · Effort: Easy · A11Y-001
- 7The page does not declare a language.Impact: High · Effort: Easy · A11Y-002
- 81 link has no readable text.Impact: High · Effort: Easy · A11Y-004
⚡ 6 quick wins
Meaningful impact, little effort.
- ✓Remove the noindex directive if this page should appear in search results.This page tells search engines not to index it.
- ✓Install a TLS certificate (Let's Encrypt is free) and redirect all HTTP traffic to HTTPS.This page is served over plain HTTP.
- ✓Write a unique, descriptive title of roughly 50–60 characters that contains the page's main topic and your brand.This page has no title tag.
- ✓Add <meta name="viewport" content="width=device-width, initial-scale=1"> to the <head>.This page has no usable mobile viewport tag.
- ✓Describe what the image conveys in its alt attribute, or use alt="" if it is purely decorative.1 image on this page has no alt attribute.
- ✓Set the document language, e.g. <html lang="en">.The page does not declare a language.
📊 Performance measurements
🧾 All findings
This page tells search engines not to index it.
A noindex directive removes the page from search results entirely. It is usually left behind by accident after a staging deploy.
- Meta robots
- noindex, nofollow
- X-Robots-Tag
- none
Severe impact on how well search engines can find and present this page.
Remove the noindex directive if this page should appear in search results.
This page is served over plain HTTP.
Without HTTPS, everything between the visitor and the server can be read or modified in transit, and browsers mark the site as 'Not secure'.
- Final URL
- http://demo.example.com/landing
- Protocol
- http:
Severe impact on the security posture of the site.
Install a TLS certificate (Let's Encrypt is free) and redirect all HTTP traffic to HTTPS.
2 form fields have no accessible label.
An input without a label is announced as just "edit text". Users of screen readers cannot tell what to type.
- Field 1
- <input type="email" name="email">
- Field 2
- <input type="password" name="password">
Severe impact on people using assistive technology or keyboard navigation.
Associate a visible <label for="…"> with every field, or provide aria-label when a visible label is impossible.
Technical details
- Rule
- A11Y-003 — Form inputs have labels
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Element
<input type="email" name="email">- Priority score
- 12.1
<label for="email">Email address</label> <input id="email" type="email" name="email">
This page has no title tag.
The title is the clickable headline in search results and the label of the browser tab. Search engines weigh it heavily when matching a page to a query.
- Element
- <title>
- Found
- none
Affects how the page appears in search results and how well it matches searches.
Write a unique, descriptive title of roughly 50–60 characters that contains the page's main topic and your brand.
Technical details
- Rule
- SEO-001 — Page title
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 9.6
<title>Your page topic | Brand name</title>
This page has no usable mobile viewport tag.
Without a viewport meta tag mobile browsers render the page at desktop width and zoom out, which hurts both mobile usability and mobile search performance.
- Element
- <meta name="viewport">
- Content
- none
Significant impact on how well search engines can find and present this page.
Add <meta name="viewport" content="width=device-width, initial-scale=1"> to the <head>.
Technical details
- Rule
- SEO-004 — Viewport meta tag
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 9.6
<meta name="viewport" content="width=device-width, initial-scale=1">
1 image on this page has no alt attribute.
Screen readers announce the alt attribute instead of the image. Without it, users hear a file name or nothing at all.
- Image 1
- <img> → /hero.png
Blocks screen-reader users from understanding image content, and removes an SEO signal.
Describe what the image conveys in its alt attribute, or use alt="" if it is purely decorative.
Technical details
- Rule
- A11Y-001 — Images have alt text
- Category
- accessibility
- URL
- http://insecure.example.com/hero.png
- Element
<img>- <img>
- http://insecure.example.com/hero.png
- Priority score
- 9.6
<img src="…" alt="Describe the image content"> <!-- decorative: alt="" -->
The page does not declare a language.
The lang attribute tells screen readers which pronunciation rules to use and helps browsers offer translation.
- Element
- <html>
Significant impact on people using assistive technology or keyboard navigation.
Set the document language, e.g. <html lang="en">.
Technical details
- Rule
- A11Y-002 — Page language declared
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Priority score
- 9.6
<html lang="en">
1 link has no readable text.
A link with no text (often an icon-only link) is announced as "link" with no destination, and gives search engines no anchor context.
- Link 1
- href="/broken"
Significant impact on people using assistive technology or keyboard navigation.
Add visible link text, or aria-label describing where the link goes.
Technical details
- Rule
- A11Y-004 — Links have discernible text
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Priority score
- 9.6
<a href="/cart" aria-label="View your shopping cart"><svg …></svg></a>
1 button has no accessible name.
A button with no name is announced only as "button", so nobody using a screen reader knows what it does.
- Button 1
- <button>
Significant impact on people using assistive technology or keyboard navigation.
Give every button visible text or an aria-label.
Technical details
- Rule
- A11Y-005 — Buttons have accessible names
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Priority score
- 9.6
<button aria-label="Close dialog">×</button>
1 form submit data over insecure HTTP.
A form that posts to an http:// endpoint sends whatever the user typed — including passwords — in plain text.
- Form 1
- http://example.com/login
Significant impact on the security posture of the site.
Point the form action at an https:// endpoint.
1 script in the page head block rendering until they finish loading.
A <script src> in the <head> without async or defer stops HTML parsing until the file is downloaded and executed, delaying first paint.
- Script 1
- /js/tracker.js
Significant impact on how fast the page feels to visitors.
Add defer (or move the script to the end of <body>) unless it must run before the page renders.
Technical details
- Rule
- PERF-001 — Render-blocking scripts
- Category
- performance
- URL
- http://demo.example.com/landing
- Priority score
- 8
<script src="/js/app.js" defer></script>
Text "Low contrast text" has a contrast ratio of 2.85:1.
Text needs a contrast ratio of at least 4.5:1 against its background (3:1 for large text) to stay readable for low-vision users and in bright sunlight.
- Foreground
- #999999
- Background
- #ffffff
- Ratio
- 2.85:1
Significant impact on people using assistive technology or keyboard navigation.
Darken the text or lighten the background until the ratio is at least 4.5:1.
Technical details
- Rule
- A11Y-011 — Inline text contrast
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Priority score
- 7.4
2 images do not declare width and height, which can make the layout jump while loading.
Without width and height (or a CSS aspect-ratio) the browser does not know how much space to reserve, so content jumps as images load. That is measured as Cumulative Layout Shift.
- Image 1
- <img> /hero.png
- Image 2
- <img> /images/photo.jpg
Moderate impact on how fast the page feels to visitors.
Add width and height attributes matching the image's aspect ratio.
Technical details
- Rule
- PERF-IMG-003 — Images declare dimensions
- Category
- performance
- URL
- http://demo.example.com/landing
- Element
<img>- Priority score
- 6.9
<img src="/images/hero.webp" width="1200" height="630" alt="…">
The HTML delivered by the server contains only 17 words of text.
If the HTML response contains almost no text, search engines that do not execute JavaScript see an empty page. Client-side-only rendering is the usual cause.
- Words in HTML
- 17
- HTML size
- 1 KB
- Detected framework
- unknown
Significant impact on how well search engines can find and present this page.
Server-render or pre-render the main content so it exists in the initial HTML response.
No Content-Security-Policy is enforced.
A Content-Security-Policy restricts where scripts, styles and frames may come from. It is the strongest available defence against cross-site scripting.
- Header
- Content-Security-Policy
- Value
- absent
Significant impact on the security posture of the site.
Start with a report-only policy, tighten it until nothing is reported, then enforce it.
Technical details
- Rule
- SEC-003 — Content-Security-Policy
- Category
- security
- URL
- http://demo.example.com/landing
- Priority score
- 5.5
Content-Security-Policy: default-src 'self'; script-src 'self'; object-src 'none'; frame-ancestors 'self'
This page has no meta description.
The meta description is the snippet search engines usually show under your title. A good one improves click-through rate even though it is not a direct ranking factor.
- Element
- <meta name="description">
- Found
- none
Affects click-through rate from search results.
Add a 120–160 character description that summarises the page and invites the click.
Technical details
- Rule
- SEO-002 — Meta description
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 5.5
<meta name="description" content="A short, specific summary of this page in about 150 characters.">
No canonical URL is declared.
A canonical link tells search engines which URL is the master copy of a page, preventing duplicate-content dilution across parameter and protocol variants.
- Audited URL
- http://demo.example.com/landing
Moderate impact on how well search engines can find and present this page.
Add exactly one absolute canonical link pointing at the preferred version of this page.
Technical details
- Rule
- SEO-003 — Canonical URL
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 5.5
<link rel="canonical" href="http://demo.example.com/landing">
No XML sitemap could be found.
A sitemap helps search engines discover every page you care about, especially pages that are not well linked internally.
- Checked
- http://demo.example.com/sitemap.xml
- robots.txt sitemaps
- none
Moderate impact on how well search engines can find and present this page.
Publish an XML sitemap and reference it from robots.txt.
The heading structure skips levels 1 time.
Screen-reader users navigate by heading level. Skipping levels (h2 → h4) makes the document outline confusing.
- Skip 1
- h1 → h4 at "Jumped heading level"
Moderate impact on people using assistive technology or keyboard navigation.
Use heading levels in order; style them with CSS rather than picking a level for its size.
1 iframe has no title.
Screen readers announce iframes by their title. Untitled frames are announced as just "frame".
- Frame 1
- /embed
Moderate impact on people using assistive technology or keyboard navigation.
Add a descriptive title, e.g. <iframe title="Location map">.
Technical details
- Rule
- A11Y-009 — Frames have titles
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Priority score
- 5.5
<iframe src="…" title="What this frame shows"></iframe>
Nothing stops other sites from embedding this page in a frame.
Without frame restrictions, an attacker can embed your page in an invisible iframe and trick users into clicking things they cannot see.
- CSP
- absent
- X-Frame-Options
- absent
Moderate impact on the security posture of the site.
Add frame-ancestors 'self' to your CSP (X-Frame-Options: SAMEORIGIN is the legacy equivalent).
Technical details
- Rule
- SEC-008 — Clickjacking protection
- Category
- security
- URL
- http://demo.example.com/landing
- Priority score
- 5.5
Content-Security-Policy: frame-ancestors 'self'
The page has no doctype, so browsers render it in quirks mode.
Without <!DOCTYPE html> browsers fall back to quirks mode, where layout and CSS behave differently from every modern expectation.
- Document start
- <html> <head> <script src="/js/tracker.js"></script> <link rel="stylesheet" href="/css/site.css"> <link rel="stylesheet"
Moderate impact on the robustness and correctness of the page.
Make <!DOCTYPE html> the very first line of the document.
Technical details
- Rule
- BP-001 — HTML5 doctype
- Category
- best-practices
- URL
- http://demo.example.com/landing
- Priority score
- 4.9
<!DOCTYPE html>
No character encoding is declared.
If the encoding is not declared early, browsers may guess wrong and display mojibake instead of accented characters and symbols.
- Content-Type
- text/html
Moderate impact on the robustness and correctness of the page.
Put <meta charset="utf-8"> as the first element inside <head>.
Technical details
- Rule
- BP-002 — Character encoding declared
- Category
- best-practices
- URL
- http://demo.example.com/landing
- Priority score
- 4.9
<meta charset="utf-8">
Reaching this page takes 2 redirects before the real content loads.
Each redirect adds a round trip before anything renders and dilutes crawl budget. Chains of two or more are worth collapsing.
- Hop 1 (301)
- http://demo.example.com → http://demo.example.com/l
- Hop 2 (302)
- http://demo.example.com/l → http://demo.example.com/landing
Moderate impact on how well search engines can find and present this page.
Point the first URL directly at the final destination so only one hop (or none) remains.
Structured data is present but invalid, so search engines will ignore it.
Structured data lets search engines understand entities on the page and can unlock rich results such as breadcrumbs, FAQs and product cards.
- Problem 1
- Block 1: invalid JSON
Moderate impact on how well search engines can find and present this page.
Add valid schema.org JSON-LD that describes what this page represents.
Technical details
- Rule
- SEO-011 — Structured data (JSON-LD)
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 4.2
ARIA attributes are used incorrectly on this page.
Invalid ARIA roles are ignored, and aria-hidden on a focusable element creates a control that keyboard users can reach but screen readers cannot describe.
- Problem 1
- Unknown role="thingamajig"
Moderate impact on people using assistive technology or keyboard navigation.
Use a valid role (or native HTML instead), and never put aria-hidden on interactive elements.
Technical details
- Rule
- A11Y-008 — ARIA usage
- Category
- accessibility
- URL
- http://demo.example.com/landing
- Priority score
- 4.2
1 element use a positive tabindex and jump ahead in the keyboard order.
A positive tabindex forces an element ahead of everything else in the tab order, which almost always produces a confusing keyboard experience.
- Element 1
- tabindex="3"
Moderate impact on people using assistive technology or keyboard navigation.
Use tabindex="0" (or no tabindex) and rely on DOM order for focus sequence.
1 inline script use document.write().
document.write() blocks parsing and can be ignored entirely by browsers on slow connections, which silently breaks whatever it injected.
- Script 1
- document.write("<b>hello</b>"…
Moderate impact on the robustness and correctness of the page.
Insert nodes with DOM APIs, or load third-party scripts asynchronously.
Shared links will look plain: og:title, og:description, og:image are missing.
Open Graph tags control the title, description and image shown when the page is shared on social platforms and messaging apps.
- og:title
- missing
- og:description
- missing
- og:image
- missing
Minor impact on how well search engines can find and present this page.
Add og:title, og:description, og:image and og:url to the <head>.
Technical details
- Rule
- SEO-009 — Open Graph metadata
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 3.4
<meta property="og:title" content="…"> <meta property="og:description" content="…"> <meta property="og:image" content="https://…/share.png">
This page has 2 H1 headings, which blurs the page's main topic.
The H1 is the main on-page heading. Search engines and screen readers use it to understand what the page is about.
- H1 1
- First title
- H1 2
- Second title
Minor impact on how well search engines can find and present this page.
Use exactly one H1 that describes the page content.
Response headers reveal the server software and version.
Version numbers in response headers tell an attacker exactly which known vulnerabilities to try. Hiding them is free.
- Server
- nginx/1.18.0
- X-Powered-By
- PHP/7.4.3
Minor impact on the security posture of the site.
Strip version details from Server and remove X-Powered-By entirely.
Web font loading can be improved: 1 font stylesheet without a preconnect hint and no font-display strategy detected.
Web fonts fetched from a third-party domain need a fresh DNS lookup and TLS handshake; without font-display the text stays invisible while they load.
- Font resource 1
- https://fonts.googleapis.com/css2?family=Inter
Minor impact on how fast the page feels to visitors.
Add <link rel="preconnect"> for the font host and use font-display: swap (or self-host the font).
Technical details
- Rule
- PERF-007 — Web font loading
- Category
- performance
- URL
- http://demo.example.com/landing
- Priority score
- 3
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Inter&display=swap">
The page uses 2 deprecated elements (<center>, <font>).
Elements like <center>, <font> and <marquee> were removed from the standard. Browsers still tolerate them, but their behaviour is not guaranteed.
- <center>
- 1 occurrences
- <font>
- 1 occurrences
Minor impact on the robustness and correctness of the page.
Replace deprecated presentational elements with CSS.
No robots.txt was found at the domain root.
robots.txt tells crawlers which parts of the site they may request and where the sitemap lives. A missing file is not fatal, but a blocking one is.
- URL
- http://demo.example.com/robots.txt
- Status
- no response
Minor impact on how well search engines can find and present this page.
Publish a robots.txt at the domain root and reference your sitemap from it.
Technical details
- Rule
- SEO-007 — robots.txt
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
User-agent: * Allow: / Sitemap: http://demo.example.com/sitemap.xml
No Twitter/X card metadata was found.
Twitter/X card tags control how links to the page render on X and in several other apps that reuse the format.
- Fallback og:image
- missing
Minor impact on how well search engines can find and present this page.
Add <meta name="twitter:card" content="summary_large_image"> plus twitter:title and twitter:description.
Technical details
- Rule
- SEO-010 — Twitter/X card metadata
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
<meta name="twitter:card" content="summary_large_image">
No favicon is declared in the page HTML.
A favicon is shown in browser tabs, bookmarks and some search result layouts. Its absence looks unfinished.
- Checked
- link[rel~="icon"], link[rel="apple-touch-icon"]
Minor impact on how well search engines can find and present this page.
Add <link rel="icon" href="/favicon.ico"> (plus an SVG or 180×180 PNG for modern devices).
Technical details
- Rule
- SEO-015 — Favicon
- Category
- seo
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
<link rel="icon" href="/favicon.ico" sizes="any">
The X-Content-Type-Options header is missing.
Without nosniff, browsers may guess a response's type and execute a file that was never meant to be a script.
- Header
- X-Content-Type-Options
- Value
- absent
Minor impact on the security posture of the site.
Send X-Content-Type-Options: nosniff on all responses.
Technical details
- Rule
- SEC-004 — X-Content-Type-Options
- Category
- security
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
X-Content-Type-Options: nosniff
No Referrer-Policy is declared.
Referrer-Policy controls how much of the current URL is sent to other sites. The default can leak private paths and query strings.
- Header
- Referrer-Policy
- Meta fallback
- absent
Minor impact on the security posture of the site.
Send Referrer-Policy: strict-origin-when-cross-origin.
Technical details
- Rule
- SEC-005 — Referrer-Policy
- Category
- security
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
Referrer-Policy: strict-origin-when-cross-origin
No Permissions-Policy is declared.
Permissions-Policy lets you switch off browser features (camera, microphone, geolocation) that your site — and any embedded third party — should never use.
- Header
- Permissions-Policy
- Value
- absent
Minor impact on the security posture of the site.
Send Permissions-Policy disabling the features you do not need.
Technical details
- Rule
- SEC-006 — Permissions-Policy
- Category
- security
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
Permissions-Policy: camera=(), microphone=(), geolocation=()
1 external link open in a new tab without rel="noopener".
A target="_blank" link gives the opened page a reference back to yours unless rel="noopener" is set. Older browsers allow that page to redirect yours.
- Link 1
- /page
Minor impact on the security posture of the site.
Add rel="noopener noreferrer" to external links that open in a new tab.
Technical details
- Rule
- SEC-012 — Cross-origin link safety
- Category
- security
- URL
- http://demo.example.com/landing
- Priority score
- 2.7
<a href="https://example.com" target="_blank" rel="noopener noreferrer">Example</a>
🔗 Links (0 broken)
| Status | URL | Type |
|---|---|---|
| unverified | http://demo.example.com/broken | internal |
| unverified | https://external.example.com/page | external |
External hosts often block automated requests. Those links are shown as “unverified” rather than broken.
🖼️ Image intelligence
| Image | Size | Format | Dimensions | Alt text |
|---|---|---|---|---|
| hero.png | not measured | PNG | unknown | missing |
| photo.jpg | not measured | JPG | unknown | (decorative) |
0 of 2 images were measured with a real request. Savings estimates are derived from those measured bytes only.
✅ Passed checks
- PERF-006 The initial HTML references 6 resources.
🧩 Detected technology
- nginx serverserver: nginx/1.18.0
🚫 Not applicable
- PERF-IMG-001 No image sizes could be measured for this page.
- PERF-IMG-002 No image sizes could be measured.
- PERF-IMG-004 Too few images for lazy loading to matter.
- PERF-002 No script sizes could be measured.
- PERF-003 No stylesheet sizes could be measured.
- PERF-004 No resource sizes could be measured.
- PERF-005 Response time was not measured in this run.
- PERF-CWV-001 Core Web Vitals need a PageSpeed Insights API key (PAGESPEED_API_KEY).
- PERF-CWV-002 Core Web Vitals need a PageSpeed Insights API key (PAGESPEED_API_KEY).
- PERF-CWV-003 Interaction data needs a PageSpeed Insights API key (PAGESPEED_API_KEY).
- SEO-013 This page declares no hreflang annotations (only needed for multi-language sites).
- A11Y-007 No viewport meta tag to evaluate (reported by SEO-004).
- BP-003 The HTML document is too small for compression to matter.
- BP-004 No static assets could be measured.
- BP-007 No links were checked in this run.
- BP-008 No links were checked in this run.
- SEC-002 HSTS only applies to HTTPS pages (see SEC-001).
- SEC-007 Mixed content only applies to HTTPS pages (see SEC-001).
- SEC-010 This response sets no cookies.