# How To Hide PHP Errors from Visitors With BetterShield?

Hides error details from pages; your error log still records them.

With **[BetterShield](/)**, error messages can show file paths and other private details. This hides them from pages; your error log still records them.

## What it does

**Error message privacy** is under **BetterShield › Protection › Hardening**. Hides error details from pages; your error log still records them. It is off by default.

<span id="set-it-up" aria-hidden="true"></span>

## Step 1: Open Protection › Hardening

Open **Protection › Hardening** and find **Error message privacy**.

<figure class="doc-shot">
  <img src="/docs/screenshots/hide-php-errors.png" alt="Hide PHP errors from visitors: saved state and available controls in BetterShield." width="980" height="131" loading="lazy" decoding="async">
  <figcaption>Review the state and choices shown on your own site before applying a change.</figcaption>
</figure>

## Step 2: Hide PHP errors from visitors

- Open its preview and read what will change. The preview changes nothing.
- There are no extra fields. Error display is hidden while error logging remains available.
- Turn on the fix. If the screen asks you to confirm recovery or your password, complete that before continuing.

## Recommended settings

Our advice is to test this on staging, then apply it when the behavior fits the site. Keep a working recovery method before changes affecting sign-in or the site address.

## What it can break and how to undo

Messages emitted before BetterShield loads may still appear. Ask your developer to disable debug display in the site configuration too. Turn the fix off to use its undo, then check the original workflow. A change is recorded in the activity log; an undo does not erase that record.

<span id="check-it-is-working" aria-hidden="true"></span>

## Final Outcome

The row should show the fix is on. Test the affected operation with an appropriate account, then check the finding. The score and Findings update on their own after the change. If the finding stays open, press **Check Again** to see what the check still sees. A server or another plugin can enforce a setting independently, so switching BetterShield off does not necessarily remove that other protection.

<figure class="doc-shot">
  <img src="/docs/screenshots/hide-php-errors.png" alt="Hide PHP errors from visitors: saved state and available controls in BetterShield." width="980" height="131" loading="lazy" decoding="async">
  <figcaption>Example PHP error display view. Check the saved values and status on your own site.</figcaption>
</figure>

## Related

- [Hardening overview](/docs/hardening/)
- [Set up recovery](/docs/set-up-recovery/)
- [Activity log](/docs/activity-log/)

This is how you can hide PHP errors from visitors with BetterShield.

Getting Stuck? Feel free to contact our [Dedicated Support Team](/support/).
