tmangueira.com

tmangueira.com · 🇺🇸 United States · Community picks

#111/168 top ranked in United States · #200/341 worldwide

Scanned

The quick verdict

No broken links found in this sample.

Link health
100.00/100

Ranks first

Quality checklist
68.00/100

Breaks ties

Broken links
0

Confirmed in sample

13 links verified · 0 unknown · 5 selected source pages · 100% of selected destinations verified. Sample only. Unknown links are not counted as broken.

What to fix first

View all priorities →
  1. Canonical URL

    Declare one valid HTTP(S) canonical URL for each indexable page. It may point to another URL when intentional.

  2. Open Graph title

    Provide a non-empty og:title meta property.

  3. Open Graph description

    Provide a non-empty og:description meta property.

Fix with your coding assistant

Copy a ready-to-use prompt with the issues and affected URLs.

How this result qualifies

Verified internal navigation

At least 10 internal destinations were verified. Unknown items do not disqualify the site; confirmed checklist failures reduce quality.

100.00/100 link health · 68.00/100 quality · 13 internal destinations

New comparison baseline. A change in coverage is not a verified improvement.

The diagnostic report below may cover additional pages and external links. Only the stored competitive sample determines the ranking. At least 10 verified internal links are required; unavailable checklist items do not exclude a site. How scoring works

View full reportConfirmed issues, suggested fixes and the evidence behind them.

Extended diagnostic evidence

0 confirmed broken links in 19 verified. 2 discovered links could not be verified.

90% of discovered links verified. These diagnostic counts may include pages and external links outside the ranked sample. Unknown links are not counted as broken.

Broken links
0
Links verified
19
Unverifiable
2

mostly access denied

Pages read
13

0 internal · 0 external

Latest competitive sample and evidence · 68.00/100 quality

At least 10 internal destinations were verified. Unknown items do not disqualify the site; confirmed checklist failures reduce quality. The available outcomes agreed between passes.

5 selected source URLs · 13 internal destinations. 13 evaluated · 0 unknown · 0 using previous evidence. The expanded diagnostic report follows below.

SEO
40.00/100
Accessibility
100.00/100
Structure
93.33/100
Sharing
0.00/100
Selected pages
  • https://tmangueira.com/
  • https://tmangueira.com/about
  • https://tmangueira.com/code
  • https://tmangueira.com/photos
  • https://tmangueira.com/pt
Internal link verdicts and weights
  • ok · weight 6 · https://tmangueira.com/
  • ok · weight 6 · https://tmangueira.com/about
  • ok · weight 6 · https://tmangueira.com/code
  • ok · weight 6 · https://tmangueira.com/photos
  • ok · weight 6 · https://tmangueira.com/pt
  • ok · weight 6 · https://tmangueira.com/pt/about
  • ok · weight 6 · https://tmangueira.com/pt/code
  • ok · weight 6 · https://tmangueira.com/pt/photos
  • ok · weight 2 · https://tmangueira.com/code/my-cloud-my-rules
  • ok · weight 2 · https://tmangueira.com/photos/berlin
  • ok · weight 2 · https://tmangueira.com/photos/bogota
  • ok · weight 2 · https://tmangueira.com/photos/iceland
  • ok · weight 2 · https://tmangueira.com/photos/sao-paulo
