This repository was archived by the owner on Oct 25, 2026. It is now read-only.
Repository navigation
SEO
Syed Ahmer Shah edited this page Oct 25, 2026
·
1 revision
Inertia renders page bodies in the browser, so the server writes everything a crawler needs into the HTML head.
| Item | Rule |
|---|---|
<title> |
50 characters or fewer. A longer title first loses its trailing " | ..." or ": ..." segment, then is clipped at a word (Seo::title()) |
| Meta description | 150 characters or fewer (Seo::description()) |
| Canonical | Absolute URL on the canonical domain; ?page=n kept on paginated lists |
| Open Graph / Twitter |
og:title, og:description, og:image (1200×1200, one per film), og:url, og:type, twitter:card
|
| JSON-LD | Organization and WebSite (with SearchAction) everywhere; BreadcrumbList below the home page; Movie with AggregateRating and ScreeningEvent offers on film pages; MovieTheater with address, geo and opening hours on cinema pages; FAQPage on the help centre |
| Robots | Public pages are indexable. Search results, seat maps, account, checkout, payments, password reset, admin and every error page (403, 404, 429, 5xx) send noindex
|
-
public/robots.txt: the same private paths are disallowed for every crawler, including GPTBot and ClaudeBot. -
public/sitemap.xml,public/llms-full.txtand the Open Graph images: generated withphp artisan seo:generate. -
public/llms.txt: a hand-written summary for AI assistants, with links to the project page, the case study and the security write-up.
tests/Feature/SeoAndAssistantTest.php asserts the title and description limits, JSON-LD and og:image on the main public pages, and noindex on error pages.
BookMyMovie · MIT licence · by Syed Ahmer Shah · Project page
Run it
How it works
Operate it
Read more