Official statement
Other statements from this video 22 ▾
- 0:33 Pourquoi Googlebot ignore-t-il vos cookies et comment adapter votre stratégie de contenu personnalisé ?
- 1:02 Googlebot crawle-t-il avec les cookies activés ou ignore-t-il votre contenu personnalisé ?
- 1:02 Peut-on rediriger les utilisateurs connectés vers des URLs différentes sans pénalité SEO ?
- 1:35 Changer de framework JavaScript fait-il chuter vos positions Google ?
- 1:35 Changer de framework JavaScript ruine-t-il vraiment votre SEO ?
- 4:46 Le HTML rendu suffit-il vraiment à garantir l'indexation du JavaScript ?
- 4:46 Comment vérifier si votre contenu JavaScript est réellement indexable par Google ?
- 5:48 Le contenu derrière login est-il vraiment invisible pour Google ?
- 5:48 Le contenu derrière un login est-il vraiment invisible pour Google ?
- 6:47 Faut-il vraiment rediriger Googlebot vers www pour contourner les erreurs CORB ?
- 8:42 Faut-il traiter Googlebot différemment des utilisateurs pour gérer les redirections ?
- 11:20 Faut-il vraiment masquer les bannières de consentement à Googlebot pour améliorer son crawl ?
- 11:20 Faut-il afficher les écrans de consentement à Googlebot au risque d'être pénalisé pour cloaking ?
- 14:00 Comment identifier précisément les éléments qui dégradent votre Cumulative Layout Shift ?
- 18:18 Pourquoi vos outils de test PageSpeed affichent-ils des scores LCP et FCP contradictoires ?
- 19:51 Pourquoi vos URLs avec hash (#) ne seront jamais indexées par Google ?
- 23:32 Le pré-rendu pour Googlebot : faut-il vraiment s'en passer ?
- 24:02 Faut-il vraiment désactiver JavaScript sur vos pages pré-rendues pour Googlebot ?
- 26:42 Le JSON-LD ralentit-il vraiment votre temps de chargement ?
- 26:42 Le balisage FAQ Schema est-il vraiment inutile pour vos pages produits ?
- 26:42 Le JSON-LD FAQ Schema ralentit-il vraiment votre site ?
- 26:42 Le balisage FAQ Schema nuit-il à votre taux de conversion ?
Google claims that URLs with hashes (#) cannot be indexed for temporary sports events like matches. The solution? Remove the hash and publish the pages several days before the event to allow for discovery and indexing. After the match, a 404 is acceptable: Google will gradually remove these pages from its index without any penalty.
What you need to understand
Why does Google block the indexing of URLs with hashes?
The issue is structural: fragments of URLs after the hash (#) are not sent to the server during an HTTP request. They only serve for client-side navigation in JavaScript. Googlebot, even though it executes JS, does not treat these fragments as distinct URLs to be indexed.
For sports event sites that dynamically generate match pages (e.g., site.com/match#12345), this poses a major problem. Google will only see one URL (the one before the hash) and will not be able to index each match individually. Splitt confirms what many have suspected: if you want these pages to appear in the SERPs, switch to a clean URL structure without hashes.
How long before the event should the pages be published?
Splitt mentions "several days in advance," but remains vague about the exact timeline. In practice, count at least 3 to 5 days for Googlebot to discover, crawl, and index these temporary URLs. If your site has a limited crawl budget or a low visit frequency, this timeline may extend.
The logic is simple: you need to give the engine time to crawl. If you publish a page 24 hours before the match, you risk it not being indexed in time. Submitting the URL via Search Console can speed up the process, but it’s not an absolute guarantee — especially for hundreds of simultaneous events.
What happens after the event ends?
Splitt confirms that it is normal to return a 404 after the match. There’s no need to redirect, keep ghost content, or turn the page into an archive. Google understands the temporary nature of these URLs and will gradually remove them from the index.
This approach avoids cluttering your index with thousands of outdated pages. But beware: "gradually" can mean several weeks. Don't panic if some pages remain in the results for a few days after the event — this is the expected behavior. If you want to speed up the removal, use the URL removal tool in Search Console, but this is generally not necessary.
- Remove the hash (#) from your event URLs to allow individual indexing of each match
- Publish the pages at least 3-5 days before the event to allow time for crawling and indexing
- Accept the 404s after the event: Google will handle them naturally without penalties for your site
- Monitor Search Console to ensure that temporary pages are discovered and indexed on time
- Facilitate discovery by linking these pages from your calendar or homepage — don't rely solely on the sitemap
SEO Expert opinion
Is this recommendation consistent with field observations?
Yes, largely. It has been known for years that URLs with hashes pose indexing issues. This is not new, but Splitt officially confirms what SEOs for sports or event sites experience daily. Modern JS frameworks (React, Vue, Angular) often use hash routing to avoid server configuration — but at the cost of SEO.
What’s interesting is that Splitt admits to the acceptability of 404s post-event. Google has long been vague about handling temporary content. Here, we have clear validation: no need for soft 404s, complex redirects, or empty archive pages. A straightforward 404 is the recommended solution. [To be verified] remains the impact on crawl budget if you generate thousands of 404s each week — no quantified data provided.
What are the grey areas of this statement?
Splitt does not specify the exact indexing timeframe needed. "Several days" is vague — 2 days? 7 days? For a site with a tight crawl budget, this uncertainty can be costly in visibility. We would have liked more precise ranges depending on the type of site (large sports media vs. small amateur site).
Another missing point: what to do if the event changes date or is canceled? Should you keep the 404, redirect to a "canceled" page, or delete the URL? Nothing is mentioned. Also, no mention is made of using Event structured data for these temporary pages — which is crucial for sports rich results. We're left in the dark.
When does this rule not apply?
If your goal is not to index these pages individually, you can keep the hash without issue. For example, if you manage the display of hundreds of matches in real-time on a single page with JS filters, and you don't want to clutter the index with each match, the hash is an acceptable solution.
Similarly, if you use the hash solely for internal anchoring (e.g., site.com/calendar#basketball-section), it does not affect the indexing of the main page. The problem only pertains to sites that want to make the hash a distinct and indexable URL — which is technically impossible without server-side rewriting.
Practical impact and recommendations
What should be done practically for a sports event site?
Start by auditing your current URL structure. If you’re using hashes to differentiate matches, plan a technical overhaul. Switch to a structure like /match/12345 or /events/2025-01-15/team-a-vs-team-b. This often involves revising the server-side routing (Node.js, PHP, etc.) and not just in JS.
Next, set up an automated publication schedule. If you have 50 matches a week, you cannot manually publish each page 5 days in advance. A script or a CMS configured to create the pages as soon as the sports schedule is known (often several weeks ahead) is essential. Integrate a system for automated minimal content generation (teams, date, time, venue) so that the page is crawlable immediately.
What mistakes to avoid during migration?
Do not leave your old hash URLs with 404s without redirects. If users or external sites have shared these links, you lose traffic and link juice. Set up 301 redirects to the new clean URLs — even if it's technically challenging (the server does not see the hash, it often requires passing through JS to redirect client-side, then consolidating to 301 server-side).
Another pitfall: publishing pages too late. Three days before a major match is already tight for a site with a low crawl budget. Aim for 5-7 days, or more for highly anticipated events. And don't rely solely on the sitemap — actively link these pages from your homepage or calendar to force quick discovery.
How to verify that everything works correctly?
Use Search Console to monitor the indexing of the new URLs. Check that the pages are discovered within 48 hours of publication. If not, submit them manually or reinforce the internal linking. Also, monitor 404 errors after events: they should normally appear in the reports, but without generating critical alerts.
Test with Google Search Console URL Inspection for a few typical URLs to validate that the rendering is correct, the content is extracted properly, and that no robots.txt or noindex blocking interferes. Finally, track the organic traffic to these temporary pages: if you don’t see impressions in the 3-4 days before the event, something is wrong.
- Audit and restructure URLs to eliminate hashes
- Automate page creation 5-7 days before each event
- Set up 301 redirects from old hash URLs
- Enhance internal linking to temporary pages for faster discovery
- Monitor indexing via Search Console and adjust as necessary
- Accept post-event 404s without corrective action — this is normal behavior
❓ Frequently Asked Questions
Peut-on indexer une URL avec hash en utilisant le Push State d'History API ?
Combien de temps Google met-il pour retirer une page 404 de l'index ?
Faut-il utiliser un sitemap pour ces pages temporaires d'événements ?
Que faire si un événement est reporté ou annulé après publication de la page ?
Les données structurées Event doivent-elles être ajoutées sur ces pages temporaires ?
🎥 From the same video 22
Other SEO insights extracted from this same Google Search Central video · duration 28 min · published on 01/07/2020
🎥 Watch the full video on YouTube →
💬 Comments (0)
Be the first to comment.