Scoring checks
  • Page title: passed · 5/5 applicable observations

    https://tmangueira.com/: Thiago Mangueira

    https://tmangueira.com/about: Thiago Mangueira

    https://tmangueira.com/code: Thiago Mangueira

    https://tmangueira.com/photos: Thiago Mangueira

    https://tmangueira.com/pt: Thiago Mangueira

  • Distinct page titles: failed · 0/5 applicable observations

    https://tmangueira.com/: Thiago Mangueira

    https://tmangueira.com/about: Thiago Mangueira

    https://tmangueira.com/code: Thiago Mangueira

    https://tmangueira.com/photos: Thiago Mangueira

    https://tmangueira.com/pt: Thiago Mangueira

  • Meta description: passed · 5/5 applicable observations

    https://tmangueira.com/: Software engineer and photographer

    https://tmangueira.com/about: Software engineer and photographer

    https://tmangueira.com/code: Software engineer and photographer

    https://tmangueira.com/photos: Software engineer and photographer

    https://tmangueira.com/pt: Engenheiro de software e fotógrafo

  • Canonical URL: failed · 0/5 applicable observations

    https://tmangueira.com/: No canonical URL

    https://tmangueira.com/about: No canonical URL

    https://tmangueira.com/code: No canonical URL

    https://tmangueira.com/photos: No canonical URL

    https://tmangueira.com/pt: No canonical URL

  • Main heading: failed · 4/5 applicable observations

    https://tmangueira.com/photos: 0 H1 element(s)

    https://tmangueira.com/: 1 H1 element(s)

    https://tmangueira.com/about: 1 H1 element(s)

    https://tmangueira.com/code: 1 H1 element(s)

    https://tmangueira.com/pt: 1 H1 element(s)

  • Heading hierarchy: failed · 4/5 applicable observations

    https://tmangueira.com/photos: 1 skipped heading level(s)

    https://tmangueira.com/: 0 skipped heading level(s)

    https://tmangueira.com/about: 0 skipped heading level(s)

    https://tmangueira.com/code: 0 skipped heading level(s)

    https://tmangueira.com/pt: 0 skipped heading level(s)

  • Main landmark: passed · 5/5 applicable observations

    https://tmangueira.com/: 1 main landmarks

    https://tmangueira.com/about: 1 main landmarks

    https://tmangueira.com/code: 1 main landmarks

    https://tmangueira.com/photos: 1 main landmarks

    https://tmangueira.com/pt: 1 main landmarks

  • Document language: passed · 5/5 applicable observations

    https://tmangueira.com/: en

    https://tmangueira.com/about: en

    https://tmangueira.com/code: en

    https://tmangueira.com/photos: en

    https://tmangueira.com/pt: en

  • Image alternatives declared: passed · 3/3 applicable observations

    https://tmangueira.com/: 0 of 0 images lack an alt attribute

    https://tmangueira.com/pt: 0 of 0 images lack an alt attribute

    https://tmangueira.com/about: 0 of 1 images lack an alt attribute

    https://tmangueira.com/code: 0 of 1 images lack an alt attribute

    https://tmangueira.com/photos: 0 of 4 images lack an alt attribute

  • Links named: passed · 5/5 applicable observations

    https://tmangueira.com/: 0 of 20 links have no HTML name

    https://tmangueira.com/about: 0 of 15 links have no HTML name

    https://tmangueira.com/code: 0 of 16 links have no HTML name

    https://tmangueira.com/photos: 0 of 13 links have no HTML name

    https://tmangueira.com/pt: 0 of 20 links have no HTML name

  • Mobile viewport: passed · 5/5 applicable observations

    https://tmangueira.com/: width=device-width, initial-scale=1

    https://tmangueira.com/about: width=device-width, initial-scale=1

    https://tmangueira.com/code: width=device-width, initial-scale=1

    https://tmangueira.com/photos: width=device-width, initial-scale=1

    https://tmangueira.com/pt: width=device-width, initial-scale=1

  • HTTPS page: passed · 5/5 applicable observations

    https://tmangueira.com/: https://tmangueira.com/

    https://tmangueira.com/about: https://tmangueira.com/about

    https://tmangueira.com/code: https://tmangueira.com/code

    https://tmangueira.com/photos: https://tmangueira.com/photos

    https://tmangueira.com/pt: https://tmangueira.com/pt

  • No insecure embedded resources: passed · 5/5 applicable observations

    https://tmangueira.com/: 0 HTTP embedded resource URL(s)

    https://tmangueira.com/about: 0 HTTP embedded resource URL(s)

    https://tmangueira.com/code: 0 HTTP embedded resource URL(s)

    https://tmangueira.com/photos: 0 HTTP embedded resource URL(s)

    https://tmangueira.com/pt: 0 HTTP embedded resource URL(s)

  • Open Graph title: failed · 0/5 applicable observations

    https://tmangueira.com/: No og:title

    https://tmangueira.com/about: No og:title

    https://tmangueira.com/code: No og:title

    https://tmangueira.com/photos: No og:title

    https://tmangueira.com/pt: No og:title

  • Open Graph description: failed · 0/5 applicable observations

    https://tmangueira.com/: No og:description

    https://tmangueira.com/about: No og:description

    https://tmangueira.com/code: No og:description

    https://tmangueira.com/photos: No og:description

    https://tmangueira.com/pt: No og:description

  • Open Graph type: failed · 0/5 applicable observations

    https://tmangueira.com/: No og:type

    https://tmangueira.com/about: No og:type

    https://tmangueira.com/code: No og:type

    https://tmangueira.com/photos: No og:type

    https://tmangueira.com/pt: No og:type

  • Open Graph URL: failed · 0/5 applicable observations

    https://tmangueira.com/: No og:url

    https://tmangueira.com/about: No og:url

    https://tmangueira.com/code: No og:url

    https://tmangueira.com/photos: No og:url

    https://tmangueira.com/pt: No og:url

  • Open Graph image URL: failed · 0/5 applicable observations

    https://tmangueira.com/: No og:image

    https://tmangueira.com/about: No og:image

    https://tmangueira.com/code: No og:image

    https://tmangueira.com/photos: No og:image

    https://tmangueira.com/pt: No og:image

  • Social card type: failed · 0/5 applicable observations

    https://tmangueira.com/: No social card type

    https://tmangueira.com/about: No social card type

    https://tmangueira.com/code: No social card type

    https://tmangueira.com/photos: No social card type

    https://tmangueira.com/pt: No social card type

  • Homepage favicon available: failed · 0/1 applicable observations

    https://tmangueira.com/favicon.ico: HTTP 404; text/html; charset=utf-8

  • Homepage sharing image available: failed · 0/1 applicable observations

    https://tmangueira.com/: No URL declared

  • Root sitemap available: failed · 0/1 applicable observations

    https://tmangueira.com/sitemap.xml: HTTP 404; no sitemap root found

  • Rendered color contrast: unverified · 0/1 applicable observations

    https://tmangueira.com/: Requires a browser or human assessment; excluded from points.

  • Keyboard and focus behavior: unverified · 0/1 applicable observations

    https://tmangueira.com/: Requires a browser or human assessment; excluded from points.

