If your HTML is clean and well structured you can convert it into Markdown and then split into chunks if necessary.
My strategy is to retain in embeddings two versions of the content:
plain text - with removed non-essential characters (e.g. hashes, multiple newlines, etc) for calculating embeddings and determining distances for retrieval;
markdown - for inclusion into context to provide well organised content.
There are aspects that you likely do NOT want sent to the embeddings model, like the quality “looks like a web page”. That could degrade the similarity results when your query text is not also HTML.
I would strip it bare, leaving only linefeeds for paragraphs or BR.
What you send to API to receive an embeddings vector can be different than the source data you store.