With PayPal Standard, CiviCRM only learns about the payment when PayPal calls back (IPN). If the contribution stays Pending, the callback never reached the site. Check in this order:
1. Is the site reachable from outside without a login? A staging password (Basic Auth), maintenance mode or a firewall rule blocks PayPal.
2. In PayPal → Account settings → IPN history: the messages for these payments show the HTTP status they got back.
3. In CiviCRM → Administer → System Settings → Payment Processors: the live processor must have the live account, not the sandbox one.
Once IPN gets a 200, you can resend the failed messages from PayPal's IPN history – the contributions then complete and the receipts go out.