Sample reference: 846034283ee5c0aa00fa3597a5c8c02ef3e1ca8234df5b60ab4c98f26c70e7a6

Full standard report · free for everyone. This is a bounded sample, not an audit of every page.

No confirmed broken links in this sample. Unverified URLs are not evidence of healthy links.

Diagnostic checklist

12 passed · 15 need work · 3 not verified. Open a check for the evidence and suggested fix.

SEO
41.54

Measured performance

159 ms median to homepage response headers. Measurements: 159, 241, 159 ms.

Same crawler, three sequential requests, DNS and TLS included. Timing is diagnostic only and never decides a position. This is server/network response, not browser loading or Core Web Vitals.

Static checks inspect crawler-visible HTML; they do not certify accessibility or code quality.

SEO3 to improve
Page titlePassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Give each page a descriptive, non-empty <title>.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Distinct page titlesNeeds work

1/13 applicable observations passed. 0.08/1 checklist weight earned.

How to improve: Use a title that describes the purpose of this page rather than repeating the same title across URLs.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Meta descriptionPassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Add a non-empty meta name="description" that summarizes this page.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Canonical URLNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Declare one valid HTTP(S) canonical URL for each indexable page. It may point to another URL when intentional.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Root sitemap availableNeeds work

0/1 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Publish a sitemap URL set or index at /sitemap.xml. This checks its root, not every listed URL.

Accessibility0 to improve
Document languagePassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Declare a valid language tag on the html element, such as en or pt-BR.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Image alternatives declaredPassed

11/11 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Add alt text to informative images. Use alt="" for decorative images. This check does not judge text quality.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Form controls namedNot applicable

No applicable elements found. Informational; excluded from points.

How to improve: Associate a label with each visible form control, or provide a non-empty aria-label / valid aria-labelledby.

Buttons namedPassed

4/4 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Give every button visible text or an accessible name, including icon-only buttons.

Rendered color contrastNot verified

0/1 applicable observations passed. Informational; excluded from points.

How to improve: Check foreground/background contrast in the rendered page.

Keyboard and focus behaviorNot verified

0/1 applicable observations passed. Informational; excluded from points.

How to improve: Test every interactive control with a keyboard and inspect focus visibility.

Structure2 to improve
Main headingNeeds work

11/13 applicable observations passed. 0.85/1 checklist weight earned.

How to improve: Add a descriptive H1 identifying the main topic.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Heading hierarchyNeeds work

11/13 applicable observations passed. 0.85/1 checklist weight earned.

How to improve: Nest headings logically without skipping a level, starting with H1.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Main landmarkPassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Mark the main content with one <main> or role="main" landmark.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Mobile viewportPassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Add meta name="viewport" with width=device-width and do not disable user zoom.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

HTTPS pagePassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Serve the page over HTTPS with a valid certificate.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

No insecure embedded resourcesPassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Use HTTPS for embedded script, image, stylesheet, frame, audio and video URLs.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Sharing8 to improve
Open Graph titleNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Provide a non-empty og:title meta property.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph descriptionNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Provide a non-empty og:description meta property.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph typeNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Declare og:type, such as website or article.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph URLNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Set og:url to an absolute HTTP(S) URL for this content.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph image URLNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Set og:image to an absolute HTTP(S) image URL. Homepage image availability is checked separately.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Open Graph image descriptionNot applicable

