SEO audit for frstream.live
Front Row Stream - Live Sports Streaming & Schedules
Health 65/100 (fair) · 10 pages crawled · generated 2026-08-26
Download Markdown report (feed to ChatGPT / Claude / Cursor)Watch live sports streams, check schedules, and find upcoming matches for Football, Basketball, MMA, and more. Fast, clean, and reliable.
| Category | Score | Errors | Warnings | Notices |
|---|---|---|---|---|
| Links | 0 | 0 | 52 | 0 |
| Duplicate | 49 | 0 | 17 | 10 |
| Performance | 70 | 0 | 10 | 22 |
| Security | 70 | 0 | 10 | 10 |
| Content | 88 | 0 | 4 | 6 |
| Agent Readiness | 94 | 0 | 2 | 7 |
| Crawlability | 100 | 0 | 0 | 5 |
| Social | 100 | 0 | 0 | 18 |
| Structured Data | 100 | 0 | 0 | 11 |
Warnings (9 rules)
warning Control has no accessible name
Rule agent.control_no_name · Agent Readiness · 2 occurrence(s)
- https://frstream.live/ — 2 button/link(s) with no text or aria-label — an agent can't target them
- https://frstream.live/index.html — 2 button/link(s) with no text or aria-label — an agent can't target them
warning Thin content (low word count)
Rule content.thin · Content · 4 occurrence(s)
- https://frstream.live/ — 59 words
- https://frstream.live/contact — 126 words
- https://frstream.live/contact.html — 126 words
- https://frstream.live/index.html — 59 words
warning Duplicate page content
Rule duplicate.content · Duplicate · 6 occurrence(s)
- https://frstream.live/dmca — content shared by 2 pages: https://frstream.live/dmca.html
- https://frstream.live/dmca.html — content shared by 2 pages: https://frstream.live/dmca
- https://frstream.live/privacy — content shared by 2 pages: https://frstream.live/privacy.html
- https://frstream.live/privacy.html — content shared by 2 pages: https://frstream.live/privacy
- https://frstream.live/terms — content shared by 2 pages: https://frstream.live/terms.html
- https://frstream.live/terms.html — content shared by 2 pages: https://frstream.live/terms
warning Homepage duplicated across protocol/host variants (no redirect)
Rule duplicate.protocol_host · Duplicate · 1 occurrence(s)
- https://frstream.live/ — http://frstream.live/ serves the same homepage content with a 200 and no redirect — Google sees a duplicate. Pick one canonical host/scheme and 301-redirect the others.
warning Duplicate <title> across pages
Rule duplicate.title · Duplicate · 10 occurrence(s)
- https://frstream.live/ — title shared by 2 pages: https://frstream.live/index.html
- https://frstream.live/contact — title shared by 2 pages: https://frstream.live/contact.html
- https://frstream.live/contact.html — title shared by 2 pages: https://frstream.live/contact
- https://frstream.live/dmca — title shared by 2 pages: https://frstream.live/dmca.html
- https://frstream.live/dmca.html — title shared by 2 pages: https://frstream.live/dmca
- https://frstream.live/index.html — title shared by 2 pages: https://frstream.live/
- https://frstream.live/privacy — title shared by 2 pages: https://frstream.live/privacy.html
- https://frstream.live/privacy.html — title shared by 2 pages: https://frstream.live/privacy
- https://frstream.live/terms — title shared by 2 pages: https://frstream.live/terms.html
- https://frstream.live/terms.html — title shared by 2 pages: https://frstream.live/terms
warning Content-Type header doesn't match the actual content
Rule headers.content_type_mismatch · Security · 10 occurrence(s)
- https://frstream.live/ — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/contact — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/contact.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/dmca — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/dmca.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/index.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/privacy — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/privacy.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/terms — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
- https://frstream.live/terms.html — the Content-Type is "text/html" with no charset — the HTTP charset is authoritative and browsers otherwise guess the encoding, which can garble non-ASCII text (mojibake). Declare it explicitly: "text/html; charset=utf-8".
warning Orphan page (no internal inlinks)
Rule links.orphan · Links · 4 occurrence(s)
- https://frstream.live/contact — no internal links point here
- https://frstream.live/dmca — no internal links point here
- https://frstream.live/privacy — no internal links point here
- https://frstream.live/terms — no internal links point here
warning Internal link points to a redirect
Rule links.redirect_target · Links · 48 occurrence(s)
- https://frstream.live/ — https://frstream.live/contact.html → https://frstream.live/contact
- https://frstream.live/ — https://frstream.live/dmca.html → https://frstream.live/dmca
- https://frstream.live/ — https://frstream.live/privacy.html → https://frstream.live/privacy
- https://frstream.live/ — https://frstream.live/terms.html → https://frstream.live/terms
- https://frstream.live/contact — https://frstream.live/contact.html → https://frstream.live/contact
- https://frstream.live/contact — https://frstream.live/dmca.html → https://frstream.live/dmca
- https://frstream.live/contact — https://frstream.live/index.html → https://frstream.live/
- https://frstream.live/contact — https://frstream.live/privacy.html → https://frstream.live/privacy
- https://frstream.live/contact — https://frstream.live/terms.html → https://frstream.live/terms
- https://frstream.live/dmca — https://frstream.live/contact.html → https://frstream.live/contact
- https://frstream.live/dmca — https://frstream.live/dmca.html → https://frstream.live/dmca
- https://frstream.live/dmca — https://frstream.live/index.html → https://frstream.live/
- https://frstream.live/dmca — https://frstream.live/privacy.html → https://frstream.live/privacy
- https://frstream.live/dmca — https://frstream.live/terms.html → https://frstream.live/terms
- https://frstream.live/privacy — https://frstream.live/contact.html → https://frstream.live/contact
- https://frstream.live/privacy — https://frstream.live/dmca.html → https://frstream.live/dmca
- https://frstream.live/privacy — https://frstream.live/index.html → https://frstream.live/
- https://frstream.live/privacy — https://frstream.live/privacy.html → https://frstream.live/privacy
- https://frstream.live/privacy — https://frstream.live/terms.html → https://frstream.live/terms
- https://frstream.live/privacy.html — https://frstream.live/index.html → https://frstream.live/
- https://frstream.live/terms — https://frstream.live/contact.html → https://frstream.live/contact
- https://frstream.live/terms — https://frstream.live/dmca.html → https://frstream.live/dmca
- https://frstream.live/terms — https://frstream.live/index.html → https://frstream.live/
- https://frstream.live/terms — https://frstream.live/privacy.html → https://frstream.live/privacy
- https://frstream.live/terms — https://frstream.live/terms.html → https://frstream.live/terms
warning Render-blocking script in <head> (no defer/async)
Rule perf.render_blocking · Performance · 10 occurrence(s)
- https://frstream.live/ — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/contact — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/contact.html — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/dmca — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/dmca.html — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/index.html — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/privacy — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/privacy.html — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/terms — 1 render-blocking <script> in <head> (add defer/async or use type=module)
- https://frstream.live/terms.html — 1 render-blocking <script> in <head> (add defer/async or use type=module)
Notices (15 rules)
notice Heading levels skip a level
Rule agent.heading_skip · Agent Readiness · 6 occurrence(s)
- https://frstream.live/contact — h3 follows h1 — skips h2
- https://frstream.live/contact.html — h3 follows h1 — skips h2
- https://frstream.live/dmca — h3 follows h1 — skips h2
- https://frstream.live/dmca.html — h3 follows h1 — skips h2
- https://frstream.live/terms — h3 follows h1 — skips h2
- https://frstream.live/terms.html — h3 follows h1 — skips h2
notice No llms.txt for AI agents
Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)
- https://frstream.live/ — no llms.txt found at the site root — add one so AI agents get a curated site summary
notice Main text is hard to read (low Flesch Reading Ease)
Rule content.readability_poor · Content · 4 occurrence(s)
- https://frstream.live/contact — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://frstream.live/contact.html — this page reads as difficult (Flesch Reading Ease 49, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://frstream.live/dmca — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
- https://frstream.live/dmca.html — this page reads as difficult (Flesch Reading Ease 47, below 50) — long sentences and multi-syllable words make it hard to scan. Shorten sentences and prefer plainer words to widen your audience. Density can be legitimate for expert, technical or legal content, so judge it against who the page is for.
notice Duplicate meta description across pages
Rule duplicate.meta_desc · Duplicate · 10 occurrence(s)
- https://frstream.live/ — meta description shared by 2 pages: https://frstream.live/index.html
- https://frstream.live/contact — meta description shared by 2 pages: https://frstream.live/contact.html
- https://frstream.live/contact.html — meta description shared by 2 pages: https://frstream.live/contact
- https://frstream.live/dmca — meta description shared by 2 pages: https://frstream.live/dmca.html
- https://frstream.live/dmca.html — meta description shared by 2 pages: https://frstream.live/dmca
- https://frstream.live/index.html — meta description shared by 2 pages: https://frstream.live/
- https://frstream.live/privacy — meta description shared by 2 pages: https://frstream.live/privacy.html
- https://frstream.live/privacy.html — meta description shared by 2 pages: https://frstream.live/privacy
- https://frstream.live/terms — meta description shared by 2 pages: https://frstream.live/terms.html
- https://frstream.live/terms.html — meta description shared by 2 pages: https://frstream.live/terms
notice Legacy <meta name=keywords> tag present (Google ignores it)
Rule meta.keywords_present · Content · 2 occurrence(s)
- https://frstream.live/ — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
- https://frstream.live/index.html — a <meta name="keywords"> tag is present — Google has ignored it since 2009; remove it to cut template debt
notice Missing Open Graph tags
Rule og.missing · Social · 8 occurrence(s)
- https://frstream.live/contact — og:title, og:description, og:image
- https://frstream.live/contact.html — og:title, og:description, og:image
- https://frstream.live/dmca — og:title, og:description, og:image
- https://frstream.live/dmca.html — og:title, og:description, og:image
- https://frstream.live/privacy — og:title, og:description, og:image
- https://frstream.live/privacy.html — og:title, og:description, og:image
- https://frstream.live/terms — og:title, og:description, og:image
- https://frstream.live/terms.html — og:title, og:description, og:image
notice No ETag header (no conditional GET for unchanged pages)
Rule perf.no_etag · Performance · 10 occurrence(s)
- https://frstream.live/ — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/contact — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/contact.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/dmca — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/dmca.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/index.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/privacy — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/privacy.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/terms — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
- https://frstream.live/terms.html — the response carries no ETag header — without an ETag (or Last-Modified) there is no cache-revalidation mechanism, so crawlers re-download the full body every visit. Emit an ETag (a content hash) to enable conditional If-None-Match requests.
notice No Last-Modified header (no conditional GET for unchanged pages)
Rule perf.no_last_modified · Performance · 10 occurrence(s)
- https://frstream.live/ — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/contact — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/contact.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/dmca — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/dmca.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/index.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/privacy — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/privacy.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/terms — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
- https://frstream.live/terms.html — the response carries no Last-Modified header — Googlebot can't send an If-Modified-Since request, so it re-downloads the full page body on every crawl even when nothing changed. Emit Last-Modified (or an ETag) on stable pages to enable 304 Not Modified responses.
notice Slow server response
Rule perf.slow_response · Performance · 2 occurrence(s)
- https://frstream.live/contact.html — 3007 ms
- https://frstream.live/terms.html — 3016 ms
notice URL redirects to another URL
Rule redirect.single · Crawlability · 5 occurrence(s)
- https://frstream.live/contact.html — redirects to https://frstream.live/contact
- https://frstream.live/dmca.html — redirects to https://frstream.live/dmca
- https://frstream.live/index.html — redirects to https://frstream.live/
- https://frstream.live/privacy.html — redirects to https://frstream.live/privacy
- https://frstream.live/terms.html — redirects to https://frstream.live/terms
notice Deep page has no BreadcrumbList structured data
Rule schema.breadcrumb_missing · Structured Data · 1 occurrence(s)
- https://frstream.live/index.html — depth-2 page has structured data but no BreadcrumbList
notice Deprecated schema type with no Google rich result
Rule schema.deprecated_type · Structured Data · 2 occurrence(s)
- https://frstream.live/ — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
- https://frstream.live/index.html — deprecated rich-result type(s) present: Sitelinks Searchbox. The markup is valid schema.org but Google no longer generates a rich result for it — remove or repurpose the block.
notice No structured data detected
Rule schema.none · Structured Data · 8 occurrence(s)
notice Missing recommended security headers
Rule security.missing_headers · Security · 10 occurrence(s)
- https://frstream.live/ — HSTS, CSP, X-Content-Type-Options
- https://frstream.live/contact — HSTS, CSP, X-Content-Type-Options
- https://frstream.live/contact.html — HSTS, CSP, X-Content-Type-Options
- https://frstream.live/dmca — HSTS, CSP, X-Content-Type-Options
- https://frstream.live/dmca.html — CSP, X-Content-Type-Options, HSTS
- https://frstream.live/index.html — HSTS, CSP, X-Content-Type-Options
- https://frstream.live/privacy — HSTS, CSP, X-Content-Type-Options
- https://frstream.live/privacy.html — CSP, X-Content-Type-Options, HSTS
- https://frstream.live/terms — X-Content-Type-Options, HSTS, CSP
- https://frstream.live/terms.html — HSTS, CSP, X-Content-Type-Options
notice Missing Twitter Card tag
Rule twitter.missing · Social · 10 occurrence(s)
| URL | Status | Indexable | Words | In-links |
|---|---|---|---|---|
| https://frstream.live/contact.html Contact & Legal Inquiries - Front Row Stream |
200 | yes | 126 | 10 |
| https://frstream.live/dmca.html DMCA & Copyright Policy - Front Row Stream |
200 | yes | 467 | 10 |
| https://frstream.live/privacy.html Privacy Policy - Front Row Stream |
200 | yes | 431 | 10 |
| https://frstream.live/terms.html Terms of Service - Front Row Stream |
200 | yes | 604 | 10 |
| https://frstream.live/index.html Front Row Stream - Live Sports Streaming & Schedules |
200 | yes | 59 | 8 |
| https://frstream.live/ Front Row Stream - Live Sports Streaming & Schedules |
200 | yes | 59 | 0 |
| https://frstream.live/contact Contact & Legal Inquiries - Front Row Stream |
200 | yes | 126 | 0 |
| https://frstream.live/dmca DMCA & Copyright Policy - Front Row Stream |
200 | yes | 467 | 0 |
| https://frstream.live/privacy Privacy Policy - Front Row Stream |
200 | yes | 431 | 0 |
| https://frstream.live/terms Terms of Service - Front Row Stream |
200 | yes | 604 | 0 |
Audit your own site — free
157 checks, internal PageRank, render-diff. No signup, results in ~30s.