Catalog / tomasbarradas.pt
58

SEO audit for tomasbarradas.pt

DJ Tomás Barradas - O DJ Preferido para a Animação do seu Evento

otherJoomla

Health 58/100 (fair) · 17 pages crawled · generated 2026-08-26

Download Markdown report (feed to ChatGPT / Claude / Cursor)
Screenshot of tomasbarradas.pt
17
pages crawled
15
indexable pages
4
errors
84
warnings
177
notices
2
orphan pages
0
broken links
Category breakdown
CategoryScoreErrorsWarningsNotices
Crawlability 86 2 1 2
Sitemap 88 2 0 0
Links 63 0 21 17
Performance 74 0 15 36
Canonical 79 0 12 3
Agent Readiness 81 0 11 22
Duplicate 86 0 8 0
Meta Description 86 0 8 4
Content 93 0 4 3
Structured Data 96 0 2 5
Headings 98 0 1 3
Robots 98 0 1 0
Cache 100 0 0 15
Images 100 0 0 14
Security 100 0 0 28
Social 100 0 0 17
Titles 100 0 0 7
URL 100 0 0 1
Findings

Errors (2 rules)

error Non-200 URL listed in sitemap

Rule sitemap.not_200 · Sitemap · 2 occurrence(s)

error Client error (4xx) response

Rule status.4xx · Crawlability · 2 occurrence(s)

Warnings (14 rules)

warning Control has no accessible name

Rule agent.control_no_name · Agent Readiness · 11 occurrence(s)

warning Canonical target is non-200 / non-indexable

Rule canonical.bad_target · Canonical · 2 occurrence(s)

warning Duplicate page content

Rule duplicate.content · Duplicate · 3 occurrence(s)

warning Duplicate <title> across pages

Rule duplicate.title · Duplicate · 5 occurrence(s)

warning Missing <h1>

Rule h1.missing · Headings · 1 occurrence(s)

warning Orphan page (no internal inlinks)

Rule links.orphan · Links · 2 occurrence(s)

warning Internal link points to a redirect

Rule links.redirect_target · Links · 19 occurrence(s)

warning Render-blocking script in <head> (no defer/async)

Rule perf.render_blocking · Performance · 15 occurrence(s)

warning Redirect chain (multiple hops)

Rule redirect.chain · Crawlability · 1 occurrence(s)

warning robots.txt blocks CSS/JS the pages need to render

Rule robots.blocks_css_js · Robots · 1 occurrence(s)

  • https://tomasbarradas.pt/ — robots.txt Disallow blocks render-critical CSS/JS under: /plugins/system/cookiespolicynotificationbar/assets/css/, /plugins/system/cookiespolicynotificationbar/assets/js/ — Google's renderer can't fetch these, so the affected pages may render blank or thin. Allow the asset path(s) for Googlebot.

warning Schema describes content not visible on the page

Rule schema.hidden_content · Structured Data · 2 occurrence(s)

  • https://tomasbarradas.pt/en/privacy-policy — a schema name/headline ("Super User") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.
  • https://tomasbarradas.pt/pt/politica-de-privacidade — a schema name/headline ("Super User") does not appear in the page's visible text — Google's policies prohibit marking up content not visible to readers. This is a heuristic (a static-HTML substring check): JS-rendered or abbreviated names can be false positives, so verify before removing.

Notices (25 rules)

notice Heading levels skip a level

Rule agent.heading_skip · Agent Readiness · 13 occurrence(s)

notice No llms.txt for AI agents

Rule agent.llms_txt_missing · Agent Readiness · 1 occurrence(s)

notice No main landmark for AI agents

Rule agent.no_main_landmark · Agent Readiness · 8 occurrence(s)

notice Page served uncached (no-store/private or CDN bypass)

Rule cache.not_cacheable · Cache · 15 occurrence(s)

notice Canonical target reachable only via a canonical tag (no inlinks)

Rule canonical.isolated_url · Canonical · 1 occurrence(s)

  • https://tomasbarradas.pt/pt/ — this URL is a canonical target but has no internal links pointing to it — crawlers only learn of it via the canonical tag. Add direct internal links (or list it in the sitemap).

notice Canonical points to a different URL

Rule canonical.non_self · Canonical · 2 occurrence(s)

notice Main text is hard to read (low Flesch Reading Ease)

Rule content.readability_poor · Content · 3 occurrence(s)

  • https://tomasbarradas.pt/en/ — this page reads as difficult (Flesch Reading Ease 48, 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://tomasbarradas.pt/en/contacts — 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://tomasbarradas.pt/en/contacts?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L2VuL2NvbnRhY3Rz — this page reads as difficult (Flesch Reading Ease 42, 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 Multiple <h1> elements

Rule h1.multiple · Headings · 3 occurrence(s)

notice Image filename is generic/auto-generated (missed image-search signal)

Rule images.generic_filename · Images · 3 occurrence(s)

notice Likely hero image lacks fetchpriority=high

Rule images.hero_no_fetchpriority · Performance · 11 occurrence(s)

  • https://tomasbarradas.pt/ — the likely hero/LCP image (fps02-1_420x265.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/en/ — the likely hero/LCP image (img-01.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/en/contacts — the likely hero/LCP image (img-01.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/en/contacts?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L2VuL2NvbnRhY3Rz — the likely hero/LCP image (img-01.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt — the likely hero/LCP image (fps02-1_420x265.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt/ — the likely hero/LCP image (fps02-1_420x265.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt/contactos/uncategorised/contacto?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L3B0L2NvbnRhY3Rvcw== — the likely hero/LCP image (https://tomasbarradas.pt/) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt/extras — the likely hero/LCP image (extra_pa_500x375.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt/servicos/casamentos — the likely hero/LCP image (s01-1_400x400.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt/servicos/festas-de-empresa — the likely hero/LCP image (s02-1_400x400.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.
  • https://tomasbarradas.pt/pt/servicos/festas-particulares — the likely hero/LCP image (s01-1_400x400.jpg) has no fetchpriority="high" — adding it tells the browser to fetch the hero earlier in the waterfall, reducing Largest Contentful Paint. This is a low-severity nudge; verify the flagged image is actually your LCP element.

