Laporan SEO: ul.pt
Dijana pada 28 April 2026 · 39 penemuan · 10.2s
Laman web institusi mengutamakan kebolehcapaian, keselamatan dan pengindeksan yang betul — rakyat dan pihak berkepentingan memerlukan akses mudah kepada maklumat berkaitan.
Pecahan Skor
Skor purata Umum: 50
Unjuran Skor
Anggaran peningkatan berdasarkan penemuan dalam laporan ini
Ready to improve your SEO?
Start a free trial and see how your score can improve.
Pecahan Modul
Semua Penemuan (36)
Kritikal (6)
- highheaders
Missing strict-transport-security
HSTS header is missing. The site may be vulnerable to downgrade attacks.
Add Strict-Transport-Security header with max-age of at least 31536000
- highssl
SSL certificate not found
Could not retrieve SSL certificate
Ensure the site has a valid SSL certificate installed
- highsitemap
Invalid sitemap format
Sitemap does not appear to be valid XML
Ensure sitemap.xml is properly formatted XML
- highsitemap
Empty sitemap
Sitemap contains no URLs
Add URLs to the sitemap
- highaccessibility
1 buttons without accessible name
Buttons with no text, aria-label, or title are invisible to screen readers
Add visible text or aria-label to all buttons
- highindexing checker
Canonical points to different domain
Canonical: https://www.ulisboa.pt/ points to ulisboa.pt
Ensure the canonical URL points to the same domain unless cross-domain canonicalization is intended
Medium (16)
- mediumdns
Missing DMARC record
No DMARC policy found at _dmarc subdomain.
Add a DMARC TXT record to prevent email spoofing
- mediumheaders
Missing content-security-policy
CSP header is missing. The site may be vulnerable to XSS attacks.
Add a Content-Security-Policy header to restrict resource loading
- mediumheaders
Missing x-frame-options
X-Frame-Options is missing. The site may be vulnerable to clickjacking.
Add X-Frame-Options: DENY or SAMEORIGIN header
- mediummeta
Canonical / og:url mismatch
Canonical: https://www.ulisboa.pt/ og:url: https://www.ulisboa.pt/info/home
Ensure canonical URL and og:url match
- mediumstructured data
No structured data found
No JSON-LD schemas detected on the page
Add structured data (Organization, WebSite, BreadcrumbList) for rich search results
- mediumrobots
No User-agent directive
robots.txt has no User-agent directive
Add User-agent: * to apply rules to all crawlers
- mediumrobots
No sitemap in robots.txt
robots.txt does not reference a sitemap
Add Sitemap: https://yourdomain.com/sitemap.xml to robots.txt
- mediumtechnology
Render-blocking scripts
54 scripts load synchronously without async/defer
Add async or defer to non-critical scripts to improve page load speed
- mediumcontent
Multiple H1 tags
Found 3 H1 tags (recommended: exactly 1)
Use only one H1 per page; use H2-H6 for subsections
- mediumcontent
External links without noopener
17 external links with target="_blank" lack rel="noopener"
Add rel="noopener noreferrer" to all target="_blank" links
- mediumrate limits
No rate limiting detected
10 rapid requests all succeeded without any rate-limit headers or 429 responses. The site may be vulnerable to abuse.
Implement rate limiting (e.g., 429 Too Many Requests) to protect against brute-force attacks
- mediumsocial checker
Missing Twitter Card
No twitter:card meta tag — Twitter/X will use default preview
Add twitter:card meta tag (e.g., "summary_large_image")
- mediumuptime checker
Slow response time
Average response time is 2580ms (should be < 2000ms)
Optimize server response time — consider CDN, caching, or server upgrades
- mediumuptime checker
Soft 404 detected
Non-existent URLs return HTTP 200 instead of 404
Return proper 404 status codes for non-existent pages to avoid indexing junk URLs
- mediumbrand checker
No Organization schema
No Organization JSON-LD found
Add Organization structured data with name, logo, and contact information
- mediumcrawl budget
Calendar URLs detected
4 calendar-related URLs found — these create infinite crawl paths
Block calendar/date pagination in robots.txt
Low (14)
- lowdns
No IPv6 (AAAA) records
The domain has no AAAA records for IPv6 connectivity
Add AAAA DNS records for IPv6 support
- lowheaders
Missing referrer-policy
Referrer-Policy is not set. Full URLs may leak to third parties.
Add Referrer-Policy: strict-origin-when-cross-origin
- lowheaders
Missing permissions-policy
Permissions-Policy is missing.
Add Permissions-Policy to restrict browser feature access
- lowheaders
Server header exposes software
Server: Apache
Remove or obfuscate the Server header to reduce information leakage
- lowmeta
Meta description too long
Description is 217 characters (recommended: 120-160)
Shorten the meta description to 120-160 characters
- lowmeta
Missing Twitter Card
No twitter:card meta tag
Add twitter:card meta tag for Twitter sharing
- lowcontent
Heading level skipped
H6 follows H3 (skipped H4)
Maintain sequential heading hierarchy without skipping levels
- lowmobile
Unresponsive images
19 images lack srcset or responsive sizing
Use srcset and sizes attributes for responsive images
- lowrate limits
No WAF detected
No Web Application Firewall (Cloudflare, AWS, Akamai, Vercel, Sucuri, Fastly) was detected in response headers.
Consider using a WAF to protect against common web attacks (XSS, SQL injection, DDoS)
- lowrate limits
No bot protection detected
No CAPTCHA, challenge page, or bot detection was triggered during rapid requests.
Consider implementing bot protection (e.g., Cloudflare Turnstile, hCaptcha) for sensitive endpoints
- lowbrand checker
No WebSite schema
No WebSite JSON-LD found
Add WebSite structured data for sitelinks search box in Google
- lowbrand checker
No web app manifest
No manifest.json linked — PWA features unavailable
Add a web app manifest for installability and brand customization
- lowpage experience
No resource hints
No preload or preconnect hints found
Add preload for critical resources and preconnect for important third-party origins
- lowlog analyzer
Soft 404 response
Non-existent pages return HTTP 200 instead of 404
Return proper 404 status codes for non-existent pages
AI Fix Prompt
Salin arahan ini ke dalam ChatGPT atau Claude untuk mendapatkan panduan pembaikan langkah demi langkah
Fix all SEO issues found in the audit of ul.pt.
Prioritize high-severity issues first, then medium. For each fix, make the actual code change — don't just describe what to do.
```json
{
"domain": "ul.pt",
"scores": {
"overall": 71,
"performance": 0,
"seo": 71,
"accessibility": 85,
"bestPractices": 89,
"security": 57
},
"findings": [
{
"module": "dns",
"severity": "medium",
"title": "Missing DMARC record",
"description": "No DMARC policy found at _dmarc subdomain.",
"recommendation": "Add a DMARC TXT record to prevent email spoofing"
},
{
"module": "headers",
"severity": "high",
"title": "Missing strict-transport-security",
"description": "HSTS header is missing. The site may be vulnerable to downgrade attacks.",
"recommendation": "Add Strict-Transport-Security header with max-age of at least 31536000"
},
{
"module": "headers",
"severity": "medium",
"title": "Missing content-security-policy",
"description": "CSP header is missing. The site may be vulnerable to XSS attacks.",
"recommendation": "Add a Content-Security-Policy header to restrict resource loading"
},
{
"module": "headers",
"severity": "medium",
"title": "Missing x-frame-options",
"description": "X-Frame-Options is missing. The site may be vulnerable to clickjacking.",
"recommendation": "Add X-Frame-Options: DENY or SAMEORIGIN header"
},
{
"module": "ssl",
"severity": "high",
"title": "SSL certificate not found",
"description": "Could not retrieve SSL certificate",
"recommendation": "Ensure the site has a valid SSL certificate installed"
},
{
"module": "meta",
"severity": "medium",
"title": "Canonical / og:url mismatch",
"description": "Canonical: https://www.ulisboa.pt/\nog:url: https://www.ulisboa.pt/info/home",
"recommendation": "Ensure canonical URL and og:url match"
},
{
"module": "structured-data",
"severity": "medium",
"title": "No structured data found",
"description": "No JSON-LD schemas detected on the page",
"recommendation": "Add structured data (Organization, WebSite, BreadcrumbList) for rich search results"
},
{
"module": "robots",
"severity": "medium",
"title": "No User-agent directive",
"description": "robots.txt has no User-agent directive",
"recommendation": "Add User-agent: * to apply rules to all crawlers"
},
{
"module": "robots",
"severity": "medium",
"title": "No sitemap in robots.txt",
"description": "robots.txt does not reference a sitemap",
"recommendation": "Add Sitemap: https://yourdomain.com/sitemap.xml to robots.txt"
},
{
"module": "sitemap",
"severity": "high",
"title": "Invalid sitemap format",
"description": "Sitemap does not appear to be valid XML",
"recommendation": "Ensure sitemap.xml is properly formatted XML"
},
{
"module": "sitemap",
"severity": "high",
"title": "Empty sitemap",
"description": "Sitemap contains no URLs",
"recommendation": "Add URLs to the sitemap"
},
{
"module": "technology",
"severity": "medium",
"title": "Render-blocking scripts",
"description": "54 scripts load synchronously without async/defer",
"recommendation": "Add async or defer to non-critical scripts to improve page load speed"
},
{
"module": "content",
"severity": "medium",
"title": "Multiple H1 tags",
"description": "Found 3 H1 tags (recommended: exactly 1)",
"recommendation": "Use only one H1 per page; use H2-H6 for subsections"
},
{
"module": "content",
"severity": "medium",
"title": "External links without noopener",
"description": "17 external links with target=\"_blank\" lack rel=\"noopener\"",
"recommendation": "Add rel=\"noopener noreferrer\" to all target=\"_blank\" links"
},
{
"module": "accessibility",
"severity": "high",
"title": "1 buttons without accessible name",
"description": "Buttons with no text, aria-label, or title are invisible to screen readers",
"recommendation": "Add visible text or aria-label to all buttons"
},
{
"module": "rate-limits",
"severity": "medium",
"title": "No rate limiting detected",
"description": "10 rapid requests all succeeded without any rate-limit headers or 429 responses. The site may be vulnerable to abuse.",
"recommendation": "Implement rate limiting (e.g., 429 Too Many Requests) to protect against brute-force attacks"
},
{
"module": "social-checker",
"severity": "medium",
"title": "Missing Twitter Card",
"description": "No twitter:card meta tag — Twitter/X will use default preview",
"recommendation": "Add twitter:card meta tag (e.g., \"summary_large_image\")"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Slow response time",
"description": "Average response time is 2580ms (should be < 2000ms)",
"recommendation": "Optimize server response time — consider CDN, caching, or server upgrades"
},
{
"module": "uptime-checker",
"severity": "medium",
"title": "Soft 404 detected",
"description": "Non-existent URLs return HTTP 200 instead of 404",
"recommendation": "Return proper 404 status codes for non-existent pages to avoid indexing junk URLs"
},
{
"module": "brand-checker",
"severity": "medium",
"title": "No Organization schema",
"description": "No Organization JSON-LD found",
"recommendation": "Add Organization structured data with name, logo, and contact information"
},
{
"module": "crawl-budget",
"severity": "medium",
"title": "Calendar URLs detected",
"description": "4 calendar-related URLs found — these create infinite crawl paths",
"recommendation": "Block calendar/date pagination in robots.txt"
},
{
"module": "indexing-checker",
"severity": "high",
"title": "Canonical points to different domain",
"description": "Canonical: https://www.ulisboa.pt/ points to ulisboa.pt",
"recommendation": "Ensure the canonical URL points to the same domain unless cross-domain canonicalization is intended"
}
]
}
```Cadangan untuk industri anda
- 1Pastikan pematuhan WCAG 2.1 AA
- 2Laksanakan semua pengepala keselamatan yang disyorkan
- 3Pastikan peta laman merangkumi semua halaman penting
- 4Optimumkan masa muat halaman kepada bawah 2 saat
- 5Pastikan reka bentuk responsif pada semua halaman
Senarai Semak SEO untuk Umum
Petua untuk laman web Bercampur
- →Tentukan halaman pendaratan yang jelas untuk setiap segmen
- →Gunakan strategi meta yang berbeza bagi setiap kumpulan halaman
- →Segmenkan peta laman mengikut jenis kandungan
Gunakan Ctrl+P / Cmd+P untuk menyimpan sebagai PDF