It’s a single HTML page, hence Single Page App, so you just write the tags yourself in the head of that single HTML page.
Nope, because it’s primarily for single page apps. Which only have one page to index, by definition.
Is that actually correct (ie you have multiple HTML pages, each with some React application attached), or are you using something like React Router? If it’s the latter you don’t have discrete pages, you are just allowing a user to mount/unmount different React components in your application by adjusting the text in their browser’s URL bar.
You need to serve web pages (plural) to be able to index web pages (plural). React is designed for adding functionality to a single web page. For example, if you built a calculator web application then the web page it lived on you may want indexed. But you wouldn’t index the result screen for 1, 1 +, 1 + 1, 1 + 1 =, 1 + 1 = 2, 2, etc etc., that would be ridiculous.
There are tools & frameworks that generate actual web pages but can be developed using React as one of the tools: React, in the end, just generates HTML, and ReactDOM contains the functions to make that happen, out of the box. Next.js is the leader here in terms of frameworks. But if you are creating a web site you just need something that creates HTML, be it static generation or a web application that lives on a server, and those things can be any language
/ the homepage, where users can see a list of posts
/post?id=, which leads to a specific blog post
You can’t include meta tags in the first route, but in the second one, you can achieve this. Create the project by running npx create-react-app dynamic-meta-tags. Before you move to the backend code, you should add the tag placeholders on the index.html page. Properly created metatags accompanied by manual link building service will impact positively the overall website’s reputation.