An address such as /services/#prices jumps to a section within a page. The part after # is a fragment. A normal HTTP request does not send it to the server, and it does not turn the section into a separate page.

Where do the entries originate?

Fictional example: a sitemap generator collects every navigation link. It consequently adds /services/#scope and /services/#prices as two extra pages, although both belong to /services/.

Check whether the generator reads published page records or an unfiltered link list. Fix that source. Remove fragments when generating the sitemap and deduplicate the remaining URLs.

Keep section anchors in ordinary navigation. Removing every hash character throughout the project would break useful jump links.

Hash-based applications need a different decision

If an older application serves different views through hash routes such as /#/product/red, simply stripping the fragment is insufficient. Every view would collapse to the same homepage address. Investigate whether directly requestable page URLs are needed.

Finally, check a corrected sitemap entry and its original jump link separately. The sitemap should identify the document, while the link inside the site can still lead to the intended section.

Related check: Check a canonical redirect destination.

You can enquire about correcting an identified frontend sitemap generator through Frontend optimisation.

Sources