Content
· 5 checks — Internal links, mixed-content guards, Open Graph previews, and structured data rolled into one auditable list.FLinksAction165 links checked, 102 healthy, 62 brokenFIX
Broken Links (50)
| Status | URL | Found in | Error |
|---|---|---|---|
| 403 | https://moodle.org | <a> | Forbidden |
| 403 | https://moodle.org/?lang=id | <a> | Forbidden |
| 403 | https://moodle.org/?lang=bar | <a> | Forbidden |
| 403 | https://moodle.org/?lang=ca | <a> | Forbidden |
| 403 | https://moodle.org/?lang=cs | <a> | Forbidden |
| 403 | https://moodle.org/?lang=da | <a> | Forbidden |
| 403 | https://moodle.org/?lang=de | <a> | Forbidden |
| 403 | https://moodle.org/?lang=es | <a> | Forbidden |
| 403 | https://moodle.org/?lang=es_mx | <a> | Forbidden |
| 403 | https://moodle.org/?lang=eu | <a> | Forbidden |
| 403 | https://moodle.org/?lang=fr | <a> | Forbidden |
| 403 | https://moodle.org/?lang=it | <a> | Forbidden |
| 403 | https://moodle.org/?lang=kl | <a> | Forbidden |
| 403 | https://moodle.org/?lang=rw | <a> | Forbidden |
| 403 | https://moodle.org/?lang=sw | <a> | Forbidden |
| 403 | https://moodle.org/?lang=hat | <a> | Forbidden |
| 403 | https://moodle.org/?lang=hu | <a> | Forbidden |
| 403 | https://moodle.org/?lang=nl | <a> | Forbidden |
| 403 | https://moodle.org/?lang=no | <a> | Forbidden |
| 403 | https://moodle.org/?lang=pt_br | <a> | Forbidden |
| 403 | https://moodle.org/?lang=pt | <a> | Forbidden |
| 403 | https://moodle.org/?lang=tr | <a> | Forbidden |
| 403 | https://moodle.org/?lang=vi | <a> | Forbidden |
| 403 | https://moodle.org/?lang=el | <a> | Forbidden |
| 403 | https://moodle.org/?lang=bg | <a> | Forbidden |
| 403 | https://moodle.org/?lang=ru | <a> | Forbidden |
| 403 | https://moodle.org/?lang=uk | <a> | Forbidden |
| 403 | https://moodle.org/?lang=he | <a> | Forbidden |
| 403 | https://moodle.org/?lang=ar | <a> | Forbidden |
| 403 | https://moodle.org/?lang=fa | <a> | Forbidden |
| 403 | https://moodle.org/?lang=ja | <a> | Forbidden |
| 403 | https://moodle.org/?lang=zh_tw | <a> | Forbidden |
| 403 | https://moodle.org/?lang=zh_cn | <a> | Forbidden |
| 403 | https://moodle.org/login/index.php | <a> | Forbidden |
| 403 | https://moodle.org/ | <a> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/11995089/block_h... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622785/block_ht... | <img> | Forbidden |
| ERR | https://stats.moodle.org | <a> | Get "https://stats.moodle.org": context ... |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
| 403 | https://moodle.org/pluginfile.php/8622789/block_ht... | <img> | Forbidden |
DBrand PresenceActionSite-name consistency, favicon, social image, meta tags, schema, and contact signalsFIX
Brand Presence
Partial brand coverage — a few channels are missing brand signals.
D
47/100
Site name appears as
| Page title | Filter Icon | |
| og:site_name | — | |
| twitter:site | — | |
| Organization.name | — |
Consistent
Brand assets
Favicon
15/15covers multiple sizes + apple-touch-icon
Social share image
14/20og:image set; twitter:image missing
Meta completeness
8/20Organization schema
0/15Contact info discoverable
5/10contact page
Findings
- Missing brand name in: og:site_name, twitter:site, Organization.name
- Add twitter:image — Twitter falls back to og:image only when it's larger than 300×157
- twitter:card missing
- No Organization schema — Google can't render your logo in the knowledge panel
- 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.
COpen GraphActionOpen Graph tags are partially configured — some improvements recommended.REVIEW
The og:description tag controls the description in social sharing previews.
No og:description means social cards either show no subtitle or scrape the first paragraph — usually unflattering.
Learn more ▾ ▴
Without og:description, social platforms either render no subtitle or pull whatever text appears first on the page. The first paragraph is rarely written for share-card context. A purpose-written 150-200 character og:description gives a polished card.
Source: Open Graph Protocol
17 charsIdeal length is 25–60 characters for social sharing previews.
25–60 charsog:title very short — may render with awkward whitespace in social cards.
Source: Open Graph Protocol
The og:site_name tag displays the website name in social previews.
Without og:site_name, social cards omit the brand attribution — users see the post but not who published it.
Learn more ▾ ▴
og:site_name appears in the social card chrome (above the title in Facebook/LinkedIn previews). Without it, posts read as anonymous URLs. Set it to your brand name to get free attribution on every share.
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

moodle.org
Home | Moodle.org
No description
Description will be truncated (505 chars / 200 max)
- twitter:card — Add <meta name="twitter:card" content="summary_large_image">
- twitter:title — falling back from og:title
- twitter:description — falling back from <meta name=description>
- twitter:image — falling back from og:image
twitter:card is missing
→ Add <meta name="twitter:card" content="summary_large_image">
Description will be truncated on Twitter/X (505 chars, max 200)
→ Tighten the description to ≤200 characters

MOODLE.ORG
Home | Moodle.org
No description
Description will be truncated (505 chars / 155 max)
- og:title — Home | Moodle.org
- og:description — falling back from <meta name=description>
- og:image — https://moodle.org/theme/moodleorg/pix/moodle_logo_tm.png
- og:type — website
- og:url — https://moodle.org/
- og:site_name — Add og:site_name — Recommended — site-level brand line in the preview
Description will be truncated on Facebook (505 chars, max 155)
→ Tighten og:description to ≤155 characters

Home | Moodle.org
moodle.org
Description will be truncated (505 chars / 150 max)
- og:title — Home | Moodle.org
- og:description — falling back from <meta name=description>
- og:image — https://moodle.org/theme/moodleorg/pix/moodle_logo_tm.png
Description will be truncated on LinkedIn (505 chars, max 150)
→ Tighten og:description to ≤150 characters
moodle.org
Home | Moodle.org
No description

Description will be truncated (505 chars / 300 max)
- og:title — Home | Moodle.org
- og:description — falling back from <meta name=description>
- og:image — https://moodle.org/theme/moodleorg/pix/moodle_logo_tm.png
Long description may be shortened by Slack (505 chars, guideline ~300)
→ Consider tightening to ~300 chars for the cleanest unfurl
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 DataActionNo structured data (JSON-LD) found.REVIEW
Adding structured data helps search engines understand your content and can enable rich results.
Without schema.org markup, your pages can't appear as rich results (stars, FAQs, recipes) in search.
Learn more ▾ ▴
Structured data is what unlocks rich snippets — review stars, FAQ accordions, recipe cards, breadcrumbs, etc. — that take up more SERP space and dramatically improve click-through. The schema.org vocabulary is well-documented and JSON-LD is the easiest format.
Source: Google Search Central / schema.org
No structured data found
Structured data (JSON-LD) helps search engines understand your content better. Adding it can improve your search result appearance.
Common types include:
- WebSite — your site identity and search box
- Organization — your company information
- Article — blog posts and news articles
- Product — e-commerce product pages
- BreadcrumbList — navigation paths