The page has been written using entity references (old term) or named character references (HTML5 term), which are special notations for characters. In an UTF-8 encoded page, you could use e.g. “ó” as such, but a reference like
ó is valid, too, and might be preferred by page authors/developers for various reasons (e.g., not knowing how to type “ó”). Quite often, the use of entities is just a holdover from old practices that were once necessary (in the 1990s) before widespread support to UTF-8 in browsers.
ó is completely safe to use, though it makes HTML source code less readable. For example, if a user copies and pastes text, he gets “ó”, because
ó exists in HTML source only; it is internally converted to “ó” by the HTML parser of a browser.
However, some references are unsafe. Generally, entities defined in HTML 4.01 are safe. (Some of them may refer to characters that are not always rendered correctly due to font problems, but such problems exist quite independently of the use of an entity versus the character itself.) There is a much larger set of named character references in HTML5, and old browser versions often lack support to the extensions.
ō may or may not be supported. If supported, it is shown as “ō” (o with macron); if not supported (e.g. on IE 9 and older), it is rendered literally. It is thus much safer to use the character itself or the numeric referece