LARAVEL SEO AUDIT · PHP · BLADE TEMPLATES · AI VISIBILITY

Free Laravel SEO Audit

Laravel's server-rendered Blade output means Googlebot gets the full page on the first request — but Blade layouts missing canonical tags, no sitemap package installed, and AI crawlers blocked in robots.txt are gaps a generic audit won't catch with Laravel context. DeepSEOAnalysis audits Laravel sites with framework-aware guidance.

Audit my Laravel site →How we score

WHAT WE CHECK

6 Laravel-specific SEO checks

Beyond the 80+ general checks, the engine applies Laravel-aware analysis when it detects a Laravel application — covering Blade metadata, route URL patterns, sitemap package config, and robots.txt setup.

📝

Blade view metadata coverage

Laravel uses Blade templating, and page metadata lives in the layout file (typically `resources/views/layouts/app.blade.php`) or is injected per-page via `@section('title')` and custom directives. Common gaps: a site-wide title like `config('app.name')` set in the layout without a per-page override, no `<meta name="description">` in the layout at all, or OG tags hardcoded with the homepage title and description regardless of which page is being rendered. The audit checks every crawled page for a unique, present title tag and meta description — flagging pages that share the same global default.

🔗

Route URL structure

Laravel's routing system can produce clean, SEO-friendly URLs (`/blog/my-post-title`) or messy parameter strings (`/blog?id=14&category=3`) depending on how routes are configured. Clean routes use `Route::get('/blog/{slug}', ...)` with slug-based URL generation; query-parameter routes create duplicate content risk and crawl budget waste. Common issues: pagination appended as `?page=2` without canonical handling, action routes using POST-like URL patterns, and admin or API routes accidentally accessible without robots.txt protection. The audit checks URL patterns across all crawled pages and flags parameter-heavy, non-canonical structures.

🗺️

Sitemap package configuration

`spatie/laravel-sitemap` is the standard Laravel sitemap package. Without it (or equivalent), no sitemap is generated. Common gaps after installation: the sitemap generation command isn't scheduled in the Laravel scheduler (so the sitemap is stale), draft or unpublished Eloquent records are included alongside published content, `lastmod` dates aren't set from the model's `updated_at` timestamp, or the sitemap isn't referenced in `robots.txt` via a `Sitemap:` directive. The audit checks sitemap presence, page coverage, Sitemap directive in robots.txt, and whether the sitemap reflects the current site state.

🤖

robots.txt and AI crawler access

Laravel serves a static `robots.txt` from the `public/` directory (the web root). It must be a literal file — there is no built-in robots.txt generation in Laravel, though it can be generated via a route and cached. Common gaps: the file is missing (Laravel's default installation doesn't create one), `/api` routes and `/admin` panels aren't disallowed (exposing non-indexable surfaces to Googlebot), or AI crawlers (GPTBot, ClaudeBot, PerplexityBot) are accidentally blocked by overly broad `Disallow:` rules. The audit checks all major AI crawler user-agents and flags any that are blocked.

Server-rendered HTML advantages

Laravel renders pages server-side via Blade templates — every response is complete HTML delivered in the first HTTP response. Googlebot receives the full page content, metadata, and structured data immediately, with no JavaScript rendering required. This is Laravel's fundamental SEO advantage over JavaScript-heavy SPA frameworks: there is no two-wave rendering, no hydration delay, and no risk of content being invisible to crawlers that don't execute JavaScript. The audit verifies that your Laravel site's pages are genuinely server-rendered and flags any Livewire or Inertia.js components that defer primary page content to client-side rendering.

🧠

AI visibility for Laravel sites

Laravel makes AI visibility tasks straightforward: `llms.txt` goes in the `public/` directory (served at `/llms.txt`), FAQPage JSON-LD is added as a Blade component (`<x-faq-schema :items="$faqs" />`) included in page layouts, and Article structured data for blog posts can be emitted from a dedicated blog Blade view. Packages like `romanzipp/laravel-seo` or `artesaos/seotools` provide a Laravel-native API for setting JSON-LD. The audit checks all five AI visibility signals — llms.txt presence, AI crawler access, FAQPage/HowTo schema, question-heading ratio, and content chunkability — with the specific `public/` file, Blade component, or package method to implement each fix.

HOW IT WORKS

Audit your Laravel site in 60 seconds

  1. Enter your Laravel app URL. Works with any Laravel deployment: Forge + DigitalOcean, Laravel Vapor (serverless), Heroku, Railway, Render, or bare-metal with nginx. No source code, Blade templates, or Artisan access needed — the audit crawls the live site.
  2. We crawl and analyse. The engine crawls up to 50 pages (free) or 1,000 pages (paid), checks metadata coverage across all route types, validates JSON-LD structured data, measures CrUX Core Web Vitals from real user data, and evaluates all five AI visibility signals.
  3. You get a prioritised report. Laravel-aware issues first — Blade layout metadata gaps, route URL structure problems, missing sitemap, blocked AI crawlers — then general SEO, each with the specific Blade view change, route configuration, or Composer package to fix it.

FAQ

Questions about the Laravel SEO audit

Does DeepSEOAnalysis detect Laravel-specific SEO issues?

Yes. The engine detects Laravel signals — server-rendered PHP output, Blade view metadata patterns, and Laravel's URL routing structure — and surfaces framework-specific guidance alongside the 80+ general checks.

Is Laravel good for SEO?

Laravel is excellent for SEO in its default configuration: it renders server-side HTML via Blade templates, so Googlebot receives complete page content on the first request with no JavaScript rendering queue. All content, metadata, and structured data are in the initial HTTP response. The common Laravel SEO gaps are configuration: Blade layouts missing canonical tags and OG meta tags, no sitemap package installed, inconsistent URL route structures generating parameter-heavy URLs, and AI crawlers accidentally blocked in robots.txt.

Which package should I use for sitemaps in Laravel?

`spatie/laravel-sitemap` is the standard choice. It generates a sitemap from your Eloquent models and routes with a clean API: `Sitemap::create()->add(Url::create('/page')->setLastModificationDate(now()))->writeToFile(public_path('sitemap.xml'))`. It supports sitemap indexes for large sites, per-URL priority and change frequency, and scheduled generation via Laravel's scheduler. The audit checks sitemap presence, the Sitemap directive in robots.txt, and whether all crawled pages appear in the generated sitemap.

Is the Laravel 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.