When multiple pages on your website cover the exact same topic, search engines get confused about which one to show, leading to lower rankings for all of them. This section highlights where your own pages are competing against each other so we can consolidate them into single, strong resources.
29 groups of pages may be competing for the same topics. We recommend reviewing these to ensure each page has a distinct focus.
4 to review first7 worth checking18 minor
The top 10 items to review are shown below — 19 more available below.
high priority
Keyword Cannibalisation: Laravel MCP Documentation vs. Launch/Guide Blog Posts
Two Laravel blog posts ('Introducing Laravel MCP' and 'A Complete Guide') are cannibalising the official Laravel 13.x MCP documentation. The similarity scores are extremely high (up to 0.87 cosine similarity), and the 'Introducing' post contains stale references to a 'public beta' that is no longer accurate. To prevent these competing pages from cannibalising search visibility for core 'Laravel MCP' queries, the content should be consolidated into the official documentation.
Cannibalization Resolution: Laravel Blog Index vs. Cloud Pricing Post
The main Laravel blog index (https://laravel.com/blog) and a specific post (https://laravel.com/blog/laravel-cloud-more-features-smarter-pricing) are heavily cannibalizing each other, displaying a 91% similarity score and 100% cluster overlap. Both pages currently generate 0 clicks/month. The specific blog post appears to have inherited the title tag ('Laravel Blog') and the generic content feed of the main index. Given the current date is May 2026, the content's heavy emphasis on 'recent' AI tools (Laravel AI SDK, PAO) should also be reviewed for stale dates and outdated statistics.
Eight localized Laravel meetup pages from April and May 2026 share highly duplicated, boilerplate content (cosine similarities up to 0.90) focused on the same AI integration topic. Since today's date is May 21, 2026, these are now stale, past events that are currently generating zero organic traffic. They should be consolidated into a single authoritative recap rather than preserved as duplicate pages with outdated registration CTAs.
Cannibalisation Resolution: Laravel Boost (Docs vs Landing vs Blog)
Three pages targeting 'Laravel Boost' and 'AI Assisted Development' are severely cannibalising each other (cosine similarity up to 0.92). The conflict spans documentation, marketing, and blog content, confusing search engines on the primary intent and resulting in 0 organic clicks across the board.
Four historical blog posts detailing legacy releases of Laravel Cashier (v8.0, v9.3, v11, and v13) are cannibalising each other. They exhibit high similarity (cosine scores up to 0.85, 100% cluster overlap) and currently drive zero monthly clicks. Crucially, the content features stale statistics and outdated future promises (e.g., upcoming SCA compliance). Given we are in 2026, preserving these as standalone, uncontextualized pages confuses search engines and offers poor user experience.
Three Laravel authentication pages are flagged for cannibalisation with high cosine similarity scores (>0.80). The cluster includes a beginner tutorial, the main framework auth documentation, and the Passport (OAuth2) package documentation. While they currently compete in the SERPs, they serve distinct user intents (tutorial vs. core framework reference vs. specific package reference). Differentiating them via explicit cross-linking and refined keyword targeting is the optimal path forward.
Resolve Cannibalisation Between Laravel Cloud Core Pages and Stale Forge Blog Posts
High similarity scores (up to 0.93) indicate extensive cannibalisation across Laravel Cloud's core commercial pages due to repetitive boilerplate copy. Additionally, several Forge blog posts reference outdated events ('April Round-Up', 'May Round-Up') and stale announcements ('Laravel Cloud is live!'). These dated references actively dilute topical authority. We highly recommend consolidating the outdated content into evergreen hubs to preserve relevance, while eliminating repetitive boilerplate across the core commercial pages.
Three older blog posts announcing different Laravel Forge command-related features (CLI, Site Commands, and Command Palette) are cannibalizing each other with 0.80 similarity scores and generating 0 monthly clicks. Because these are outdated feature announcements containing stale 'introducing' phrasing, they are creating index bloat and competing for generic 'Forge commands' queries without success.
Cannibalisation Across Laravel Partner Program Pages
Three URLs related to the Laravel Partner program are heavily cannibalising each other with high similarity scores (up to 0.88 cosine) and are currently generating zero organic clicks. The content is split too thinly between general information, joining the program, and matching with partners. Merging these into a single authoritative hub will consolidate link equity and better satisfy the overarching 'Laravel partners' search intent.
Outdated PHP Version Announcements & Deprecations (Laravel Ecosystem)
Nine blog posts announcing PHP version support (from 8.0 to 8.4) across Laravel, Forge, and Vapor are cannibalising each other. These pages generate 0 clicks per month and largely discuss outdated events, release candidates, and EOL PHP versions (such as the deprecation of PHP 7.3/8.0 which ended in December 2023). Maintaining individual pages for minor historical updates dilutes topical authority and causes index bloat.
Cannibalisation Resolution: Laravel Folio Announcement vs. Official Documentation
The introductory blog post for Laravel Folio is highly similar (cosine: 0.83) to the official Laravel 13.x documentation. The blog post contains outdated references (teasing the 'upcoming' launch of Volt, which has been out for years as of 2026). Since both pages currently receive 0 clicks/month, maintaining two competing pages for the same branded term fractures crawl budget and authority. Consolidating the outdated blog post into the evergreen documentation is the optimal path.
Cannibalisation Resolution: Laravel General Category vs Outdated 2020 Contest
A general blog category archive and an outdated blog post about a 2020 Laracon US coupon contest are cannibalising each other with a high similarity score (0.83). Both pages currently generate 0 clicks per month. Because the contest page references a stale event from 6 years ago, it is triggering content bloat and causing overlap through shared boilerplate content.
Category Index vs. Stale Announcement Cannibalization: Laravel Forge
The Laravel Forge blog category page is highly similar (0.80 cosine) to a specific feature announcement post, likely because the category index surfaces too much of the post's text. Both pages currently receive 0 clicks per month. Additionally, the individual post uses stale 'Now Available' messaging, acting as an outdated news piece rather than evergreen content.
Two introductory pages for the Laravel Bootcamp share a 92% similarity score and identical cluster overlap, effectively cannibalizing each other for 'getting started with Laravel' search intents. Since both currently yield 0 clicks/month, this is a structural bloat issue rather than a severe traffic-loss emergency.
Consolidation of Stale Envoyer Deployment Hooks Feature Announcements
Two older feature announcement posts detailing specific updates to Envoyer's deployment hooks are heavily cannibalising each other (0.82 cosine similarity, 1.00 cluster overlap). Both pages currently receive zero organic clicks per month. Because these posts focus on past dates and outdated release events, they provide little standalone value today. It is highly recommended to consolidate these stale feature announcements into a single evergreen guide rather than preserving them as-is.
Two posts on the Laravel blog concerning Forge deployment script environment variables are heavily cannibalizing each other (0.88 cosine similarity), with both currently receiving 0 organic clicks per month. One serves as a feature introduction while the other acts as an advanced tutorial. Given the extremely narrow topic and lack of current traffic, merging the introductory announcement into the tutorial is the best path to create one comprehensive, evergreen guide while stripping away stale launch-date phrasing.
Two Laravel Forge blog announcements regarding load balancers are heavily cannibalizing each other (0.85 cosine similarity, 1.00 cluster overlap) and currently driving 0 organic clicks per month. The page "New Load Balancer Features" relies on stale, outdated terminology to describe older releases. Because these features are intrinsically linked (algorithms vs. traffic weights), keeping them separate dilutes topical authority and preserves outdated messaging.
These two pages are highly similar (cosine=0.84) and both currently receive 0 clicks/month. They announce the identical framework policy shift (moving to a 12-month release cycle) that occurred during the Laravel 9 release. As we are now in 2026, the 'upcoming' January 2022 release date is heavily outdated. Maintaining two separate, stale blog posts about a 4-year-old event causes unnecessary bloat and cannibalizes historical authority.
Cannibalisation of Outdated Laravel Spark Release Announcements
Three historical blog posts announcing previous Laravel Spark releases (versions 2.0, 3.0, and 5.0) are highly similar (cosine 0.85-0.86) and competing for the same 'Spark Now Available' news queries. Since we are in 2026, these represent outdated events and currently generate 0 clicks per month, contributing to index bloat rather than active organic traffic.
Four separate blog posts announce incremental updates to the Laravel Vapor UI (logs, queues, metrics, and the initial package release). With high content overlap (up to 0.88 cosine similarity) and 0 monthly clicks, these pages are cannibalising each other. Because they reference outdated release events and past dates, they currently serve as stale news rather than evergreen resources. Consolidating them will eliminate index bloat and yield a stronger, unified asset.
Cannibalization Review: Laravel Vapor Asia Pacific Region Announcements
Two outdated, thin announcement posts regarding Laravel Vapor's expansion into the Jakarta and Osaka regions are heavily cannibalizing each other (0.85 similarity score, 1.00 cluster overlap). Both pages currently receive 0 clicks per month and represent stale news. Consolidating these micro-announcements is recommended to clean up site architecture and remove obsolete 'new feature' posts.
Two Laravel Vapor blog posts covering the exact same topic—updating AWS RDS SSL/TLS certificates—are competing for the same search intent. With 0 clicks per month, a high similarity score of 0.84, and content referencing outdated events (2020 and 2024 deadlines), these pages offer no current value as standalone announcements in 2026. They should be merged into a single evergreen maintenance guide.
API Endpoint Documentation Cannibalisation: Laravel Cloud Commands & Environments
Five Laravel Cloud API documentation pages are highly similar (up to 0.87 cosine score) due to repeating boilerplate content (authentication, JSON formatting) across distinct endpoints. Currently, all pages earn 0 organic clicks per month. This fragmentation creates thin content and dilutes ranking potential. Consolidating endpoints into broader resource-level pages (e.g., 'Commands API', 'Environments API') is the most effective way to eliminate cannibalisation and improve the developer reading experience.
API Docs Cannibalization: Application vs. Instance Deletion
These API documentation pages share a high cosine similarity (0.81) because they utilize identical structural boilerplate (cURL examples, Bearer token instructions, and generic deletion phrasing). However, they serve 0 clicks/month and document fundamentally different REST API endpoints (/applications/ vs /instances/). The cannibalization is a technical artifact of the documentation generator rather than true topic duplication.
Cannibalisation Review: Laravel 13.x Controllers vs. HTTP Requests
The Laravel 13.x 'Controllers' and 'HTTP Requests' documentation pages are flagging for cannibalisation due to high topic overlap (cosine similarity 0.81, cluster overlap 1.00). Both currently receive 0 clicks/month, likely due to Laravel 13.x being a newer release or indexing delays. While they share core terminology regarding request-handling logic, they serve distinctly different developer search intents (class architecture vs. data retrieval payload). Standardizing and isolating their specific intents will help them rank independently.
Cannibalization Resolution: Laravel Vapor to Cloud Migration Guides
Two pages targeting the migration process from Laravel Vapor to Laravel Cloud are suffering from severe cannibalization (cosine similarity of 0.91 and 100% cluster overlap). One page serves as an introduction while the other provides step-by-step instructions. Since neither page currently receives search traffic (0 clicks/month), this fragmentation dilutes potential ranking power and creates an unnecessary multi-step user journey.
The Eloquent 'Getting Started' and 'Relationships' pages share a high cosine similarity score (0.81) and 100% cluster overlap, resulting in potential keyword cannibalisation for generic 'Laravel Eloquent' queries (both pages currently sit at 0 clicks/month). While search engines view the text as heavily overlapping due to shared ORM terminology, the pages actually serve distinct stages of a developer's journey. Merging them would create an overwhelmingly long documentation page, so creating distinct boundaries is preferred.
Cannibalisation Review: Laravel Cloud Enterprise vs Networking
The Laravel Cloud Enterprise and Networking pages exhibit high semantic similarity (0.81 cosine) because both heavily discuss secure, managed infrastructure. Currently, neither page attracts organic traffic (0 clicks/month). Merging the technical networking features into the enterprise page will consolidate crawl budget and create a single, high-value page capable of ranking for broader infrastructure terms.
Four URLs across the cloud.laravel.com and laravel.com domains are returning identical 404 'Page Not Found' error pages. Because search engines have crawled these error pages, they share 100% cluster overlap and high cosine similarity (0.83-0.92) due to identical fallback navigation content. With 0 clicks/month, these do not pose a traffic cannibalisation threat, but they create technical bloat and index pollution.