What are hash fragments?

A hash fragment is an identifier that comes after the Uniform Resource Indicator, typically separated with a ‘#’ hash. The resource indicated after the hash is subordinate to the prior URI, and thus it loads the full page before it locates the hash.

In the absence of any resource that matches the fragment after the hash, the page will still have loaded. For example, both of these URLs will take you to the homepage of my website:

https://rowanseo.com/

https://rowanseo.com/#thishashdoesnotexist

Since the hash fragment is subordinate to the main resource, Google chooses only to count the URI. There is no parsing after the URI in this instance, and thus it has no SEO impact.

What about Ajax Hashes?

Since Ajax likes to run in real-time, it prefers to use hashes rather than URL Parameters. This process avoids refreshing of the page and content to deliver a faster experience.

Google published Ajax Crawling Recommendations on hash fragments, which is deprecated as of October 2015. However, the principles behind Ajax remain the same, so the guidelines are likely similar.

Therefore, if you’re going to use Ajax, the appropriate recommendation is to use ‘#!’ for your hashes, so that Google can crawl this if necessary.