JOOMLA SEO AUDIT · SEF URLs · METADATA · AI VISIBILITY

Free Joomla SEO Audit

Joomla has built-in SEO features — but SEF URL configuration, metadata coverage across components, and AI visibility require careful setup. DeepSEOAnalysis audits your Joomla site from outside: URL alias quality, metadata completeness, sitemap configuration, robots.txt AI crawler access, Core Web Vitals from real CrUX data, and structured data — with Joomla-specific extension and configuration guidance.

Audit my Joomla site →How we score

WHAT WE CHECK

6 Joomla-specific SEO checks

Joomla renders PHP server-side — Googlebot sees full HTML on first crawl. The audit checks SEF URL configuration and alias quality, metadata coverage across all Joomla components, OSMap/sitemap extension configuration, robots.txt (admin path disallow + AI crawler access), Core Web Vitals from real CrUX field data, and AI visibility — with sh404SEF, OSMap, and template-level fix guidance for each finding.

🔗

SEF URL configuration and alias quality

Joomla\'s default URL structure uses query parameters (`/index.php?option=com_content&view=article&id=5&Itemid=101`) that are not SEO-friendly. Search Engine Friendly (SEF) URLs must be explicitly enabled in Global Configuration (Search Engine Friendly URLs: Yes, Use URL Rewriting: Yes). Once enabled, Joomla generates URLs from the alias field on each article and menu item. The audit checks: (1) SEF URLs are in use (no query-parameter URLs indexed); (2) URL aliases are keyword-descriptive (e.g., `/about-us/our-team` not `/k2-article-5`); (3) numeric fallback URLs (`/index.php?...`) are returning 301 redirects to the canonical SEF URL (not serving duplicate content at two URLs); (4) the `.htaccess` file (Apache) or nginx rewrite rules are correctly configured for URL rewriting; (5) URL consistency — trailing slash presence/absence is uniform across the site. Common gaps: SEF URLs enabled but mod_rewrite not active (returns 404 on clean URLs); aliases not set for component-generated content (K2 articles, VirtueMart products) defaulting to numeric IDs; the `.htaccess` `RewriteBase` directive set incorrectly for subdirectory installations.

📝

Metadata coverage across Joomla components