No applicable elements found. Informational; excluded from points.

How to improve: Describe the sharing image with og:image:alt.

Social card typeNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Declare twitter:card as summary or summary_large_image for a website card.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Homepage favicon availableNeeds work

0/1 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Serve a non-empty public image with an image Content-Type.

Homepage sharing image availableNeeds work

0/1 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Declare a public image URL for homepage sharing image available.

AI access2 to improve
Content in initial HTMLNeeds work

11/13 applicable observations passed. 0.85/1 checklist weight earned.

How to improve: Render meaningful main content on the server so readers can access it without executing JavaScript.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Structured data syntaxNeeds work

0/13 applicable observations passed. 0.00/1 checklist weight earned.

How to improve: Provide JSON-LD with @context and @type (or a typed @graph). Match the markup to the visible content; syntax alone does not validate its meaning.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Performance0 to improve
HTML transfer budgetPassed

13/13 applicable observations passed. 1.00/1 checklist weight earned.

How to improve: Keep the uncompressed HTML at or below 500 KB. Remove duplicated inline payloads and unnecessary markup.

Showing up to five examples, with failed observations first. Full per-page observations are listed below and available in the report API.

Repeated homepage HTTP responsePassed

1/1 applicable observations passed. Informational; excluded from points.

How to improve: Improve server response and CDN caching. Median of three requests; diagnostic only, never a ranking tiebreak.

Browser loading and Core Web VitalsNot verified

0/1 applicable observations passed. Informational; excluded from points.

How to improve: Measure LCP, INP and CLS with browser and field tools.

Checklist quality-v3. Competitive weights: Structure 30%, Accessibility markup 30%, SEO 25%, Sharing 15%. AI access and performance are diagnostic only. This expanded report may include pages outside the competitive sample. Unverified scored checks earn no points; not-applicable and manual checks are excluded. Full methodology and references.

Page health

From the 13 pages we read. Full details in the report.

Missing titles

0

Duplicate titles

12

Missing descriptions

0

Missing H1

2

Multiple H1

0

Avg response

359 ms

Slowest pages

HTTP response time measured by our crawler; not browser loading speed.

Pages inspected (13)

All 13 pages from this scan.

PageStatusTitleH1ms
https://tmangueira.com/200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: not-applicable0 of 0 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 20 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed216 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed21,212 bytes of HTML; budget 500,000
11,163
https://tmangueira.com/about200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 1 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/about
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed303 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed23,128 bytes of HTML; budget 500,000
1349
https://tmangueira.com/code200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 1 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 16 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/code
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed175 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed20,181 bytes of HTML; budget 500,000
1331
https://tmangueira.com/photos200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: failed0 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 4 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 13 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/photos
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: failed73 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed22,815 bytes of HTML; budget 500,000
0292
https://tmangueira.com/pt200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedEngenheiro de software e fotógrafo
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: not-applicable0 of 0 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 20 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/pt
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed222 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed21,262 bytes of HTML; budget 500,000
1155
https://tmangueira.com/pt/about200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedEngenheiro de software e fotógrafo
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 1 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/pt/about
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed312 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed23,174 bytes of HTML; budget 500,000
1318
https://tmangueira.com/pt/code200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedEngenheiro de software e fotógrafo
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 1 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 16 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/pt/code
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed165 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed20,198 bytes of HTML; budget 500,000
1289
https://tmangueira.com/code/my-cloud-my-rules200My cloud, my rules - Thiago Mangueira
Page checklist evidence
  • title: passedMy cloud, my rules - Thiago Mangueira
  • description: passedHow I store my photos without paying a cloud subscription every month.
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 1 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/code/my-cloud-my-rules
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed1779 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed27,233 bytes of HTML; budget 500,000
1254
https://tmangueira.com/pt/photos200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedEngenheiro de software e fotógrafo
  • canonical: failedNo canonical URL
  • h1: failed0 H1 element(s)
  • headings: failed1 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 4 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: not-applicable0 of 0 buttons have no HTML name
  • links-named: passed0 of 13 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/pt/photos
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: failed76 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed22,873 bytes of HTML; budget 500,000
0320
https://tmangueira.com/photos/bogota200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 26 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 26 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/photos/bogota
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed132 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed61,139 bytes of HTML; budget 500,000
1287
https://tmangueira.com/photos/sao-paulo200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 9 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 9 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/photos/sao-paulo
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed143 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed32,563 bytes of HTML; budget 500,000
1283
https://tmangueira.com/photos/berlin200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 30 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 30 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/photos/berlin
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed173 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed67,881 bytes of HTML; budget 500,000
1270
https://tmangueira.com/photos/iceland200Thiago Mangueira
Page checklist evidence
  • title: passedThiago Mangueira
  • description: passedSoftware engineer and photographer
  • canonical: failedNo canonical URL
  • h1: passed1 H1 element(s)
  • headings: passed0 skipped heading level(s)
  • main: passed1 main landmarks
  • lang: passeden
  • alt: passed0 of 58 images lack an alt attribute
  • labels: not-applicable0 of 0 controls have no HTML label
  • buttons: passed0 of 58 buttons have no HTML name
  • links-named: passed0 of 15 links have no HTML name
  • viewport: passedwidth=device-width, initial-scale=1
  • https: passedhttps://tmangueira.com/photos/iceland
  • mixed: passed0 HTTP embedded resource URL(s)
  • og-title: failedNo og:title
  • og-description: failedNo og:description
  • og-type: failedNo og:type
  • og-url: failedNo og:url
  • og-image: failedNo og:image
  • og-alt: not-applicableNo sharing image description
  • twitter-card: failedNo social card type
  • readable: passed176 characters of crawler-visible content (minimum 100)
  • jsonld: failed0 of 0 blocks have valid JSON-LD structure
  • html-size: passed136,650 bytes of HTML; budget 500,000