notice Images without width/height (layout shift / CLS)

Rule images.missing_dimensions · Images · 11 occurrence(s)

notice Internal link has no anchor text / accessible name

Rule links.no_anchor_text · Links · 15 occurrence(s)

notice Page has only one internal inlink (fragile crawl path)

Rule links.single_inlink · Links · 2 occurrence(s)

notice Legacy image format (jpg/png/gif) with no next-gen fallback

Rule perf.images_legacy_format · Performance · 10 occurrence(s)

  • https://tomasbarradas.pt/ — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/en/ — 26 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/en/contacts — 26 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/en/contacts?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L2VuL2NvbnRhY3Rz — 26 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/pt — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/pt/ — 5 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/pt/extras — 8 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/pt/servicos/casamentos — 4 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/pt/servicos/festas-de-empresa — 12 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.
  • https://tomasbarradas.pt/pt/servicos/festas-particulares — 4 image(s) use a legacy format (jpg/png/gif) with no next-gen <picture> fallback. Serve WebP or AVIF (with a <picture> typed <source>) to cut image transfer weight and improve LCP.

notice No ETag header (no conditional GET for unchanged pages)

Rule perf.no_etag · Performance · 15 occurrence(s)

  • https://tomasbarradas.pt/ — 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://tomasbarradas.pt/en/ — 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://tomasbarradas.pt/en/contacts — 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://tomasbarradas.pt/en/contacts?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L2VuL2NvbnRhY3Rz — 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://tomasbarradas.pt/en/privacy-policy — 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://tomasbarradas.pt/pt — 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://tomasbarradas.pt/pt/ — 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://tomasbarradas.pt/pt/contactos — 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://tomasbarradas.pt/pt/contactos/uncategorised/contacto?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L3B0L2NvbnRhY3Rvcw== — 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://tomasbarradas.pt/pt/extras — 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://tomasbarradas.pt/pt/politica-de-privacidade — 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://tomasbarradas.pt/pt/servicos — 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://tomasbarradas.pt/pt/servicos/casamentos — 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://tomasbarradas.pt/pt/servicos/festas-de-empresa — 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://tomasbarradas.pt/pt/servicos/festas-particulares — 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 URL redirects to another URL

Rule redirect.single · Crawlability · 2 occurrence(s)

notice Deprecated schema type with no Google rich result

Rule schema.deprecated_type · Structured Data · 4 occurrence(s)

  • https://tomasbarradas.pt/ — 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://tomasbarradas.pt/en/ — 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://tomasbarradas.pt/pt — 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://tomasbarradas.pt/pt/ — 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 · 1 occurrence(s)

notice target=_blank link without rel=noopener (tab-napping)

Rule security.unsafe_cross_origin_links · Security · 11 occurrence(s)

Pages (showing 17 of 17)
URLStatusIndexableWordsIn-links
https://tomasbarradas.pt/
DJ Tomás Barradas - O DJ Preferido para a Animação do seu Evento
200 yes 414 17
https://tomasbarradas.pt/pt
DJ Tomás Barradas - O DJ Preferido para a Animação do seu Evento
200 yes 414 13
https://tomasbarradas.pt/pt/contactos
DJ Tomás Barradas - Contactos
200 yes 86 13
https://tomasbarradas.pt/pt/extras
Extras
200 yes 179 13
https://tomasbarradas.pt/pt/politica-de-privacidade
Política de Privacidade
200 yes 1956 11
https://tomasbarradas.pt/pt/servicos/casamentos
Casamentos
200 yes 844 13
https://tomasbarradas.pt/pt/servicos/festas-de-empresa
Festas de Empresa
200 yes 695 13
https://tomasbarradas.pt/pt/servicos/festas-particulares
Festas Particulares
200 yes 683 13
https://tomasbarradas.pt/en/
Home
200 yes 493 4
https://tomasbarradas.pt/en/contacts
Contact Me
200 yes 516 4
https://tomasbarradas.pt/pt/contactos/uncategorised/contacto?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L3B0L2NvbnRhY3Rvcw==
DJ Tomás Barradas - Contactos
200 yes 179 1
https://tomasbarradas.pt/en/contacts?task=contact.edit&return=aHR0cHM6Ly90b21hc2JhcnJhZGFzLnB0L2VuL2NvbnRhY3Rz
Contact Me
200 yes 603 1
https://tomasbarradas.pt/en/privacy-policy
Privacy Policy
200 yes 1794 0
https://tomasbarradas.pt/pt/
DJ Tomás Barradas - O DJ Preferido para a Animação do seu Evento
200 yes 414 0
https://tomasbarradas.pt/pt/servicos
Serviços DJ
200 yes 48 0
https://tomasbarradas.pt/pt/bio
404 Página não encontrada
404 no 137 0
https://tomasbarradas.pt/pt/servicos/festas-de-anos
404 Página não encontrada
404 no 137 0

Audit your own site — free

157 checks, internal PageRank, render-diff. No signup, results in ~30s.

Scan your site →