Joomla allows setting title, meta description, keywords (ignore: Google ignores the keywords meta tag), and robots meta per article and menu item — but coverage is inconsistent in practice. Common gaps: articles have titles but no meta descriptions (Joomla doesn\'t require descriptions on publish); menu items controlling category/archive views have global metadata but no per-category descriptions; third-party component pages (K2, VirtueMart, Hikashop) use component-level metadata defaults that haven\'t been customised; the Global Configuration canonical URL setting (System → Global Configuration → SEO tab → "Add site name to page titles" and "Include Site Name in Page Titles") is misconfigured, producing redundant or keyword-stuffed title tags. For template-level metadata injection: sh404SEF provides metadata templates per content type with variable substitution (`{title}`, `{category}`, `{site_name}`). The audit checks every crawled page for a unique, non-empty, appropriately-lengthed title and meta description.

🗺️

XML sitemap via OSMap or Joomla Sitemap

Joomla 4+ includes a basic sitemap plugin, but the OSMap extension provides better control: include/exclude specific menu items and component content, set priority and changefreq per content type, generate `lastmod` from the article\'s modified date field, and produce both XML (for search engines) and HTML (for users) sitemaps. Configuration checks: the sitemap includes all public articles and menu items; the `lastmod` values use actual content modification dates (not the crawl date or a static value); the sitemap URL is submitted in Google Search Console; the `Sitemap:` directive in `robots.txt` points to the correct sitemap URL. Common gaps: the sitemap is generated but never submitted to GSC; the sitemap includes noindexed or restricted-access (login-required) URLs; the sitemap\'s `lastmod` timestamps are all identical (a sign that a static date was used rather than the article modified date); third-party component content (K2, VirtueMart, Hikashop, JEvents) is missing from the sitemap because OSMap plugins for those components weren\'t installed.

🤖

robots.txt and AI crawler access

Joomla serves `robots.txt` from the site root, typically the static file at `/robots.txt` in your Joomla installation directory. The file should: allow all legitimate crawlers (no blanket `Disallow: /`); allow AI crawlers (GPTBot, ClaudeBot, PerplexityBot, Applebot-Extended) — many Joomla security hardening guides add blanket bot disallows that accidentally block AI crawlers; disallow Joomla admin paths (`Disallow: /administrator/`); disallow Joomla internal paths (`Disallow: /cache/`, `Disallow: /logs/`, `Disallow: /tmp/`); include the `Sitemap:` directive pointing to the XML sitemap. Common gaps: the default Joomla `robots.txt` file is replaced with a security-hardened version that disallows many paths including AI crawler user-agents; the administrator path is not disallowed (exposing the login page to crawlers — not an indexation issue since Joomla admin requires login, but reduces crawl budget efficiency); the `Sitemap:` directive is missing.

Server-rendered PHP and Core Web Vitals

Joomla renders PHP server-side — every page request goes through the Joomla application and returns complete HTML to the browser. This means Googlebot sees the full page content on first-wave crawl (no JavaScript rendering gap). The Core Web Vitals performance of a Joomla site depends primarily on: template complexity (number of modules loaded per page, CSS/JS assets), server response time (PHP processing time + database query time), image optimisation, and caching configuration. Joomla\'s built-in caching (System → Cache) reduces PHP processing for non-authenticated users. For LCP: identify the hero image or banner on key pages and ensure it\'s served from a CDN or the server quickly; add `fetchpriority="high"` in the template `img` tag for the LCP image. For INP: third-party JavaScript widgets (chat, analytics, ad scripts) are the primary INP cause in Joomla — defer or lazy-load these via the template or a custom HTML module. For CLS: ensure all images have explicit `width` and `height` attributes in the template and article editor; avoid ads or embeds that expand after load.

🧠

AI visibility for Joomla sites

Serve `llms.txt` as a static file in the Joomla root directory (same level as `robots.txt`) — it will be served at `https://yoursite.com/llms.txt` without any Joomla routing configuration. FAQPage JSON-LD for articles with FAQ content: add a Custom HTML Module assigned to the relevant article or menu item position, containing the JSON-LD `script type="application/ld+json"` block. Alternatively, add the JSON-LD in the Joomla template `head` with conditional logic based on the article ID or category. Article JSON-LD: use an extension like JSitemap or Weeblr\'s SchemaApp to generate Article schema from Joomla article fields, or inject it manually via a template override. For question-heading ratio: structure article content with H2/H3 headings phrased as questions (≥20% of headings) using Joomla\'s article editor (TinyMCE or JCE Editor). The audit checks all five AI visibility signals: llms.txt presence, AI crawler access in robots.txt, FAQPage/HowTo schema in the served HTML, question-heading ratio, and content chunkability — with Joomla-specific extension and template examples for each fix.

HOW IT WORKS

Audit your Joomla site in 60 seconds

  1. Enter your public Joomla site URL. Works with Joomla 3, 4, and 5. No admin credentials, FTP access, extension API keys, or database access needed — the audit crawls the public HTTP output as a search engine would.
  2. We crawl and analyse. The engine checks SEF URL patterns (detecting numeric fallback URLs and non-descriptive aliases), validates metadata in the server-rendered HTML, checks sitemap presence and Sitemap directive in robots.txt, validates JSON-LD structured data, measures CrUX Core Web Vitals, and evaluates all five AI visibility signals.
  3. You get a prioritised report. Joomla-specific issues first — SEF URL configuration, metadata template gaps, OSMap sitemap setup, robots.txt admin path disallow, Core Web Vitals causes — then general SEO, each with Joomla Global Configuration paths, sh404SEF settings, OSMap plugin configuration, and template code examples for the fix.

FAQ

Questions about the Joomla SEO audit

Does Joomla have built-in SEO features?

Joomla includes basic SEO features out of the box: Search Engine Friendly (SEF) URLs (must be enabled — off by default), metadata fields for title, description, keywords, and robots on every article and menu item, a canonical URL option in Global Configuration, and a basic XML sitemap via the Joomla Sitemap plugin (included in Joomla 4+). For more comprehensive SEO: the sh404SEF extension (most popular Joomla SEO extension) provides advanced URL management, custom aliases, metadata templates, 301 redirect management, and social metadata. OSMap generates Joomla XML sitemaps with better control over included/excluded content and lastmod timestamps. Joomla 4\'s improved template system and improved caching make it more performant than earlier versions for Core Web Vitals.

How do I enable SEF URLs in Joomla?

In Joomla 4/5: go to **System → Global Configuration → Site** tab. Set "Search Engine Friendly URLs" to Yes, "Use URL Rewriting" to Yes (requires mod_rewrite on Apache or equivalent on nginx), and "Add Suffix to URLs" — set to No for clean URLs without `.html` extension, or Yes if your existing content uses `.html` suffixes and you want to maintain them. Then rename `htaccess.txt` to `.htaccess` in your Joomla root directory (Apache) or configure the equivalent nginx rewrite rules. After enabling, verify that existing URLs with clean aliases resolve correctly and that old numeric URLs (`/index.php?option=com_content&view=article&id=5`) are redirected with 301 to the new SEF URLs. Without the 301 redirects from numeric URLs, any backlinks to old URLs pass no link equity to the new canonical URLs.

What is the best Joomla SEO extension?

sh404SEF is the most comprehensive: advanced URL management (custom aliases per article, menu item, and category), automatic 301 redirects when aliases change, metadata templates per content type, social metadata (Open Graph, Twitter Card), sitemap integration, and a URL analytics dashboard. The free version covers basic SEF URL management; the Pro version adds the full metadata and redirect management suite. OSMap (free) is the best dedicated sitemap extension for Joomla — generates XML and HTML sitemaps with configurable include/exclude rules, lastmod from article modified date, and priority/changefreq settings. For structured data/schema, the JSitemap and Weeblr extensions add JSON-LD output; alternatively, JSON-LD can be added directly in a Joomla custom module or in the template\'s `head` via a Custom HTML Module.

Is the Joomla SEO audit free?

Yes. The complete audit is free with no signup and no email gate. Paid plans add saved history, scheduled monitoring, larger crawls (up to 1,000 pages), and agency workflows.