Content
· 5 checks — Internal links, mixed-content guards, Open Graph previews, and structured data rolled into one auditable list.FLinksAction200 links checked, 191 healthy, 9 brokenFIX
Broken Links (10)
| Status | URL | Found in | Error |
|---|---|---|---|
| 404 | https://fonts.googleapis.com | <link> | Not Found |
| 404 | https://fonts.gstatic.com | <link> | Not Found |
| 404 | https://securepubads.g.doubleclick.net | <link> | Not Found |
| 404 | https://tpc.googlesyndication.com | <link> | Not Found |
| 404 | https://ib.adnxs.com | <link> | Not Found |
| 404 | https://prg.smartadserver.com | <link> | Not Found |
| 404 | https://adservice.google.com | <link> | Not Found |
| ERR | https://sapo.pt/parceiros/eco | <a> | Get "https://sapo.pt/parceiros/eco": con... |
| ERR | https://jornaleconomico.sapo.pt/noticias/o-consumi... | <a> | Get "https://jornaleconomico.sapo.pt/not... |
| 403 | https://cmp.inmobi.com | <link> | Forbidden |
BOpen GraphOpen Graph tags are partially configured — some improvements recommended.REVIEW
https://sapo.pt/assets/img/sapo-logo-og.jpgThe og:image URL could not be fetched. Social platforms won't be able to display it.
An unreachable og:image URL (404, DNS fail, slow timeout) means social platforms cache the failure and serve no image for hours.
Learn more ▾ ▴
Social platforms (Facebook, Twitter) cache OG metadata aggressively — including failed image fetches. A momentarily-broken og:image can leave your shares imageless for hours. Test og:image URLs in Facebook's Sharing Debugger to force re-cache after fixing.
Source: Open Graph Protocol / Facebook Sharing Debugger
The og:url tag specifies the canonical URL for the shared content.
Without og:url, social platforms infer the canonical URL — often picking a tracking-param variant that pollutes share counts.
Learn more ▾ ▴
og:url tells the social platform which URL to count this share against. Without it, platforms use the literal URL the user pasted (which may include utm_* parameters, ref codes, etc.). Setting og:url to the canonical form keeps share-count attribution clean.
Source: Open Graph Protocol
Without twitter:card, Twitter falls back to Open Graph tags. Adding it gives you more control.
Without twitter:card, Twitter renders posts as plain text — no preview image, no structured layout.
Learn more ▾ ▴
Twitter requires `<meta name="twitter:card" content="summary_large_image">` (or summary) to render share-cards at all. Without it, links appear as raw text and engagement plummets vs cards. Twitter also falls back to og:image if twitter:image isn't set, so configure both.
Source: Twitter Developer Platform
Preview

sapo.pt
SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
Notícias, Atualidade, Nacional, Internacional, Local, Economia, Tecnologia, Opinião, Desporto, Cultura, Lifestyle, Signos, Jornais, Mail, Tempo e mais
- twitter:card — Add <meta name="twitter:card" content="summary_large_image">
- twitter:title — falling back from og:title
- twitter:description — falling back from og:description
- twitter:image — falling back from og:image
twitter:card is missing
→ Add <meta name="twitter:card" content="summary_large_image">

SAPO.PT
SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
Notícias, Atualidade, Nacional, Internacional, Local, Economia, Tecnologia, Opinião, Desporto, Cultura, Lifestyle, Signos, Jornais, Mail, Tempo e mais
Title will be truncated (63 chars / 60 max)
- og:title — SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
- og:description — Notícias, Atualidade, Nacional, Internacional, Local, Economia, Tecnologia, Opinião, Desporto, Cultura, Lifestyle, Si...
- og:image — https://sapo.pt/assets/img/sapo-logo-og.jpg
- og:type — website
- og:url — Add og:url — Recommended — canonical URL for the share
- og:site_name — SAPO
Title will be truncated on Facebook (63 chars, max 60)
→ Shorten og:title to ≤60 characters

SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
sapo.pt
Description will be truncated (152 chars / 150 max)
- og:title — SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
- og:description — Notícias, Atualidade, Nacional, Internacional, Local, Economia, Tecnologia, Opinião, Desporto, Cultura, Lifestyle, Si...
- og:image — https://sapo.pt/assets/img/sapo-logo-og.jpg
Description will be truncated on LinkedIn (152 chars, max 150)
→ Tighten og:description to ≤150 characters
sapo.pt
SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
Notícias, Atualidade, Nacional, Internacional, Local, Economia, Tecnologia, Opinião, Desporto, Cultura, Lifestyle, Signos, Jornais, Mail, Tempo e mais

- og:title — SAPO – Última Hora e Notícias de Hoje atualizadas ao minuto
- og:description — Notícias, Atualidade, Nacional, Internacional, Local, Economia, Tecnologia, Opinião, Desporto, Cultura, Lifestyle, Si...
- og:image — https://sapo.pt/assets/img/sapo-logo-og.jpg
Social preview quality
Averaged across Twitter/X, Facebook, LinkedIn, and Slack.
| Field | Twitter/X | Slack | ||
|---|---|---|---|---|
| og:title | ||||
| og:description | ||||
| og:image | ||||
| og:type | ||||
| og:url | ||||
| og:site_name | ||||
| twitter:card | — | — | — | |
| twitter:title | ⚠ | — | — | — |
| twitter:description | ⚠ | — | — | — |
| twitter:image | ⚠ | — | — | — |
CStructured DataAction1 JSON-LD block(s) found — some improvements recommended.REVIEW
JSON parse error: Mismatch type map[string]interface {} with value array "at index 0: mismatched type with value\n\n\t[\n {\n \"@context\": \"http://sc\n\t^...............................\n"
JSON-LD block fails to parse — Google ignores the entire block, so structured data effectively isn't there.
Learn more ▾ ▴
Common causes: trailing comma, single quotes instead of double, unescaped quote in a string value. Validate at https://validator.schema.org/ or Search Console's Rich Results Test.
Source: schema.org / Google Search Central
JSON-LD Blocks
[
{
"@context": "http://schema.org",
"@type": "Organization",
"@id": "https://www.sapo.pt#organization",
"name": "SAPO",
"url": "https://www.sapo.pt",
"logo": "https://homepagept.web.sapo.io/assets/img/homepage-sapo/logo-01.png",
"sameAs": [
"https://facebook.com/sapo",
"https://instagram.com/sapo",
"https://twitter.com/sapo"
]
},
{
"@context": "http://schema.org",
"@type": "WebSite",
"url": "https://www.sapo.pt",
"potentialAction": {
"@type": "SearchAction",
"target": "https://www.sapo.pt/pesquisar?q={search_term_string}",
"query-input": "required name=search_term_string"
}
}
]CBrand PresenceActionSite-name consistency, favicon, social image, meta tags, schema, and contact signalsREVIEW
Brand Presence
Your brand name differs across channels — visitors see inconsistent identity.
C
57/100
Site name appears as
| Page title | Última Hora e Notícias de Hoje atualizadas ao minuto | |
| og:site_name | SAPO | |
| twitter:site | — | |
| Organization.name | — |
Inconsistent — names differ across channels
Brand assets
Favicon
15/15covers multiple sizes + apple-touch-icon
Social share image
14/20og:image set; twitter:image missing
Meta completeness
14/20Organization schema
4/15Organization schema present but missing all recommended fields
Contact info discoverable
5/10contact page
Findings
- Brand name differs across channels — users see inconsistent identity
- Add twitter:image — Twitter falls back to og:image only when it's larger than 300×157
- twitter:card missing
- Organization schema missing logo — add a logo property pointing to a square PNG
- Organization schema missing url — point it at the canonical homepage
- Consider adding contactPoint — helps appear in "contact us" rich results
- Only partial contact info discoverable — consider adding a dedicated contact page or mailto/tel link
How consistently your brand appears across channels — shared link previews, structured data, favicon, contact info.