What is difference SEO differencence between:
/index.php#mystate
/index.php#
!mystate
Webmasters Stack Exchange is a question and answer site for webmasters. It only takes a minute to sign up.
Sign up to join this communityThe fragment identifier (when dealing with the URI of an HTML document) is supposed to be used to link to specific parts of a page. It isn't sent to the server.
In the last few years it has been used as a hack to maintain state information in websites that make heavy use of Ajax.
The use of a fragment identifier starting with a !
character is a further hack on top of this to tell Google how to generate a real URI for indexing purposes.
The introduction of pushState eliminates the need for these hacks in modern browsers.
For browsers that don't support pushState
some people take the approach of falling back to the hashbang hack, while others (such as GitHub) fall back to normal links (instead of using Ajax for major content changes in browsers that don't support pushState
).
The exclamation point, eliminates the case of an empty hash like example.com/index.php#
which would make the page scroll to the top.