1359

Mobile page report

tmangueira.com

https://tmangueira.com/

Measured · 9/12/2026, 7:38:48 AM UTC

Speed
97
Accessibility
90
SEO basics
100
Main content (LCP)
2.4 s
Layout shifts (CLS)
0
Blocking time (TBT)
20 ms

Your next improvements

Measured findings to investigate, ordered by audit score.

1. Background and foreground colors do not have a sufficient contrast ratio.

Low-contrast text is difficult or impossible for many users to read. [Learn how to provide sufficient color contrast](https://dequeuniversity.com/rules/axe/4.12/color-contrast).

section.relative > div.absolute > div.font-inter-tight > p.text-[#ababab] · <p class="text-[#ababab] mt-[1em]">
2. Network dependency tree

[Avoid chaining critical requests](https://developer.chrome.com/docs/performance/insights/network-dependency-tree) by reducing the length of chains, reducing the download size of resources, or deferring the download of unnecessary resources to improve page load.

3. Touch targets do not have sufficient size or spacing.

Touch targets with sufficient size and spacing help users who may have difficulty targeting small controls to activate the targets. [Learn more about touch targets](https://dequeuniversity.com/rules/axe/4.12/target-size).

nav.relative > div.absolute > div.flex > a.hover:opacity-70 · <a href="/" hreflang="en" aria-label="Read in English" aria-current="true" class="hover:opacity-70 transition-opacity opacity-100">
nav.relative > div.absolute > div.flex > a.hover:opacity-70 · <a href="/pt" hreflang="pt-BR" aria-label="Ler em português" class="hover:opacity-70 transition-opacity opacity-40">
4. Largest Contentful Paint

Largest Contentful Paint marks the time at which the largest text or image is painted. [Learn more about the Largest Contentful Paint metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-largest-contentful-paint/)

5. Speed Index

Speed Index shows how quickly the contents of a page are visibly populated. [Learn more about the Speed Index metric](https://developer.chrome.com/docs/lighthouse/performance/speed-index/).

6. Time to Interactive

Time to Interactive is the amount of time it takes for the page to become fully interactive. [Learn more about the Time to Interactive metric](https://developer.chrome.com/docs/lighthouse/performance/interactive/).

7. Max Potential First Input Delay

The maximum potential First Input Delay that your users could experience is the duration of the longest task. [Learn more about the Maximum Potential First Input Delay metric](https://developer.chrome.com/docs/lighthouse/performance/lighthouse-max-potential-fid/).

Fix with your coding assistant

Copy a ready-to-use prompt with the issues and affected URLs.

Battle scoring rules

The arena winner follows the verified ranking: internal link health first, then the published two-decimal quality score. Both sites need two agreeing standard observations. Browser performance, accessibility and SEO are complementary diagnostics and do not move the ranking or decide its winner. Page-only battles compare compatible rounds; performance differences up to five points draw, and equal round wins remain a tie. Missing measurements never count as zero. Browser audits do not certify accessibility. Saved results keep their measured evidence; start a rematch for a newer comparison.